当前位置:   article > 正文

自然语言处理:词性标注_完成基于 jieba 模块进行词性标注的程序编写

完成基于 jieba 模块进行词性标注的程序编写

步骤一:导入 jieba 库,对文本内容进行分词处理。

导入 jieba 库的 posseg 模块,对文本进行分词标注。
步骤二:
词性统计:
导入 pandas 库,提取出标注返回结果的每项元素的 flag 部分,即词性部分,随后
pandas 中的 value_counts 进行词性统计,并用 head() 函数返回出现最多的前十行。
词性种类统计:
将原标记数据进行去重处理,再遍历去重后的数据,此时若同样的词出现 n 次,即
为词一样但对应词性不一样,也就是说一个词包含了 n 种词性。按这样的思路,对词性
种类进行值的统计。输出种类最多的前十项。
代码:
  1. import nltk import re
  2. import jieba data_path='D://自然语言处理/西游记第一章.txt'
  3. text=''
  4. with open(data_path,'r') as f:
  5. text=f.read()
  6. print(len(set(text)))
  7. text
  8. rst1=re.findall(r'<p>\n\t\u3000\u3000(.*)</p>\n',text)
  9. print(rst1)
  10. rst1=','.join(rst1)
  11. text2=jieba.lcut(rst1)
  12. print('分词结果',text2)
  13. #标注
  14. import jieba.posseg as pseg
  15. psgRes=pseg.lcut(rst1)
  16. print('标注结果:',psgRes)
  17. #统计词性标注结果中每种词性出现的次数,并输出出现次数最多的前十项
  18. import pandas as pd
  19. flags=[]
  20. for i in psgRes:
  21. flags.append(i.flag)
  22. result=pd.value_counts(flags)
  23. print('词性统计结果\n',result)
  24. print('词性出现最多的前十行\n',result.head(10))
  25. #统计词性标注结果中每个词有多少种词性,并输出被标注词性种类最多的前十项
  26. #去重
  27. psgRes1=[]
  28. for l1 in psgRes:
  29. if l1 not in psgRes1:
  30. psgRes1.append(l1)
  31. print(psgRes1)
  32. words=[]
  33. for i in psgRes1:
  34. words.append(i.word)
  35. result1=pd.value_counts(words)
  36. print('词性种类统计结果\n',result1)
  37. print('被标注词性种类最多的前十项\n',result1.head(10))

去重方法可用set函数但会影响原序列顺序。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/588731
推荐阅读
相关标签
  

闽ICP备14008679号