初学者|今天掌握SnowNLP好不好

2019 年 5 月 7 日 人工智能前沿讲习班

本文简绍了SnowNLP的使用方法,这是一个处理中文文本内容的python类库,其主要功能包括分词、词性标注、情感分析、汉字转拼音、繁体转简体、关键词提取以及文本摘要等等。


简介


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

SnowNLP主要功能包括分词、词性标注、情感分析、汉字转拼音、繁体转简体、关键词提取以及文本摘要等等。

Github地址:https://github.com/isnowfy/snownlp


实战


1.安装

# 安装:pip install snownlpfrom snownlp import SnowNLPsentence = '我爱自然语言处理技术!'s = SnowNLP(sentence)

2.分词

s_token = s.wordsprint(s_token)
['我', '爱', '自然', '语言', '处理', '技术', '!']

3.词性标注

s_tags = s.tagsfor token_tag in s_tags:print(token_tag)('我', 'r')('爱', 'v')('自然', 'n')('语言', 'n')('处理', 'vn')('技术', 'n')('!', 'w')

4.情感分析(positive的概率)

s_senti = s.sentimentsprint(s_senti)
0.902242143497134

5.中文拼音

s_pinyin = s.pinyinfor i in range(len(sentence)):print(sentence[i], s_pinyin[i])
我 wo爱 ai自 Zi然 ran语 yu言 yan处 chu理 li技 ji术 shu! !

6.繁体转简体

sentence_fan = "我愛自然語言處理技術!"s_jianti = SnowNLP(sentence_fan)print(s_jianti.han)
我爱自然语言处理技术!

7.分割成句子(Tokenization)

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

8.关键词抽取

key_num = 3t_key = t.keywords(key_num)print(t_key)
['语言', '自然', '计算机']

9.摘要抽取

key_sen = 3t_keysen = t.summary(key_sen)print(t_keysen)
['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学']

10.计算tf和idf

s = 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}

11.计算相似度(BM25)

artilc1 = ['文章']print(s.sim(artilc1))
[0.4686473612532025, 0, 0]

12.支持训练

# 提供训练的包括分词,词性标注,情感分析。语料在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')

代码已上传:

https://github.com/yuquanle/StudyForNLP/blob/master/NLPtools/SnowNlpDemo.ipynb


@AI小白入门

版权声明

本文版权归《AI小白入门》,转载请自行联系。



历史文章推荐:

加州伯克利大学计算机系是如何培养计算机人才的?

CVPR2019 | 最新高效卷积方式HetConv

合集下载 | 2018年图灵奖得主“深度学习三巨头”主要贡献和代表性论文

火爆GitHub的《机器学习100天》,有人把它翻译成了中文版!

如何学会看arxiv.org才能不错过自己研究领域的最新论文?

机器学习中的最优化算法总结

深度学习500问!一份火爆GitHub的面试手册

深度学习最常见的 12 个卷积模型汇总,请务必掌握!

CVPR2019 | 专门为卷积神经网络设计的训练方法:RePr

深度神经网络模型训练中的最新tricks总结【原理与代码汇总】

基于深度学习的艺术风格化研究【附PDF】

最新国内大学毕业论文LaTex模板集合(持续更新中)


你正在看吗?👇

登录查看更多
1

相关内容

词性(part-of-speech)是词汇基本的语法属性,通常也称为词类。词性标注就是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程,是中文信息处理面临的重要基础性问题。在语料库语言学中,词性标注(POS标注或PoS标注或POST),也称为语法标注,是将文本(语料库)中的单词标注为与特定词性相对应的过程,[1] 基于其定义和上下文。
斯坦福大学经典《自然语言处理cs224n》2020课件合集
专知会员服务
94+阅读 · 2020年5月25日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
228+阅读 · 2020年5月21日
【哈佛《CS50 Python人工智能入门》课程 (2020)】
专知会员服务
109+阅读 · 2020年4月12日
《深度学习》圣经花书的数学推导、原理与Python代码实现
一文掌握 HanLP 用法
人工智能头条
24+阅读 · 2019年5月9日
NLP 学习秘笈,从入门到进阶 | 书单
人工智能头条
7+阅读 · 2017年12月25日
书单 | NLP秘笈,从入门到进阶
机器学习研究会
3+阅读 · 2017年12月20日
【NLP】十分钟快览自然语言处理学习总结
专知
17+阅读 · 2017年11月21日
Python NLP入门教程
Python开发者
8+阅读 · 2017年11月19日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Python 自然语言处理(NLP)工具库汇总
数据挖掘入门与实战
7+阅读 · 2017年9月25日
Visualizing and Measuring the Geometry of BERT
Arxiv
7+阅读 · 2019年10月28日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Arxiv
21+阅读 · 2018年8月30日
Arxiv
15+阅读 · 2018年6月23日
Arxiv
5+阅读 · 2018年1月30日
Arxiv
5+阅读 · 2017年7月23日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关资讯
一文掌握 HanLP 用法
人工智能头条
24+阅读 · 2019年5月9日
NLP 学习秘笈,从入门到进阶 | 书单
人工智能头条
7+阅读 · 2017年12月25日
书单 | NLP秘笈,从入门到进阶
机器学习研究会
3+阅读 · 2017年12月20日
【NLP】十分钟快览自然语言处理学习总结
专知
17+阅读 · 2017年11月21日
Python NLP入门教程
Python开发者
8+阅读 · 2017年11月19日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Python 自然语言处理(NLP)工具库汇总
数据挖掘入门与实战
7+阅读 · 2017年9月25日
相关论文
Visualizing and Measuring the Geometry of BERT
Arxiv
7+阅读 · 2019年10月28日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Arxiv
21+阅读 · 2018年8月30日
Arxiv
15+阅读 · 2018年6月23日
Arxiv
5+阅读 · 2018年1月30日
Arxiv
5+阅读 · 2017年7月23日
Arxiv
5+阅读 · 2015年9月14日
Top
微信扫码咨询专知VIP会员