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:forcomments中的每一条comment

2:针对comment使用jieba进行分词,获得分词结果SegWords

3:将SegWords由列表转换为分词字典SegWordsDict

4:获取本地情感字典,并完成字典转换SentiDict、NotDict、DegreeDict

5:#根据情感字典对分词字典中的情感词进行定位

6:forSegWordsDict中的每一个word

7:ifwordinSentiDictandnotinNotDict&DegreeDictthen

8:标注该word的位置,并赋予相应的SentiScore

9:ifwordinNotDictthen

10:标注该word的位置,并赋值NotWeight

11:ifwordinDegreeDictthen

12:标注该word的位置,并赋予相应的DegreeWordWeight

13:endif

14:endfor

15:返回定位文档SenWord,NotWord,DegreeWord

16:#根据情感定位计算情感得分

17:情感得分score=0

18:forifrom0toIength(datafen)

19:ifiinSenWordthen

20:score=score+SentiScore

21:ifi不是SenWord的最后一个then

22:forjfrom该情感词位置to下一个情感词位置then

23:ifjinNotWordthen

24:score=score*-1

25:ifjinDegreeWordthen

26:score=score*DegreeWordWeight

27:endif

28:endfor

29:endif

30:ifi不是SenWord的最后一个then

31:i=SenWord中下一个情感词位置

32:endif

33:endfor

34:endfor

输出:包含comments中各行记录的情感得分SentiScore


5、需要得到数据为(1)正面情感倾向评论的占比(2)正面情感倾向评论的数目(3)用户评论情感值的图(类似下图)


站长地图