1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SnowNLP简易教程:分词 词性标注 情感分析 繁体转换 关键字抽取 相似度计算

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

时间:2024-01-22 13:01:27

相关推荐

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

SnowNLP

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

安装:pip install snownlp

from snownlp import SnowNLPsentence = '我热爱机器学习技术's = SnowNLP(sentence)

#1.分词s_token = s.wordsprint(s_token)

[‘我’, ‘热爱’, ‘机器’, ‘学习’, ‘技术’]

#2.词性标注s_tags = s.tagsfor token_tag in s_tags:print(token_tag)

(‘我’, ‘r’)

(‘热爱’, ‘v’)

(‘机器’, ‘n’)

(‘学习’, ‘v’)

(‘技术’, ‘n’)

#3.情感分析(消极或者积极) positive or negatives_senti = s.sentiments #(positive的概率)print(s_senti)

0.9539851857793564

#4.中文拼音s_pinyin = s.pinyinfor i in range(len(sentence)):print(sentence[i],s_pinyin[i])

我 wo

热 re

爱 ai

机 ji

器 qi

学 xue

习 xi

技 ji

术 shu

#5.繁体字转简体sentence_fan = "我愛機器學習技術"s_jianti = SnowNLP(sentence_fan)print(s_jianti.han)

我爱机器学习技术

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

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。

它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。

自然语言处理是一门融语言学、计算机科学、数学于一体的科学。

因此。

这一领域的研究将涉及自然语言。

即人们日常使用的语言。

所以它与语言学的研究有着密切的联系。

但又有重要的区别。

自然语言处理并不是一般地研究自然语言。

而在于研制能有效地实现自然语言通信的计算机系统。

特别是其中的软件系统。

因而它是计算机科学的一部分。

#7.关键词抽取key_num = 5t_key = t.keywords(key_num)print(t_key)

[‘语言’, ‘自然’, ‘计算机’, ‘领域’, ‘研究’]

#8.摘要抽取(关键句抽取)key_sen = 5t_keysen = t.summary(key_sen)print(t_keysen)

[‘因而它是计算机科学的一部分’, ‘自然语言处理是计算机科学领域与人工智能领域中的一个重要方向’, ‘自然语言处理是一门融语言学、计算机科学、数学于一体的科学’, ‘所以它与语言学的研究有着密切的联系’, ‘这一领域的研究将涉及自然语言’]

#9.计算tf和idfs = SnowNLP([[u'机器学习', u'人工智能'],[u'深度学习', u'自然语言处理'],[u'数据挖掘']])print(s.tf)print(s.idf)

[{‘机器学习’: 1, ‘人工智能’: 1}, {‘深度学习’: 1, ‘自然语言处理’: 1}, {‘数据挖掘’: 1}]

{‘机器学习’: 0.5108256237659907, ‘人工智能’: 0.5108256237659907, ‘深度学习’: 0.5108256237659907, ‘自然语言处理’: 0.5108256237659907, ‘数据挖掘’: 0.5108256237659907}

#10.计算相似度(BM25)artilc1 = ['自然语言处理']print(s.sim(artilc1))

[0, 0.4686473612532025, 0]

支持训练

提供训练的包括分词,词性标注,情感分析。语料在snownlp/seg目录下训练好的文件就存储为seg.marshal了,然后修改snownlp/seg/init.py里的data_path指向刚训练好的文件即可

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')# sentiment.save('sentiment.marshal')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。