import pandas as pd
import jieba
import jieba.analyse
filename = "E:\\數據處理\\隱患類型.txt"
#載入數據
df_data = pd.read_csv(filename, header=0, encoding='gbk', dtype=str)#DataFrame
#去重並轉換為list
ls_data = df_data.drop_duplicates().values.tolist()#df_data.values為array類型
ls_data = ";".join([str(j) for i in ls_data for j in i])#將列表元素轉換為一個字符串,供lcut函數使用
print(ls_data)
seg_list = jieba.lcut(ls_data, cut_all=False, HMM=True) # 精確切割模式(默認為精確模式)
seg = '/'.join(seg_list)#str類型
#關鍵詞抽取
tags = jieba.analyse.extract_tags(seg, topK=300, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'),)
import pyecharts.options as opts
from pyecharts.charts import WordCloud
def wordcloud():
g = WordCloud()
g.add(series_name="熱點分析", data_pair=tags, word_size_range=[6, 66])
g.set_global_opts(
title_opts=opts.TitleOpts(
title="高頻詞條", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
#.render("basic_wordcloud.html")
return g
# 使用snapshot-selenium渲染成圖片
from snapshot_selenium import snapshot
from pyecharts.render import make_snapshot
make_snapshot(snapshot, wordcloud().render(), "E:\\數據處理\\詞雲圖2.png")# 保存為圖片