词云

数据来源:爬虫boss详见,https://blog.csdn.net/cynthia_file/article/details/109598995

#获取数据
import pandas as pd
df_b = pd.read_csv(r'beijingDataAnaly.csv')
df_b.info()
df_s = pd.read_csv(r'shanghaiDataAnaly.csv')
df_s.info()
df = df_b.append(df_s)
df = df.drop_duplicates().fillna('')
import re
import jieba
from wordcloud import WordCloud

# 使用本地字体
font_path = 'fonts/SourceHanSerifK-Light.otf'
wc = WordCloud(font_path=font_path, background_color="white", max_words=1000,
               max_font_size=100, random_state=42, width=800, height=600, margin=2)
# 加载停用词
def load_stopwords(file_path):
    with open(file_path, 'r',encoding = 'utf-8') as f:
        stopwords = [line.strip('\n') for line in f.readlines()]
    return stopwords
stopwords = load_stopwords('stopwords.txt')
import imageio
import numpy as np

back_color = np.array(imageio.imread('wa.jpg'))
def random_color_func(word=None, font_size=None, position=None,  orientation=None, font_path=None, random_state=None):
        h  = np.random.randint(90,360)
        s = int(100.0 * 255.0 / 255.0)
        l = int(100.0 * float(np.random.randint(60, 120)) / 255.0)
        return "hsl({}, {}%, {}%)".format(h, s, l)
    
wc_s = WordCloud(font_path=font_path,
    background_color='white',#背景色为白色
    mask=back_color,#用上面传入的图片绘制词云
    random_state=20,#设置有多少生成状态,即多少种词的颜色
    color_func=random_color_func,#上面的颜色控制函数
    )
 #统计词频
word_dict = {}
for title in df['details']:
    title = re.sub(r"[^\u4e00-\u9fff]", "", title)  # 去除中文字符
    seg_list = list(jieba.cut(title, cut_all=False))  # 分词
    for word in seg_list:
        # 如果分词后的词语只有一个词语,或者在停用词表中,则跳过
        if len(word) < 2 or word in stopwords:
            continue
        if word not in word_dict:
            word_dict[word] = 0
        word_dict[word] += 1
wc_s.generate_from_frequencies(word_dict)
#画图
from matplotlib import pyplot as plt
%matplotlib inline
plt.figure(figsize=(8, 6))
plt.imshow(wc_s)#展示图片
plt.axis('off')#取消坐标轴
plt.show()

原图:
在这里插入图片描述

词云:
在这里插入图片描述
使用的文件:
字体及停用词链接:https://pan.baidu.com/s/1OnCFJVqfASfwsu49S0Oq2g
提取码:3min

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值