import pandas as pd
df = pd.read_csv('小红书评论.csv') # 读取小红书评论数据
text = ' '.join(df['内容'].astype(str)).strip() # 将内容列所有数据合成字符串
print(text)
使用jieba库,对文本数据进行分词,并统计出现频数
import jieba
from collections import Counter
import pandas as pd
def count_words(text):
# 使用jieba进行分词
words = jieba.cut(text)
# 使用Counter进行词频统计
word_counts = Counter(words)
return word_counts #返回的是一个字典
def main():
# 读取文本文件
df = pd.read_csv('小红书评论.csv')
text = ' '.join(df['内容'].astype(str))
# 对文本进行词频统计
word_counts = count_words(text)
# 打印出现次数最多的前N个词语及其出现次数
top_n = 100 # 设置输出前N个词语
print("出现次数最多的{}个词语:".format(top_n))
for word, count in word_counts.most_common(top_n):
print("{}: {}".format(word, count))
if __name__ == "__main__":
main()
根据出现的词汇和频数,做词云图
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from os import path
d = r"C:\Users\86187\PycharmProjects\js逆向学习"
# 定义词频字典
word_freq = {
'就业': 20,
'港澳': 10,
'大学生': 15,
'政府': 14,
'考研': 78,
'考公': 56,
'国企': 90,
'深圳':190,
'人才引进':98,
'工资高':35,
'内地优惠':78,
'税收减免':55,
'港澳台政府':19,
'高校政策':90,
'薪资过万':70,
'国家':76,
'政府万岁':43,
'继续努力':89,
'找不到工作':88,
'中薪阶层':77,
'大学生就业难':22,
'985':23,
'待遇':54,
'深造':54,
}
background_Image = np.array(Image.open(path.join(d, "love.png")))
# 根据词频生成词云图
wordcloud = WordCloud(
background_color='white', # 设置背景颜色
mask=background_Image, # 设置背景图片
font_path='SimHei.ttf', # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字
max_words=200, # 设置最大现实的字数
max_font_size=150, # 设置字体最大值
random_state=3, # 设置有多少种随机生成状态,即有多少种配色方案
scale=5 # 设置生成的词云图的大小
)
wordcloud.generate_from_frequencies(word_freq)
# 显示词云图
image_colors = ImageColorGenerator(background_Image)
plt.axis("off") #不要坐标轴
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation='bilinear')
plt.show() #展示词云图
wordcloud.to_file(path.join(d, "generate_Love_star.png"))#下载词云图
结果展现: