中文词频统计及词云制作

  • 中软国际华南区技术总监曾老师还会来上两次课,同学们希望曾老师讲些什么内容?(认真想一想回答)

  希望老师讲一下python技术在哪些地方、哪些项目部分有所应用,可以的话展示一下部分的实际项目。

  • 中文分词
    • 下载一中文长篇小说,并转换成UTF-8编码。
    • 使用jieba库,进行中文词频统计,输出TOP20的词及出现次数。
    • **排除一些无意义词、合并同一词。
    • **使用wordcloud库绘制一个词云。
    • (**两项选做,此次作业要求不能雷同。)
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

f0 = open('全职法师.txt','r',encoding='utf-8')
qz = f0.read()
f0.close()

words = list(jieba.cut(qz))

ul={'那个', '', '整个', '','','', '我们','','','','', '',\
    '怎么', '能够','','他们', '你们','知道', '什么','', '一个','','',\
    '','没有','已经','就是','可以','','','这个','','','', '说道',\
    '','', '','','','','','','','','','', '','',\
    '','','','', '','','','','','','','','','',''\
    ,'','','','',' ','\u3000','','\n'}
dic={}

keys = set(words)-ul
for i in keys:
    dic[i]=words.count(i)

c = list(dic.items())
c.sort(key=lambda x:x[1],reverse=True)

f1 = open('词云.txt','w')
for i in range(20):
    print(c[i])
    for words_count in range(c[i][1]):
        f1.write(c[i][0]+' ')
f1.close()

f3 = open('词云.txt','r')
cy_file = f3.read()
f3.close()
cy = WordCloud().generate(cy_file)
plt.imshow(cy)
plt.axis("off")
plt.show()

 

 

 

posted @ 2017-09-25 16:31  12-张振勋  阅读(813)  评论(0编辑  收藏  举报