最近自学Python的中文处理,其中用到了wordcloud库生成一篇文章的词云,能更直观的表现出文章的主题,是一个不错的工具。虽然现在网上有很多词云在线生成的应用,不过为了更个性化一点,还是写一个自己的词云生成工具吧。
import jieba
import wordcloud
from imageio import imread
from collections import Counter
fire = open('新时代中国特色社会主义.txt', 'r', encoding='UTF-8-sig')
text = fire.read()
fire.close()
读取文本保存在text变量中,第一步进行词频统计。
def get_words(text): # 词频统计
seg_list = jieba.cut(text)
c = Counter()
# Counter 作为字典(dict)的一个子类用来进行hashtable计数,
# 将元素进行数量统计、计数后返回一个字典,键值为元素:值为元素个数
for i in seg_list:
if len(i) > 1 and i != '\r\n':
c[i] += 1
ls = []
# 选出词频前100的词
for (i, j) in c.most_common(120):
ls.append(i)
return ls
统计出来的词可能有些并不是我们想要的,要经过多次筛选排除:
word_ls = get_words(text)
# 筛选排除
stop_