乐趣区

关于数据挖掘:Python酒店评论文本数据分析tfidf贝叶斯逻辑回归支持向量机SVMK最邻近算法KNN随机森林LDA主题模型

全文链接:http://tecdat.cn/?p=31233

原文出处:拓端数据部落公众号

分析师:Yuanyuan Zhang

随着互联网的遍及和挪动端的利用的飞速发展, 消费者在各大电商平台进行流动交易时产生了大量的行为数据, 在线评论文本就是其中一种。

去年,咱们为一位客户进行了短暂的征询工作,他正在构建一个次要基于酒店评论数据的文本剖析应用程序。在线评论文本是消费者对生产对象切身体验后以文本的模式反馈至电商平台, 被作为公众的舆论观点导向。对此类观点进行无效情感分类不仅能够帮忙消费者进行决策, 还能够帮忙商家对服务进行改善。

本文剖析的数据是从某酒店预约网站获取到的评论数据。通过对评论数据的剖析,失去影响好差酒店的要害影响因素,并建设模型预测评论所对应的等级。在泛滥文本中筛选人们评论的关键因素因为存在情感偏向,中文表白的多样,隐性表白使得提取要害影响因素称为本我的项目的一大挑战。另一个挑战是评分预测,因为数据的不规则,对于模型的选取又是一大难点。

工作 / 指标

l  依据给定评估(review),预测评分(rating)

l  提取“好”,“差”酒店的要害影响因素

剖析思路:

对于问题一,须要依据给定评估预测评分,因为每一条评论都有 1~5 五种评分形式,因而属于文本多分类问题,文本分类的算法很多,有机器学习方面的也有深度学习方面的,在这里咱们尝试了奢侈贝叶斯、逻辑回归,反对向量机(SVM)、K 最邻近算法(KNN)、随机森林等多分类算法,并进行了相干比拟。本次分类工作的最大特点是咱们解决的是英文的文本,为此咱们应用了经典的 tf-idf 模型进行特征提取,对 train_data 进行初步简略的划分,并训练后发现预测准确率都不高。随后咱们从数据预处理、调参以及数据划分和训练及预测办法上做了优化解决,具体来说,就是数据预处理时充分考虑了英文文本本身的特点,调参时用到了控制变量法和穿插检验法,同时在训练集与测试集划分和紧接着的训练与预测上也用的是穿插检验法。最初对咱们的 Testing data.csv 文件进行预测时,咱们是选取了准确率最高的模型和咱们本人调试的相应参数。

对于问题二,提取“好”,“差”酒店的要害影响因素,所钻研的情感分类是二分类 (侧面情感和负面情感) 的, 给定文本曾经有了评分标签,故能够通过评分标签对文本进行分类,因为 3 分的评论情感偏向不明确,影响分类的准确性,为了失去更好的后果,剔除 3 分的评论数据,将评分为 1 - 2 的差评数据和评分为 4 - 5 的好评数据进行训练,并依据 TF-IDF 算法提取关键词绘制词云图。依据词云图能够初步确定好评和差评的关键因素。然而因为用户表白的情感偏向和其应用的关键词存在反向否定的状况,为了进一步捕获用户的情感偏向,应用具备潜在狄氏调配的主题模型对所有评论数据建模,每一条评论,可视为一个主题,评论文本共 19003 条,对所有文本进行主题建模,设置主题参数为 2,失去两个主题的按升序排列的单词重要性矩阵,显示前 60 个主题关键词,失去后果

如下训练样本(只列举局部特色)。

评分预测建模

1. 奢侈贝叶斯模型

贝叶斯办法以贝叶斯原理为根底,在先验概率的根底上将数据集归为 n 个标签中后验概率最大的标签(基于最小错误率贝叶斯决策准则),其特点是联合先验概率和后验概率,防止了只应用先验概率的主观偏见,也防止了独自应用样本信息的过拟合景象。本次试验中贝叶斯算法训练速度最快,准确度较高。

2. 随机森林

随机森林是一种集成算法(Ensemble Learning),它属于 Bagging 类型,通过组合多个弱分类器,最终后果通过投票或取均值,使得整体模型的后果具备较高的精确度和泛化性能。其能够获得不错问题,次要归功于“随机”和“森林”,一个使它具备抗过拟合能力,一个使它更加精准。在本次试验中其预测准确率较低,训练速度较慢。

3. 逻辑回归

逻辑回归的思维就是 在线性回归上再做一次函数转换,对线性回归的后果做一个在函数上的转换,变动为逻辑回归。这个函数个别取为 sigmoid 函数,常常用来解决二分类问题,也能够解决多分类问题,次要有两种实现策略,一种是为每个类别创立一个 sigmod 分类器,再进行整合,另一种是就用一个 digmod 分类器,同时基于 softmax 思维为每个类别调配一个概率(所有类别的概率和为 1)来训练模型,实现分类。本次试验中应用这种办法获得了最高的预测准确率

