0


三国演义 制作词云 2------python

# 导入库
**from **wordcloud **import **WordCloud
**from **imageio **import **imread
**import **jieba
# from collections import Counter

# 读入txt文本数据
text = open(r'C:\Users\15423\Desktop\词云制作\threekingdoms.txt', "r", encoding='utf-8').read()
# 结巴中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成正确的中文词云
cut_text = jieba.lcut(text)

#去掉不重要的词
removes =[',','。','"',':','曰','将军', '二人','却说','\n', '次日','左右', '主公', '不能', '今日', '不可','商议','于是','军士']
cut_text=[word **for **word **in **cut_text **if **word **not in **removes]

#去掉重复的词语,遍历字典挨个去掉
dupDict={'曹操' : ['孟德','丞相'],
'玄德' : ['刘备','皇叔','刘皇叔','玄德曰'],
'云长' : ['关羽','关云长','关公'],
'孔明' : ['诸葛亮','诸葛','孔明曰'],
'张飞' : ['翼徳'],
'赵云' : ['子龙','赵子龙'],
'周瑜' : ['公瑾','都督']}

**for **replaceWord,dupWords **in **dupDict.items():
**for **word **in **dupWords:
ct=cut_text.count(word)
idx=0
**while **ct>0:
i=cut_text.index(word,idx,-1)
cut_text[i]= replaceWord
idx=i+1
ct-=1

# 词频统计--字典
word_count = {}
**for **word **in **cut_text:
**if **len(word)>1:
word_count[word] = word_count.get(word, 0) + 1
print(sorted(word_count.items(), key = **lambda **kv:kv[1],reverse=True)[:5])
# 人名的词频统计--counter
# word_count = Counter([word for word in cut_text if len(word)>1])
# print(word_count.most_common(5))

# 必须给个符号分隔开分词结果来形成字符串,否则不能绘制词云
result = " ".join(cut_text)
# print(result)

# 4.读入词云背景图片,设置成mask参数
mask = imread(r'C:\Users\15423\Desktop\词云制作\中国地图.png')

# 5.生成词云图
wc = WordCloud(
# 设置词云背景图

  •    *mask=mask,
       *# 设置字体,不指定就会出现乱码*
    
  •   *font_path=**'C:/Users/15423/Desktop/词云制作/msyh.ttc'**,
       *# 设置背景色*
    
  •    *background_color=**'white'**,
       *# 设置背景宽*
    
  •    *width=500,
       *# 设置背景高*
    
  •    *height=350,
       *# 最大字体*
    
  •    *max_font_size=50,
       *# 最小字体*
    
  •    *min_font_size=10,
      )
    

# 产生词云
wc.generate(result)
#wc.to_image()
# 保存图片
wc.to_file(r"C:/Users/15423/Desktop/词云制作/三国演义.png")

标签: python

本文转载自: https://blog.csdn.net/qq_45072087/article/details/120158820
版权归原作者 梅子在林中 所有, 如有侵权,请联系我们删除。

“三国演义 制作词云 2------python”的评论:

还没有评论