一、使用re库进行识别
1、代码
import re,collections
def get_words(file):
with open (file) as f:
words_box=[]
for line in f:
if re.match(r'[a-zA-Z0-9]*',line):#避免中文影响
words_box.extend(line.strip().split())
return collections.Counter(words_box)
print(get_nums('emma.txt')+get_nums('伊索寓言.txt'))
2、参考
python--10行代码搞定词频统计
python:统计历年英语四六级试卷单词词频
二、使用Wordcloud点云库
1、代码
#Wordcloud默认不支持中文
# _*_ coding:utf-8 _*_
from wordcloud import WordCloud
import matplotlib.pyplot as plt
f = open('txt/AliceEN.txt',encoding='UTF-8').read()
wordcloud = WordCloud(background_color="white",width=1000, height=860, margin=2).generate(f)
wordcloud.to_file('test.png')
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
#Wordcloud自定义字体以支持中文,同时引入jieba中文分词
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS
import jieba
# 读入背景图片
backgroud_Image = plt.imread("love.jpg")
# 读取要生成词云的文件
text_from_file_with_apath = open("teng.txt",encoding='UTF-8').read()
# 通过jieba分词进行分词并通过空格分隔
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all=True)
wl_space_split = " ".join(wordlist_after_jieba)
my_wordcloud = WordCloud(
background_color='white', # 设置背景颜色
mask=backgroud_Image, # 设置背景图片
max_words=3000, # 设置最大现实的字数
stopwords=STOPWORDS, # 设置停用词
font_path='simfang.ttf',# 设置字体格式,如不设置显示不了中文
max_font_size=40, # 设置字体最大值
random_state=300, # 设置有多少种随机生成状态,即有多少种配色方案
scale=5,
width=16000,
height=8000
).generate(wl_space_split)
# 根据图片生成词云颜色
image_colors = ImageColorGenerator(backgroud_Image)
my_wordcloud.recolor(color_func=image_colors)
# 以下代码显示图片
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
网友评论