4. 反对向量机(SVM)

反对向量机的目标在于求得最优的即几何距离最大的超平面,在样本数据是线性可分的时候,这里的距离最大化又叫硬距离最大化(训练数据近似可分的话就叫软距离)

试验发现其训练速度较慢,准确度个别。

模型优化

穿插测验是在机器学习建设模型和验证模型参数时罕用的方法。穿插验证,顾名思义,就是反复的应用数据,把失去的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上能够失去多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“穿插”。

依据切分的办法不同,穿插验证分为上面三种:
第一种是简略穿插验证,所谓的简略,是和其余穿插验证办法相对而言的。首先,咱们随机的将样本数据分为两局部(比方:70% 的训练集,30% 的测试集),而后用训练集来训练模型,在测试集上验证模型及参数。接着,咱们再把样本打乱,从新抉择训练集和测试集,持续训练数据和测验模型。最初咱们抉择损失函数评估最优的模型和参数。
第二种是 S 折穿插验证(S-Folder Cross Validation)。和第一种办法不同,S 折穿插验证会把样本数据随机的分成 S 份,每次随机的抉择 S - 1 份作为训练集,剩下的 1 份做测试集。当这一轮实现后,从新随机抉择 S - 1 份来训练数据。若干轮(小于 S)之后,抉择损失函数评估最优的模型和参数。
第三种是留一穿插验证(Leave-one-out Cross Validation),它是第二种状况的特例,此时 S 等于样本数 N,这样对于 N 个样本,每次抉择 N - 1 个样本来训练数据,留一个样原本验证模型预测的好坏。此办法次要用于样本量非常少的状况,比方对于一般适中问题,N 小于 50 时,个别采纳留一穿插验证。
本次试验采纳简略穿插进行验证

关键词提取建模

LDA 模型:LDA 即 LatentDirichletAllocation(隐含狄利克雷散布),是由 Blei 于 2003 年提出的三层贝 3 叶斯主题模型,通过无监督的学习办法发现文本中隐含的主题信息,LDA 是一种概率生成模型,试图找出几个常呈现在不同文档中的单词。假如每个单词都是由不同文档组成的混合体,那么经常出现的单词就代表主题。LDA 的输出是词袋模型,LDA 把词袋矩阵作为输出而后分解成两个新矩阵:1. 文档主题矩阵 2. 单词主题矩阵

模型图如下:

应用各种模型的正确率图示:

问题二后果图:

别离对评分为 1 - 3 分和评论与评分为 4 - 5 分的评论制作词云图如下:

< 评分 4~5 分词云图 >

< 评分 1~3 分词云图 >

发现在低分的评论词云图中呈现了正向情感词,因为 3 分的评论对于“好”“差”的偏向度不高,因而抉择了 4~5 分的评论和 1~2 分的评论别离绘制词云图,后果如下

< 评分为 4~5 分词云图 >

< 评分为 1~2 分词云图 >

为了失去更强的区分度,别离对评分为 5 分的评论集和 1 分的评论集绘制词云,失去如下后果

< 评分为 5 分词云图 >

< 评分为 1 分词云图 >

从上述后果能够直观的看到, 剔除形容情感偏向的词汇

好酒店的要害影响因素:uinique parking  staying   convenient  location  clean  large  quick  seahawk  time monaco cruise spent

差酒店的要害影响因素:staff airconditioner   charge  theft  looked  building  tiny  unfriendly   outside cleanliness   wire  ruined  talking booked/reservation  noise  internet

为了失去更精确的后果,应用 LDA 进行情感主题分类,失去量化后果如下:

好酒店的要害影响因素

差酒店的要害影响因素

对于作者

在此对 Yuanyuan Zhang 对本文所作的奉献示意诚挚感激,她善于深度学习、数理金融。


最受欢迎的见解

1.Python 主题建模 LDA 模型、t-SNE 降维聚类、词云可视化文本开掘新闻组

2.R 语言文本开掘、情感剖析和可视化哈利波特小说文本数据

3.r 语言文本开掘 tf-idf 主题建模,情感剖析 n -gram 建模钻研

4. 游记数据感知游览目的地形象

5. 疫情下的新闻数据察看

6.python 主题 lda 建模和 t -sne 可视化

7.r 语言中对文本数据进行主题模型 topic-modeling 剖析

8. 主题模型:数据凝听人民网留言板的那些“网事”

9.python 爬虫进行 web 抓取 lda 主题语义数据分析

退出移动版