本次实验将加载两个数据,一个是已经标注好的用户评论数据,另外一个是用户评价主题句,通过标注过的用户评论数据进行基于集成模型的情感极性模型训练,然后利用模型对主题句进行情感极性推理,最后通过数据聚合可视化得出主题情感极性。
使用 Pandas 加载在线数据表格,并查看数据维度和前 5 行数据。
数据属性如下表所示
加载我们之前通过主题词典提取出来的主题句。
数据属性如下表所示
用户评论分词
jieba 分词器预热,第一次使用需要加载字典和缓存,通过结果看出返回的是分词的列表。
批量对用户评价进行分词,需要一些时间,并打印第一行情感极性训练集的分词结果。
批量对用户评价主题句进行分词,并打印第一句用户主题句分词结果。
依据统计学模型假设,假设用户评论中的词语之间相互独立,用户评价中的每一个词语都是一个特征,我们直接使用 TF-IDF 对用户评价提取特征,并对提取特征后的用户评价输入分类模型进行分类,将类别输出为积极的概率作为用户极性映射即可。
用户评论向量化
TF-IDF 是一种用于信息检索与数据挖掘的常用加权技术,当某个词在文章中的TF-IDF越大,那么一般而言这个词在这篇文章的重要性会越高,比较适合对用户评论中的关键词进行量化。
数据集合划分
按照训练集 8 成和测试集 2 成的比例对数据集进行划分,并检查划分之后的数据集数量。
我们在系列实验的开始使用朴素贝叶斯模型来训练情感分析模型,下面我们新增逻辑回归模型作为对比模型。逻辑回归(Logistic Regression)是一种用于解决二分类问题的机器学习方法,在线性回归的基础上,套用了一个 sigmod 函数,这个函数将线性结果映射到一个概率区间,并且通常以 05 分界线,这就使得数据的分类结果都趋向于在 0 和 1 两端,将用户评论进行向量化之后也可以用此方式预测用户情感。本实验直接对标注过的用户情感数据进行训练,并验证单一模型和集成模型在情感分析性能上的差异。
模型加载
通过传入原始的标签和预测的标签可以直接将分类器性能进行度量,利用常用的分类模型评价指标对训练好的模型进行模型评价,accuracy_score 评价被正确预测的样本占总样本的比例,Precision 是衡量模型精确率的指标,它是指模型识别出的文档数与识别的文档总数的比率,衡量的是模型的查准率。Recall 召回率也称为敏感度,它是指模型识别出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率,表示正样本在被正确划分样本中所占的比例,f1_score 值是精确率与召回率的调和平均数,是一个综合性的指数。
我们分别对不同模型使用相同的数据集进行训练和测试,以此来比较单模型之间的差异,并打印模型运行时间供大家参考,批量处理不同的模型需要一些时间进行计算,清耐心等待。
通过求得的指标进行模型评价,我们发现使用相同的数据进行模型训练,朴素贝叶斯模型和逻辑回归模型性能基本持平,相差很微弱,逻辑回归稍稍占一些优势。
Stacking 堆栈模型训练
集成学习是地结合来自两个或多个基本机器学习算法的优势,学习如何最好地结合来自多个性能良好的机器学习模型的预测结果,并作出比集成中的任何一个模型更好的预测。主要分为 Bagging, Boosting 和 Stacking,Stacking 堆栈模型是集成机器学习模型的一种,具体是将训练好的所有基模型对整个训练集进行预测,然后将每个模型输出的预测结果合并为新的特征,并加以训练。主要能降低模型的过拟合风险,提高模型的准确度。
开始对两个模型进行集成训练,训练的时间要比单一模型时间久一些,清耐心等待。
评测结果收集。
结果分析
将结果存入 Dataframe 进行结果分析,lr 表示逻辑回归,nb 表示朴素贝叶斯,model_stacking 将两个单模型集成后的模型。从结果来看集成模型准确度和 f1 值都是最高的,结合两个模型的优势,整体预测性能更好,鲁棒性更好。
样例测试
通过测试样例发现,分类器对正常的积极和消极判断比较好。但是当我们改变语义信息,情感模型则不能进行识别,模型鲁棒性较差。作为早期的文本分类模型,我们使用 TFIDF 的特征提取方式并不能很好的解决语义问题,自然语言是带有语序和语义的关联,其词语之间的关联关系影响整句话的情感极性,后续我们继续试验深度情感分析模型研究解决此类问题。
加载民宿主题数据。
模型预测
将情感分析模型推理的结果写入 DataFrame 中进行聚合。
单主题聚合分析
挑选一个主题进行主题情感分析。
对民宿“设施”进行描述统计,此次我们使用主题词典的出来的用户关于民宿“设施”主体的讨论条数为 4628 条,平均用户情感极性为 040 表示为整体呈现不满意的情况,有超过一半的关于“设施”的民宿评论中表现用户不满意的情况,重庆民宿需要在“设施”进行改善,以此提高用户满意度。
单主题情感极性可视化
我们开始进行“设置”主题下的用户主题情感进行可视化,首先加载画图模块。
对“设施”主题下的用户情感极性进行可视化,我们利用集成模型对主题句进行情感极性预测,如下所示。
1、数据预处理:将原始文本数据进行清洗、分词、去除停用词等预处理操作,得到文本的词袋表示。
2、特征提取:对于每个属性,从词袋中提取出与该属性相关的特征词,例如“价格”、“质量”等。
3、聚类或主题建模:使用聚类或主题建模方法对文本进行无监督学习,将文本按照不同的主题或簇进行分组,从而实现属性级分类,对于聚类方法,可以使用K-means、DBSCAN等算法。对于主题模型,可以使用LDA等算法。
4、情感分析:对于每个属性,计算该属性下文本的情感得分,可以使用情感词典或者情感分类器等方法进行情感分析。
情感的哲学本质就是人对事物的价值关系的一种主观反映,情感与价值的关系在本质上就是主观与客观的关系。也可以说,人的情感活动的逻辑过程与一般认知活动的逻辑过程基本相同,其主要区别在于它们所反映的对象不同,一般认知活动所反映的对象是事物的事实关系,而情感活动所反映的对象是事物的价值关系。
价值观的客观目的在于识别事物的价值率,它是事物价值率的主观反映值。人在价值观的引导下,可以对不同的事物产生不同的选择倾向。然而,仅仅认识事物的价值率是不够的,人仍然无法真正确定对事物的价值资源的投入原则(投入方向和投入规模)。以经济贸易方面为例,如果一个商人的年平均利润率能够达到50%,那么他对于年平均利润率只有20%的经营项目不会感兴趣,甚至会产生反感;如果一个商人的年平均利润率只能达到15%,那么他对于年平均利润率只有20%的经营项目将会产生浓厚的兴趣。事实上,当事物的价值率较小时,人不仅不会对它投入价值资源,而且还会不断把以前投入的价值资源抽调出来,只有当事物的价值率大于某个确定值时,人才会不断追加对它的价值资源的投入规模。这个确定值就是主体的“中值价值率”。
人的活动内容是丰富多彩的,所涉及的事物也是复杂多样的,人对于所有事物所产生的情感可以组成一个复杂的情感系统,并可采用一定的数学表达式进行描述。 人对于所有事物的情感所组成的数学矢量,称为情感矢量,用M来表示,即
M={μ1,μ2,…,μn} (1-23)
其中,μi是指人对于第i个事物所产生的情感。
有些抽象事物本身是由多个具体事物所组成,则抽象事物的情感可用多个具体事物的情感所组成的情感矢量来描述。 如果多个具体事物又是由若干更具体的事物所组成,即它相对于更具体的事物来说属于抽象事物,则多个具体事物的情感可分别用若干更具体事物的情感所组成的情感矢量来描述,这时,抽象事物的情感可用一个二维的情感矩阵来描述。
M={μi×j}m×n (1-24)
同理,可以定义n维情感矩阵。
美国著名营销学家Richard l Oliver提出的“期望与实绩”模式是最广泛应用的一种病人满意度模式。根据这个模式,如果病人感觉到的服务质量超过对服务质量的期望,就会感到满意;否则就会不满意。按照病人满意度来评估服务质量,管理者不仅应重视服务过程和服务结果,更应分析、掌握病人的看法及服务过程中影响服务人员和病人相互交往的心理、社会和环境因素。
通过调研,常常发现病人对医务人员提供的服务不满意,而医务人员感到自己已经尽力,对病人的不理解感到委屈。因此,本次调查着重研究医护人员、患者对服务质量理解的差异性,以便为病人提供更能满足其需要的服务。
根据主体所有活动的价值率以及相应的作用规模,可以求出一个加权平均价值率,称为主体的中值价值率或平均价值率,用Po来表示。
“中值价值率”是主体一个最重要的价值特性,它反映了主体的价值创造能力或本质力量的最重要方面——价值增长速度,主体的情感将会以它为参考系,确定对于所有事物的基本态度:凡是价值率大于其中值价值率的事物,主体将会对它产生正向的情感;凡是价值率小于其中值价值率的事物,主体将会对它产生负向的情感。即情感的客观目的在于以主体的中值价值率为基准,识别事物的价值率相对于主体的中值价值率的差值,从而为主体的行为和思维活动提供精确、有序和恰当的驱动力。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)