Python编程情感态度分析程序辅导讲解、讲解Python编程情感
- 首页 >> Python编程1、利用Python进行编程
2、利用Pythond的pyltp模块进行特征情感词对提取。(或者利用正则表达式提取特征情感词对)
利用 LTP 平台的依存句法分析组件对网络评论的分词结果进行了特征情感词对提取:只提取3种关系结构:
(1)主谓关系 SBV(2)动宾关系 VOB (3)定中关系 ATT
具体流程如下:
(1)若一行数据中 relate 等于“SBV”,提取该行 word 字段放入特征词列,并按照parent 的数值提取对应行 word 字段放入情感词列;
(2)若一行数据中 relate 等于“VOB”,提取该行 word 字段放入特征词列,并按照parent 的数值提取对应行 word 字段放入情感词列;
(3)若一行数据中 relate 等于“ATT”,提取该行 word 字段放入情感词列,并按照parent 的数值提取对应行 word 字段放入特征词列;
(4)对情感词词性进行判断,只保留 3 种依存关系中情感词词性为形容词或动词的组合,排除其他词性的组合。
(5)为了避免分词时将部分情感词中的否定词与情感词切分开,如可能存在将“不喜欢”切分为“不”和“喜欢”两个词的情况。因此在提取依存关系时,还需要根据总结的否定词表,判断是否有依存于情感词的否定词,若存在依存于情感词的否定词,则将此特征情感组合赋予否定标记,以免造成情感错乱
3、得出依存语句分析中筛选景区特征情感词对
需要得到的数据如下:
(1)景区特征与游客情感态度组合的个数以及文档(2)景区特征词个数以及输出文档(3)情感词的个数以及输出文档
(4)依存句法提取景区特征词云 (5)依存句法提取情感词云
(4)、(5)图例如下
4、对提取的情感态度组合进行情感倾向分析:采用情感词典方法进行计算,可以选取知网How Net情感分析词词典或其他词典进行计算。
以下算法可供参考
输入:评论数据集comments
过程:
1:forcomments中的每一条comment
2:针对comment使用jieba进行分词,获得分词结果SegWords
3:将SegWords由列表转换为分词字典SegWordsDict
4:获取本地情感字典,并完成字典转换SentiDict、NotDict、DegreeDict
5:#根据情感字典对分词字典中的情感词进行定位
6:forSegWordsDict中的每一个word
7:ifwordinSentiDictandnotinNotDict&DegreeDictthen
8:标注该word的位置,并赋予相应的SentiScore
9:ifwordinNotDictthen
10:标注该word的位置,并赋值NotWeight
11:ifwordinDegreeDictthen
12:标注该word的位置,并赋予相应的DegreeWordWeight
13:endif
14:endfor
15:返回定位文档SenWord,NotWord,DegreeWord
16:#根据情感定位计算情感得分
17:情感得分score=0
18:forifrom0toIength(datafen)
19:ifiinSenWordthen
20:score=score+SentiScore
21:ifi不是SenWord的最后一个then
22:forjfrom该情感词位置to下一个情感词位置then
23:ifjinNotWordthen
24:score=score*-1
25:ifjinDegreeWordthen
26:score=score*DegreeWordWeight
27:endif
28:endfor
29:endif
30:ifi不是SenWord的最后一个then
31:i=SenWord中下一个情感词位置
32:endif
33:endfor
34:endfor
输出:包含comments中各行记录的情感得分SentiScore
5、需要得到数据为(1)正面情感倾向评论的占比(2)正面情感倾向评论的数目(3)用户评论情感值的图(类似下图)