文章感情词汇提取再进行词云分析

在没有感情词库时对文本进行词云分析

#库导入
import pandas as pd
import re
import jieba
import collections
from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS
import matplotlib.pyplot as plt
from PIL import Image
from textblob import TextBlob 
#上传数据文件
from google.colab import files
uploaded=files.upload()
f = open('microwave.txt', 'r')
data=f.read()
#将文本按词分裂
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"')
data = re.sub(pattern, '', data)
# 文本分词--精确模式分词
seg_list_exact  = jieba.cut(data,cut_all = False)
pos_list = []#积极词性列表
neg_list=[]#消极词性列表

#对每个词进行情感分析,情感值大于某值时装入积极词性列表,小于某值时装入消极词汇列表
for word in seg_list_exact:
  blob=TextBlob(word)
  if blob.sentiment.polarity > 0.6:
    pos_list.append(word)
  if blob.sentiment.polarity < -0.6:
    neg_list.append(word)

至此,就建立了一个自己的消极/积极词汇库,此时的词汇库还是有重复词汇的,可以使用列表去重(lst2 = list(set(lst1))(由于后面用到对生成的原词库作词云图,本文没有进行去重)

https://blog.csdn.net/Jerry_1126/article/details/79843751

然后即可以利用词汇库写相关代码如利用循环等对需要处理的文本进行积极/消极词频统计

下面是直接对消极词汇库作词云图

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
pos_word_counts = collections.Counter(pos_list)
pos_word_counts_top100 = pos_word_counts.most_common(100)
neg_word_counts = collections.Counter(neg_list)
neg_word_counts_top100 = neg_word_counts.most_common(100)

pos_word_count1=dict(pos_word_counts_top100)
neg_word_count1=dict(neg_word_counts_top100)
wc= WordCloud(
        background_color="white", #设置背景为白色,默认为黑色
        width=1500,              #设置图片的宽度
        height=960,              #设置图片的高度
        margin=10               #设置图片的边缘
        ).generate_from_frequencies(neg_word_count1)
# 显示词云
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
wc.to_file('my_test2.png')
#files.download('./my_test2.png')#colab上下载文件

在这里插入图片描述
关于使用词库进行词频可以阅读

https://blog.csdn.net/Asher117/article/details/88185985

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值