Atitit snownlp  nlp 常见功能

 

目录

1.1. 主要功能: 1

1.2. 官网信息: 2

1.3. # 自动摘要 vs 关键词提取 2

1.4. Tf idf算法 2

1.5. print('文本相似:') 3

1.6. 中文分词: 3

1.7. 词性标注: 4

1.8. 情感分析: 4

1.9. 转成拼音: 4

1.10. 繁体转简体: 4

1.11. 关于训练(分词,词性标注,情感分析): 4

 

 

  1. 主要功能:

 

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

 

 

 

  1. # 自动摘要 vs 关键词提取

text = '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。'
s = SnowNLP(text)
print(s.keywords(10))
print(s.summary(3))
##  SnowNLP.summary

 

 

  1. Tf idf算法

 

s = SnowNLP([[u'这篇', u'文章'],

             [u'那篇', u'论文'],

             [u'这个']])print(s.tf)     #TF意思是词频(Term Frequency)print(s.idf)    #IDF意思是逆文本频率指数(Inverse Document Frequency)

 

 

  1. print('文本相似:')
  1.  
  2.  

print(s.sim(['文章']))# [0.3756070762985226, 0, 0]



print(s.sim(['文章','真']))# [0.7731414846187967, 0, 0

  1.  
  2. 词频:
  3. [{'这篇': 1, '文章': 1, '真': 1, '不错': 1}, {'那篇': 1, '论文': 1}, {'这个': 1}]
  4.  
  5. 逆向文件频率:
  6. {'这篇': 0.5108256237659907, '文章': 0.5108256237659907, '真': 0.5108256237659907, '不错': 0.5108256237659907, '那篇': 0.5108256237659907, '论文': 0.5108256237659907, '这个': 0.5108256237659907}
  7.  
  8. 文本相似:
  9. [0.38657074230939836, 0, 0]
  10.  
  11. ---------------------

 

  1. 中文分词:

['这个', '东西', '真心', '很', '赞']

 

  1. 词性标注:

<zip object at 0x12638b388>

 

  1. 情感分析:

0.9769551298267365

 

  1. 转成拼音:

['zhe', 'ge', 'dong', 'xi', 'zhen', 'xin', 'hen', 'zan']

 

  1. 繁体转简体:

「繁体字」「繁体中文」的叫法在台湾亦很常见。

 

提取文本关键词:

 

---------------------

  1. 关于训练(分词,词性标注,情感分析):

 

 

from snownlp import seg

seg.train('data.txt')

seg.save('seg.marshal')

# from snownlp import tag

# tag.train('199801.txt')

# tag.save('tag.marshal')

# from snownlp import sentiment

# sentiment.train('neg.txt', 'pos.txt')