专栏首页AI小白入门初学者|今天掌握SnowNLP好不好

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

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

简介

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

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

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

实战

1.安装

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

2.分词

s_token = s.words
print(s_token)

['我', '爱', '自然', '语言', '处理', '技术', '!']

3.词性标注

s_tags = s.tags
for token_tag in s_tags:
    print(token_tag)

('我', 'r')
('爱', 'v')
('自然', 'n')
('语言', 'n')
('处理', 'vn')
('技术', 'n')
('!', 'w')

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

s_senti = s.sentiments
print(s_senti)

0.902242143497134

5.中文拼音

s_pinyin = s.pinyin
for 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 = 3
t_key = t.keywords(key_num)
print(t_key)

['语言', '自然', '计算机']

9.摘要抽取

key_sen = 3
t_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

The End

文章分享自微信公众号:
AI小白入门

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 实用小技巧,Python一秒将汉字转为拼音

    有时在处理文件时候,我们需要将中文汉字转换为拼音或者拼音首字母的需求;还有的时候,我们需要对汉字进行按拼音字母排序(汉字的默认排序是编码序而非拼音序)。针对类似...

    Crossin先生
  • 如何用Python做情感分析?

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地。本文帮助你一步步用Python做出自己的情感分析结果,难道你不想试试看?

    王树义
  • 实用小技巧,Python一秒将全部中文姓名转为拼音!

    开门见山,Python中文字转拼音可以使用xpinyin,直接使用pip安装即可?

    刘早起
  • 王者荣耀白晶晶皮肤1小时销量突破千万!分析网友评论我发现了原因

    1、这两天在朋友圈、短视频,微博这些社交平台经常刷到这些内容(王者荣耀芈月白晶晶的皮肤)。

    Python研究者
  • Python 词云分析周杰伦新歌《说好不哭》

    周杰伦难得出新歌 ,最近终于推出了单曲《说好不哭》,然后直接把QQ音乐服务器干崩了,天王的实力可见一斑,QQ音乐还把这个当作 今天过年

    苏生不惑
  • 利用SnowNLP快速进行评论数据情感分析

    上次课给大家介绍了文本关键词提取的常用方法,本节课老shi将给大家讲解自然语言处理的另一个重要应用——文本情感分析。众所周知,很多场景下,我们都需要用到情感分析...

    用户7569543
  • python 舆情分析 nlp主题分析 (3) --gensim库的简单使用

    python 舆情分析 nlp主题分析 (1) 待续: https://www.cnblogs.com/cycxtz/p/13663895.html

    forxtz
  • SCF与自然语言处理为你的网站赋能

    自然语言的内容有很多,今天本文所介绍的自然语言处理部分是“文本摘要”和“关键词提取”,很多朋友都应该有自己的博客,在做博客的时候,经常会发一些文章,这些文章发出...

    None-xiaomi
  • Serverless实践系列(一):如何通过SCF与自然语言处理为网站赋能

    自然语言的内容有很多,今天本文所介绍的自然语言处理部分是“文本摘要”和“关键词提取”。在做博客的时候,经常会发一些文章,这些文章发出去了,有的很容易被搜索引擎检...

    腾讯云serverless团队
  • Python实现中英文分词

    首先给出昨天文章里最后的小思考题的答案,原文链接为: Python从序列中选择k个不重复元素 既然选择的是不重复的元素,那么试图在[1,100]这样的区间里选...

    Python小屋屋主
  • 干货 | 陪伴我学习NLP、知识图谱的那些资源(教程+书籍+网站+工具+论文...可以说很全面了)

    【人工智能头条导读】作者一年前整理了这份关于 NLP 与知识图谱的参考资源,涵盖内容与形式也是非常丰富,接下来人工智能头条还会继续努力,分享更多更好的新资源给大...

    用户1737318
  • python可视化文本分析(2)—snownlp+jieba分析QQ群成员发言情况

    第二个情感分析写出来,主要通过python实现qq群消息分析,分析群成员发言总次数,群成员情绪对比,单个群成员的发言词云状况以及单个同学的发言情感走势。 用到一...

    bigsai
  • 使用snownlp进行评论情感分析

    jeremyxu
  • serverless在标签系统的应用

    大部分业务系统,都有丰富的数据,比如商品,用户信息,物流信息等等。这里以电商为例,一个电商系统都有品类丰富的商品,用户数据,,如何对这些商品归门别类,如何去发掘...

    worker
  • python 中文情感分析 Snownlp库的使用

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于...

    叶庭云
  • python︱六款中文分词模块尝试:jieba、THULAC、SnowNLP、pynlpir、CoreNLP、pyLTP

    THULAC 四款python中中文分词的尝试。尝试的有:jieba、SnowNLP(MIT)、pynlpir(大数据搜索挖掘实验室(北京市海量语言信息处理与云...

    悟乙己
  • Python 爬完评论只会做词云?情感分析了解一下

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于...

    朱小五
  • Python有趣|中文文本情感分析

    前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下:

    罗罗攀
  • 如何转行成为初级测试?

    今天来聊一聊如何成为一枚初级软件测试工程师?之前在贴吧和知乎经常收到小伙伴私信问如何转行到互联网行业,以及谈到自己半路转行没什么经验,也不是学的计算机相关专业,...

    测试小牛

扫码关注云+社区

领取腾讯云代金券