中文词频统计及词云制作

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

  希望老师讲一下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-张振勋  阅读(883)  评论(0)    收藏  举报