前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文本挖掘(三)python 基于snownlp做情感分析

文本挖掘(三)python 基于snownlp做情感分析

作者头像
forxtz
发布2021-03-12 13:06:25
2.6K0
发布2021-03-12 13:06:25
举报
文章被收录于专栏:源懒由码

简介:文本挖掘中,情感分析是经常需要使用到,而进行主题模型分析之前,对数据集进行文本分类再进行分析具有必要性,因为分类以后,每一类的主题才会更明显。而snownlp是一个python写的类库,可以方便的处理中文文本内容,主要看上了他的情感分类功能(二分类),分类是基于朴素贝叶斯的文本分类方法,当然也可以选择基于其他方法自己建立一个分词模型。

  目的:学会snownlp基本操作,并使用其做情感分析。

  参考链接:

官方github

1、基本操作

代码语言:javascript
复制
from snownlp import SnowNLP

s = SnowNLP(u'这个东西真心很赞')   # 中文分词([Character-Based Generative Model](
print('分词结果:',s.words)         
print('词性标注:',s.tags)    
# 情感分析(本分类(Naive Bayes)(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
print('(输出为positive概率):',s.sentiments)  
print('转换成拼音(Trie树实现的最大匹配):',s.pinyin) 

s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
print('繁体转简体(Trie树实现的最大匹配):',s.han)

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

s = SnowNLP(text)
print('提取文本关键词([TextRank]:',s.keywords(3))
print('提取文本摘要([TextRank]:',s.summary(3))
print('Tokenization(分割成句子):',s.sentences)

print('')
print('*'*40)
print('')
s = SnowNLP([[u'这篇', u'文章'],
             [u'那篇', u'论文'],
             [u'这个']])
print('tf:',s.tf)
print('idf:',s.idf)
print('文本相似([BM25]:',s.sim([u'文章']))

输出:

代码语言:javascript
复制
分词结果: ['这个', '东西', '真心', '很', '赞']
词性标注: <zip object at 0x0000021C554A49C8>
(输出为positive概率): 0.9769551298267365
转换成拼音(Trie树实现的最大匹配): ['zhe', 'ge', 'dong', 'xi', 'zhen', 'xin', 'hen', 'zan']
繁体转简体(Trie树实现的最大匹配): 「繁体字」「繁体中文」的叫法在台湾亦很常见。

****************************************

提取文本关键词([TextRank]: ['语言', '自然', '计算机']
提取文本摘要([TextRank]: ['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学']
Tokenization(分割成句子): ['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '因此', '这一领域的研究将涉及自然语言', '即人们日常使用的语言', '所以它与语言学的研究有着密切的联系', '但又有重要的区别', '自然语言处理并不是一般地研究自然语言', '而在于研制能有效地实现自然语言通信的计算机系统', '特别是其中的软件系统', '因而它是计算机科学的一部分']

****************************************

tf: [{'这篇': 1, '文章': 1}, {'那篇': 1, '论文': 1}, {'这个': 1}]
idf: {'这篇': 0.5108256237659907, '文章': 0.5108256237659907, '那篇': 0.5108256237659907, '论文': 0.5108256237659907, '这个': 0.5108256237659907}
文本相似([BM25]: [0.4686473612532025, 0, 0]

2、自定义模型训练

代码语言:javascript
复制
from snownlp import seg   # 分词训练
seg.train('data.txt')
seg.save('seg.marshal')
seg.load('seg.marshal')
from snownlp import tag   # 词性标注训练
tag.train('199801.txt')
tag.save('tag.marshal')
tag.load('tag.marshal')
from snownlp import sentiment  # 文本分类训练,分开两个文件
sentiment.train('neg.txt', 'pos.txt')
sentiment.save('sentiment.marshal')
sentiment.load('sentiment.marshal')

3、使用jieba作为snownlp分词方法

python 舆情分析 nlp主题分析 (2)-结合snownlp与jieba库,提高分词与情感判断 待续

小结

1、同样如果需要对文本文类较为准备,需要准备较大量的数据进行训练。所以,需要物色好的语料库。

2、后续主要运行他的sentiment值进行文本分类做后续分析。

3、下一步找找语料库,自建立文本分类模型。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档