python结巴分词,词云制作

需求
现有爬虫获取的sql文件,要求根据指定药品在文件中的出现次数制作词云,分析出未来的热门药物
基本思路
从文件中读取出所有药物的名称,将其作为字典的key值存入字典ciyun,按行读入,初始所有value为0,这里需要去除其中的每行的换行符
通过结巴分词库进行分词,这里需要引入药物的名称文件作为分词关键字,通过循环按行进行分词,判断该词是否在字典ciyun的key中,如果存在,value+1,通过wordcloud库制作词云即可

from wordcloud import WordCloud
import jieba
import wordcloud
import numpy as np
from os import path
import matplotlib.pyplot as plt
import PIL.Image as Image
ciyun = {}#词云
with open("medicine.txt", encoding="utf-8") as file:
    for line in file.readlines():
        li=list(line)
        li[-1]=''
        line=''.join(li)
        ciyun[line]=0
with open("new_data1.txt", "r", encoding="utf-8") as file:
    for line in file.readlines():  # 读取每行
        jieba.load_userdict("medicine.txt")  # 加载自定义词典
        poss = jieba.cut(line)  # 分词并返回该词词性
        for w in poss:
            if(w!="\n"):
                if w in ciyun.keys():
                    w=w.replace('\n', '').replace('\r', '')
                    w=w.strip()
                    ciyun[w]+=1
Mask = np.array(Image.open(path.join('backgroundimage.png')))
w = wordcloud.WordCloud(    font_path = "msyh.ttc", mask = Mask, \
       width = 1000, height = 700, background_color = "white", \
       ).fit_words(ciyun)
plt.imshow(w,interpolation='bilinear')
plt.axis('off')
w.to_file(r'new.jpg')
plt.show()

效果如下:
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值