编程学习

python统计词频

2018-04-21  本文已影响163人  linghugoogle

一、使用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()

2、参考

Python词云 wordcloud 十五分钟入门与进阶

上一篇 下一篇

猜你喜欢

热点阅读