Press "Enter" to skip to content

中文分词工具盘点之SnowNLP

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

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

 

主要特性:

中文分词( Character-Based Generative Model

词性标注( TnT
3-gram 隐马)
情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
文本分类(Naive Bayes)
转换成拼音(Trie树实现的最大匹配)
繁体转简体(Trie树实现的最大匹配)

提取文本关键词( TextRank
算法)

提取文本摘要( TextRank
算法)
tf,idf
Tokenization(分割成句子)

文本相似( BM25

安装:

pip
install

 

示例代码:

 

from snownlp import SnowNLP
 
s1 = SnowNLP('这个东西真心很赞')
print(s1.words)
print(list(s1.tags))
print(s1.sentiments)
print(s1.pinyin)
 
s2 = SnowNLP('「繁体字」「繁体中文」的叫法在台湾亦很常见。')
print(s2.han)
 
text = '''
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,
而在于研制能有效地实现自然语言通信的计算机系统,
特别是其中的软件系统。因而它是计算机科学的一部分。
'''
s3 = SnowNLP(text)
print(s3.keywords(3))
print(s3.summary(3))
print(s3.sentences)
 
s4 = SnowNLP([['这篇', '文章'], ['那篇', '论文'], ['这个']])
print(s4.tf)
print(s4.idf)
print(s4.sim([u'文章']))

 

输出内容:

 

['这个', '东西', '真心', '很', '赞']
[('这个', 'r'), ('东西', 'n'), ('真心', 'd'), ('很', 'd'), ('赞', 'Vg')]
0.9769551298267365
['zhe', 'ge', 'dong', 'xi', 'zhen', 'xin', 'hen', 'zan']
「繁体字」「繁体中文」的叫法在台湾亦很常见。
['语言', '自然', '计算机']
['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学']
['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '因此', '这一领域的研究将涉及自然语言', '即人们日常使用的语言', '所以它与语言学的研究有着密切的联系', '但又有重要的区别', '自然语言处理并不是一般地研究自然语言', '而在于研制能有效地实现自然语言通信的计算机系统', '特别是其中的软件系统', '因而它是计算机科学的一部分']
[{'这篇': 1, '文章': 1}, {'那篇': 1, '论文': 1}, {'这个': 1}]
{'这篇': 0.5108256237659907, '文章': 0.5108256237659907, '那篇': 0.5108256237659907, '论文': 0.5108256237659907, '这个': 0.5108256237659907}
[0.4686473612532025, 0, 0]

 

参考链接: https://github.com/isnowfy/snownlp

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注