当前位置:   article > 正文

SnowNLP简易教程:分词、词性标注、情感分析、繁体转换、关键字抽取、相似度计算...

snownlp sentences

SnowNLP

一个可以方便的处理中文文本内容的python写的类库,受到了TextBlob的启发而写的

 

 安装:pip install snownlp

  1. from snownlp import SnowNLP
  2. sentence = '我热爱机器学习技术'
  3. s = SnowNLP(sentence)
  4. #1.分词
  5. s_token = s.words
  6. print(s_token)
  7. ['我', '热爱', '机器', '学习', '技术']
  8.     
  9. #2.词性标注
  10. s_tags = s.tags
  11. for token_tag in s_tags:
  12.     print(token_tag)
  13.     
  14. ('我', 'r')
  15. ('热爱', 'v')
  16. ('机器', 'n')
  17. ('学习', 'v')
  18. ('技术', 'n')
  19. #3.情感分析(消极或者积极) positive or negative
  20. s_senti = s.sentiments #(positive的概率)
  21. print(s_senti)
  22. ```
  23. 0.9539851857793564
  24. #4.中文拼音
  25. s_pinyin = s.pinyin
  26. for i in range(len(sentence)):
  27. print(sentence[i],s_pinyin[i])
  28. ```
  29. 我 wo
  30. 热 re
  31. 爱 ai
  32. 机 ji
  33. 器 qi
  34. 学 xue
  35. 习 xi
  36. 技 ji
  37. 术 shu
  38. #5.繁体字转简体
  39. sentence_fan = "我愛機器學習技術"
  40. s_jianti = SnowNLP(sentence_fan)
  41. print(s_jianti.han)
  42. ```
  43. 我爱机器学习技术
  44. #6.分割句子(Tokenization)
  45. text = u'''
  46. 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
  47. 它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
  48. 自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
  49. 因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
  50. 所以它与语言学的研究有着密切的联系,但又有重要的区别。
  51. 自然语言处理并不是一般地研究自然语言,
  52. 而在于研制能有效地实现自然语言通信的计算机系统,
  53. 特别是其中的软件系统。因而它是计算机科学的一部分。
  54. '''
  55. t = SnowNLP(text)
  56. for sen in t.sentences:
  57. print(sen + "。")
  58. ```
  59. 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
  60. 它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
  61. 自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
  62. 因此。
  63. 这一领域的研究将涉及自然语言。
  64. 即人们日常使用的语言。
  65. 所以它与语言学的研究有着密切的联系。
  66. 但又有重要的区别。
  67. 自然语言处理并不是一般地研究自然语言。
  68. 而在于研制能有效地实现自然语言通信的计算机系统。
  69. 特别是其中的软件系统。
  70. 因而它是计算机科学的一部分。
  71. #7.关键词抽取
  72. key_num = 5
  73. t_key = t.keywords(key_num)
  74. print(t_key)
  75. ```
  76. ['语言', '自然', '计算机', '领域', '研究']
  77. #8.摘要抽取(关键句抽取)
  78. key_sen = 5
  79. t_keysen = t.summary(key_sen)
  80. print(t_keysen)
  81. ```
  82. ['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '所以它与语言学的研究有着密切的联系', '这一领域的研究将涉及自然语言']
  83. #9.计算tf和idf
  84. s = SnowNLP([[u'机器学习', u'人工智能'],
  85. [u'深度学习', u'自然语言处理'],
  86. [u'数据挖掘']])
  87. print(s.tf)
  88. print(s.idf)
  89. ```
  90. [{'机器学习': 1, '人工智能': 1}, {'深度学习': 1, '自然语言处理': 1}, {'数据挖掘': 1}]
  91. {'机器学习': 0.5108256237659907, '人工智能': 0.5108256237659907, '深度学习': 0.5108256237659907, '自然语言处理': 0.5108256237659907, '数据挖掘': 0.5108256237659907}
  92. #10.计算相似度(BM25)
  93. artilc1 = ['自然语言处理']
  94. print(s.sim(artilc1))
  95. [0, 0.4686473612532025, 0]
  96.     
  97. ## 支持训练
  98. - 提供训练的包括分词,词性标注,情感分析。语料在snownlp/seg目录下
  99. - 训练好的文件就存储为seg.marshal了,然后修改snownlp/seg/init.py里的data_path指向刚训练好的文件即可
  100. from snownlp import seg
  101. #seg.train('data.txt')
  102. #seg.save('seg.marshal')
  103. # from snownlp import tag
  104. # tag.train('199801.txt')
  105. # tag.save('tag.marshal')
  106. # from snownlp import sentiment
  107. # sentiment.train('neg.txt', 'pos.txt')
  108. # sentiment.save('sentiment.marshal')
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/473590
推荐阅读
相关标签
  

闽ICP备14008679号