08

WordCount程序任务:

程序

WordCount

输入

一个包含大量单词的文本文件

输出

文件中每个单词及其出现次数(频数),

并按照单词字母顺序排序,

每个单词和其频数占一行,单词和频数之间有间隔

1.用你最熟悉的编程环境,编写非分布式的词频统计程序。

  • 读文件
  • 分词(text.split列表)
  • 按单词统计(字典,key单词,value次数)
  • 排序(list.sort列表)
  • 输出
import re
import collections
import numpy as np
import jieba
import wordcloud
from PIL import Image
import matplotlib.pyplot as plt

#读文件
file_data=open('a.txt',encoding='utf-8')
string_data=file_data.read()
file_data.close()

#文本预处理
pattern=re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"')
string_data=re.sub(pattern, '', string_data)

#文本分词
seg_list_exact=jieba.cut(string_data, cut_all=False)
object_list=[]
remove_words=[u'的', u',',u'和',u'是',u'随着',u'对于',u'对',u'等',u'能',u'都',u'媒体',u'如果',u'目前',u'需要',u'没有',u'输',u'赛季']
for word in seg_list_exact:
if word not in remove_words:
object_list.append(word)

#词频统计
word_counts=collections.Counter(object_list)
word_counts_top10=word_counts.most_common(10)
print(word_counts_top10)

#词频展示
mask=np.array(Image.open('F:\pyc\dashuju\jinqiu2.jpg'))
wordc=wordcloud.WordCloud(font_path='C:/Windows/Fonts/simhei.ttf',mask=mask,max_words=100,max_font_size=100)

wordc.generate_from_frequencies(word_counts)
image_colors=wordcloud.ImageColorGenerator(mask)
wordc.recolor(color_func=image_colors)
plt.imshow(wordc)
plt.axis('off')
plt.show()

 

posted @ 2021-11-27 15:22  HOSANTIN  阅读(181)  评论(0编辑  收藏  举报