码字不易,喜欢请点赞!!!

这篇文章主要分享了使用Python来对文本数据进行情感分析以及绘制词云。
主要步骤包括:
1.文本预处理
2.文本分词
3.去除停用词(这里设置为单个词和一些常见的停用词)
4.词频统计
5.情感分析
6.绘制词云

首先导入所需的程序办和文本数据:

#带入程序包
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
#读取数据
path = r"data.txt"
with open(path) as f:
    data = f.read()

1.使用正则表达式对文本数据进行预处理,这里主要去除数据的一些没用的符号

# 文本预处理
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"')
data = re.sub(pattern, '', data)

2.使用精准模式对文本进行分词

# 文本分词--精确模式分词
seg_list_exact  = jieba.cut(data,cut_all = False)

3.去除停用词,这里主要去除了一些常见的停用词和单个词

object_list = []
# 自定义常见去除词库
remove_words = [u'的', u',',u'和', u'是', u'随着', u'对于', u'对',u'等',u'能',u'都',u'。',u' ',u'、',u'中',u'在',u'了',u'通常',u'如果',u'我们',u'需要'] 
for word in seg_list_exact:
    if word not in remove_words:
        object_list.append(word)
#去除单个词
for i in range(len(object_list)-1,-1,-1):
    if(len(object_list[i])<2):
        object_list.pop(i)

4.词频统计,并输出出现次数最高的100个词

 # 对分词做词频统计
word_counts = collections.Counter(object_list)
# 获取前100最高频的词
word_counts_top100 = word_counts.most_common(100) 
print(word_counts_top100) 

5.情感分析,这里展示一下简单的文本情感分析,一般文本情感分析会统计文本中的积极词和消极词次数,然后最简单的方法就是文本中积极词量化为1,消极词量化为-1,然后给定权重来计算文本的情感,这里展示统计文本中积极词和消极词方法。

#读取积极、消极词库
negPath = r"ntusd-negative.txt"
posPath = r"ntusd-positive.txt"
pos = open(posPath, encoding='utf-8').readlines()
neg = open(negPath, encoding='utf-8').readlines()
#统计积极、消极词
for i in range(len(pos)):
    pos[i] = pos[i].replace('\n','').replace('\ufeff','')
for i in range(len(neg)):
    neg[i] = neg[i].replace('\n','').replace('\ufeff','')
posNum = negNum = 0
for i in range(len(object_list)):
    if(object_list[i] in pos):
        posNum = posNum + 1
    elif(object_list[i] in neg):
        negNum = negNum + 1
print('posNum:',posNum)
print('negNum:',negNum)

6.绘制词云,展示结果,这里直接使用的是默认图片,如果想改变图片的样式,可以通过给定Image参数。

#绘制词云
my_wordcloud = WordCloud(
    background_color='white',  # 设置背景颜色
    # mask=img,  # 背景图片
    max_words=200,  # 设置最大显示的词数
    stopwords=STOPWORDS,  # 设置停用词
    # 设置字体格式,字体格式 .ttf文件需自己网上下载,最好将名字改为英文,中文名路径加载可能会出现问题。
    font_path='simhei.ttf',
    max_font_size=100,  # 设置字体最大值
    random_state=50,  # 设置随机生成状态,即多少种配色方案
    ##提高清晰度
    width=1000,height=600,
    min_font_size=20,
).generate_from_frequencies(word_counts)
# 显示生成的词云图片
plt.imshow(my_wordcloud)
plt.axis('off')
plt.show()

在这里插入图片描述
自定义背景图:
在这里插入图片描述

img = plt.imread(r"C:\Users\vivalavida\Desktop\pp.jpg")
#绘制词云
my_wordcloud = WordCloud(
    background_color='white',  # 设置背景颜色
    mask=img,  # 背景图片
    max_words=200,  # 设置最大显示的词数
    stopwords=STOPWORDS,  # 设置停用词
    # 设置字体格式,字体格式 .ttf文件需自己网上下载,最好将名字改为英文,中文名路径加载可能会出现问题。
    font_path='simhei.ttf',
    max_font_size=100,  # 设置字体最大值
    random_state=50,  # 设置随机生成状态,即多少种配色方案
    ##提高清晰度
    width=1000,height=600,
    min_font_size=20,
).generate_from_frequencies(word_counts)
# 显示生成的词云图片
plt.imshow(my_wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

结果:
在这里插入图片描述
图片保存到本地:

my_wordcloud.to_file(r"wordcloud1.png")

保存到本地之后图片质量热别高:
在这里插入图片描述

这篇文章主要分享了使用Python来对文本数据进行情感分析以及绘制词云。主要步骤包括:1.文本预处理2.文本分词3.去除停用词(这里设置为单个词和一些常见的停用词)4.词频统计5.情感分析6.绘制词云首先导入所需的程序办和文本数据:#带入程序包import pandas as pdimport reimport jiebaimport collectionsfrom w...
情感分析文本分析的一种,它能够从一段文本描述中理解文本的感情色彩,是褒义、贬义还是中性。常见的情感分析的使用场景就是客户对商品或服务的评价、反馈,传统模式下的人工审核,不仅消耗大量人力,而且效率(速度和准确度)也不高。   这里使用Python对电影《哪吒之魔童降世》的评论进行文本分析,这种分析方式还可用于垃圾邮件的过滤、新闻的分类等场景。   分析步骤:   1、对文本数据进行预处理,包括文本缺失值重复值处理、分、去除停用文本向量化。   2、描述性统计分析,统计频、生成词云图。   3、验证性统计分析,通过方差分析进行特征选择。   4、统计建模,根据文本向量进行文本分类。
有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起。 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体。 #复制文本用字符串表示 mytext = With his wife's encouragement, Minister Hacker decides he should focus on accomplishing 1 or 2 significant achievements while in office. He decides the time has come to promote mo
snownlp安装参考:下载安装snownlp jieba安装参考:使用码云下载Github文件 wordcloud强调python版本,snownlp和jieba不强调版本,我装的都是python3.6下的。 数据:和鲸社区数据-京东2k条评论 import pandas as pd data = pd.read_csv('C:/Users/admin/Desktop/新建文件夹/京东评论数据.csv') data.head(2)
文章目录1.何为词云图?2.前期准备2.1.开发环境2.2.需要用到的Python库3.代码解析3.1.导入Python库3.2.以只读模式打开.txt3.3.预处理文本背景图片3.4.设置词云图参数3.5.展示词云图并保存3.6.运行结果及优化4.完整代码4.1.展示4.2.下载 本文采用Python编程,实现对文本文档(中、英文)做词频统计以及词云图展示。 1.何为词云图? 词云图是文本数据的视觉展示,可以快速从大量文本信息中找出关键。一般来说字体越大就代表出现的频率越高。 E.G. 下图是《三国演义》中的高频,部分汇通过筛选不在图中展示。本文主要展示《三国演义中》出现频率较高的人
# 假设你有一个包含文本的 DataFrame,列名为 "text" df = pd.DataFrame({"text": ["this is a text", "another text"]}) 接下来,你可以使用 DataFrame 的 "apply" 方法来处理每一行文本,例如分、去停用等。最后,你可以使用 wordcloud 库中的 `WordCloud` 类来绘制词云图: ```python def process_text(text): # 处理文本的函数,这里仅做示例 return text # 将每一行文本都传入处理函数,得到一个新的列 "processed" df["processed"] = df["text"].apply(process_text) # 将所有文本拼接起来,形成一个大的字符串 all_text = " ".join(df["processed"]) # 生成词云图 wordcloud = WordCloud().generate(all_text) # 绘制图像 plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() 希望这能帮到你!