snownlp学习-微博情感分析

学习链接:
https://github.com/isnowfy/snownlp

from snownlp import SnowNLP

s = SnowNLP(u'这个东西真心很赞')

s.words         # [u'这个', u'东西', u'真心',
                #  u'很', u'赞']

s.tags          # [(u'这个', u'r'), (u'东西', u'n'),
                #  (u'真心', u'd'), (u'很', u'd'),
                #  (u'赞', u'Vg')]

s.sentiments    # 0.9769663402895832 positive的概率

s.pinyin        # [u'zhe', u'ge', u'dong', u'xi',
                #  u'zhen', u'xin', u'hen', u'zan']

s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')

s.han           # u'「繁体字」「繁体中文」的叫法
                # 在台湾亦很常见。'

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

s = SnowNLP(text)

s.keywords(3)	# [u'语言', u'自然', u'计算机']

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

s = SnowNLP([[u'这篇', u'文章'],
             [u'那篇', u'论文'],
             [u'这个']])
s.tf
s.idf
s.sim([u'文章'])# [0.3756070762985226, 0, 0]

训练:
提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件
这样训练好的文件就存储为sentiment.marshal了,之后修改snownlp/sentiment/init.py里的data_path指向刚训练好的文件即可
找到SnowNLP 安装目录,如下:

from snownlp import sentiment
sentiment.train('neg.txt', 'pos.txt')
sentiment.save('sentiment.marshal')

1.neg1.txt

用了两罐资生堂发膜后,再买发现要税。还是用蜂花吧
资生堂非常好,但我还是喜欢兰蔻
资生堂的买回来没用过两次 ​
资生堂的睫毛夹太难用了啊啊啊啊啊啊!我又要重新买一个别的了

2.pos1.txt

轻薄好用,适合补妆
资生堂新透白美肌这一套用完后,早上起来脸滑滑的是没错了
我的天,爱上资生堂的六角眉笔,这也太好用了吧
目前为止最爱的一套,资生堂这个系列真给力
我爱资生堂的洗面奶!给我刷子洗的巨干净(又省了一笔清洁液的钱
无语,这个资生堂的什么鬼绿野芳香惠润柔净洗发露(名字太拗口了!要不是我无所谓反正买的时候随便谁会盲买一个这样的名字!)也太好闻了,真是香喷喷
吹爆资生堂智能 真的太适合我了哈哈哈
为资生堂疯狂打call
我是不是说过资生堂红腰子很鸡肋,我现在给它道歉。资生堂全系列都好用
资生堂这个遮瑕,好用不贵性价比超高!但是有点黑!
新水乳打一下卡,资生堂D系列,外观太好看啦

3.结论
a 用自带的模型预测这是正向,但与实际结果不符,实际是负情感对于资生堂
在这里插入图片描述
b 训练针对这个问题自己的模型,用上面统计的正向和负向情感库
在这里插入图片描述
c 最好记得改默认模型库的调用地址下重新再预测
在这里插入图片描述

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微博情感分析的Python代码可以使用以下步骤进行实现: 1. 导入所需的库和模块: ```python import requests import re import json import jieba import matplotlib.pyplot as plt from wordcloud import WordCloud from snownlp import SnowNLP ``` 2. 获取微博数据: ```python def get_weibo_data(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) if response.status_code == 200: return response.text return None ``` 3. 解析微博评论: ```python def parse_comments(html): pattern = re.compile(r'"text": "(.*?)",', re.S) comments = re.findall(pattern, html) return comments ``` 4. 进行情感分析: ```python def sentiment_analysis(comments): sentiments = [] for comment in comments: s = SnowNLP(comment) sentiments.append(s.sentiments) return sentiments ``` 5. 可视化展示情感分析结果: ```python def visualize_sentiments(sentiments): plt.hist(sentiments, bins=20, color='green', alpha=0.8) plt.xlabel('Sentiment Score') plt.ylabel('Number of Comments') plt.title('Sentiment Analysis of Weibo Comments') plt.show() ``` 6. 统计常用表情并进行词云展示: ```python def generate_wordcloud(comments): words = ' '.join(comments) wordcloud = WordCloud(font_path='simhei.ttf', background_color='white').generate(words) plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() ``` 7. 调用函数执行微博情感分析: ```python url = 'https://api.weibo.com/2/comments/show.json?id=123456789' html = get_weibo_data(url) comments = parse_comments(html) sentiments = sentiment_analysis(comments) visualize_sentiments(sentiments) generate_wordcloud(comments) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loong_XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值