当前位置:   article > 正文

Py之SnowNLP:SnowNLP中文处理包的简介、安装和使用方法、案例应用之详细攻略_python 中文snownlp繁体

python 中文snownlp繁体

Py之SnowNLP:SnowNLP中文处理包的简介、安装和使用方法、案例应用之详细攻略

目录

SnowNLP的简介

1、功能

SnowNLP的安装

SnowNLP的使用方法

1. 分词

2. 词性标注

3. 情感分析

4. 拼音转换

5. 繁体字转换

6. 关键词提取

7. 摘要提取

8. 词频统计

9. 文本分类

10. 主题提取

11. 文本相似度计算

12. 文本去重

13. 文本翻译

14. 分句

15. 拼音相似度

SnowNLP的训练


SnowNLP的简介

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。

snownlp主要可以进行中文分词(算法是Character-Based Generative Model)、词性标注、情感分析、文本分类(原理是朴素贝叶斯)、转换拼音、繁体转简体、提取文本关键词(原理TextRank)、提取摘要(原理TextRank)、分割句子、文本相似(原理BM25)。

GitHub地址GitHub - isnowfy/snownlp: Python library for processing Chinese text

1、功能

  • 中文分词(Character-Based Generative Model
  • 词性标注(TnT 3-gram 隐马)
  • 情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
  • 文本分类(Naive Bayes)
  • 转换成拼音(Trie树实现的最大匹配)
  • 繁体转简体(Trie树实现的最大匹配)
  • 提取文本关键词(TextRank算法)
  • 提取文本摘要(TextRank算法)
  • tf,idf
  • Tokenization(分割成句子)
  • 文本相似(BM25
  • 支持python3(感谢erning

SnowNLP的安装

pip install snownlp

SnowNLP的使用方法

1. 分词

  1. from snownlp import SnowNLP
  2. text = "我喜欢自然语言处理"
  3. s = SnowNLP(text)
  4. print(s.words) # ['我', '喜欢', '自然', '语言', '处理']

2. 词性标注

  1. from snownlp import SnowNLP
  2. text = "我喜欢自然语言处理"
  3. s = SnowNLP(text)
  4. print(s.tags) # [('我', 'r'), ('喜欢', 'v'), ('自然', 'n'), ('语言', 'n'), ('处理', 'v')]
  5. for word, tag in s.tags:
  6. print("Word = {}, Tag = {}\n".format(word, tag))

3. 情感分析

  1. from snownlp import SnowNLP
  2. text = "这个产品真的很棒!"
  3. s = SnowNLP(text)
  4. print("Sentiment score =", s.sentiments) # Sentiment score = 0.9833794352188775

4. 拼音转换

  1. from snownlp import SnowNLP
  2. text = "自然语言处理"
  3. s = SnowNLP(text)
  4. print(s.pinyin) # ['zi', 'ran', 'yu', 'yan', 'chu', 'li']

5. 繁体字转换

  1. from snownlp import SnowNLP
  2. text = "後來我才知道你是真的愛我"
  3. s = SnowNLP(text)
  4. print(s.han) # 后来我才知道你是真的爱我

6. 关键词提取

  1. from snownlp import SnowNLP
  2. text = "後來我才知道你是真的愛我"
  3. s = SnowNLP(text)
  4. print(s.han) # 后来我才知道你是真的爱我

7. 摘要提取

  1. from snownlp import SnowNLP
  2. text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。"
  3. s = SnowNLP(text)
  4. print(s.summary(3)) # ['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。']

8. 词频统计

  1. from snownlp import SnowNLP
  2. text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。"
  3. s = SnowNLP(text)
  4. print(s.tf) # {'自然': 1, '语言': 1, '处理': 1, '是': 1, '计算机': 1, '科学': 1, '领域': 1, '与': 1, '人工智能': 1, '中的': 1, '一个': 1, '重要': 1, '方向': 1}

9. 文本分类

  1. from snownlp import SnowNLP
  2. text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。"
  3. s = SnowNLP(text)
  4. print(s.tf) # {'自然': 1, '语言': 1, '处理': 1, '是': 1, '计算机': 1, '科学': 1, '领域': 1, '与': 1, '人工智能': 1, '中的': 1, '一个': 1, '重要': 1, '方向': 1}

10. 主题提取

  1. from snownlp import SnowNLP
  2. text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。"
  3. s = SnowNLP(text)
  4. print(s.topics) # [['语言', '自然'], ['计算机', '研究']]

11. 文本相似度计算

  1. from snownlp import SnowNLP
  2. text1 = "我喜欢自然语言处理"
  3. text2 = "我讨厌自然语言处理"
  4. s1 = SnowNLP(text1)
  5. s2 = SnowNLP(text2)
  6. print(s1.similarity(s2)) # 返回两个文本的相似度

12. 文本去重

  1. from snownlp import SnowNLP
  2. text1 = "我喜欢自然语言处理"
  3. text2 = "我讨厌自然语言处理"
  4. s1 = SnowNLP(text1)
  5. s2 = SnowNLP(text2)
  6. print(s1.similarity(s2)) # 返回两个文本的相似度

13. 文本翻译

  1. from snownlp import SnowNLP
  2. text = "我喜欢自然语言处理"
  3. s = SnowNLP(text)
  4. print(s.translate(to='en')) # I like natural language processing (假设存在翻译功能)

14. 分句

  1. from snownlp import SnowNLP
  2. text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。"
  3. s = SnowNLP(text)
  4. print(s.sentences) # ['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。']

15. 拼音相似度

  1. from snownlp import SnowNLP
  2. text = "自然语言处理"
  3. s = SnowNLP(text)
  4. print(s.pinyin_similarity("ziran yuyan chuli")) # 返回拼音相似度

SnowNLP的训练

现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在snownlp/seg目录下

  1. from snownlp import seg
  2. seg.train('data.txt')
  3. seg.save('seg.marshal')
  4. # from snownlp import tag
  5. # tag.train('199801.txt')
  6. # tag.save('tag.marshal')
  7. # from snownlp import sentiment
  8. # sentiment.train('neg.txt', 'pos.txt')
  9. # sentiment.save('sentiment.marshal')

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

闽ICP备14008679号