3、python关键字提取和词云美化

第一、理论准备

1 读取图片背景
   bimg = imread(imgFilePath)
2 获取图片颜色
bimgColors=ImageColorGenerator(bimg)
3 重制词云的颜色
wordcloud.recolor(color_func=bimgColors)
 

第二、案例代码实践

# 读取文件的内容
import codecs;
content=[]
f=codecs.open("D:\\database\\python\\2.5\\红楼梦.txt",'r','utf-8')
content=f.read()
f.close()
#分词
import jieba;
import pandas;
segments=[]
jieba.load_userdict(
        'D:\\database\\python\\2.5\\红楼梦词库.txt')
segs =jieba.cut(content)
for seg in segs:
    if len(seg) >1 :
        segments.append(seg);
segmentDF=pandas.DataFrame({'segment':segments})
# 移除停用词
stopwords= pandas.read_csv(
        'D:\\database\\python\\2.5\\StopwordsCN.txt',
        encoding='utf-8',
        index_col=False,
        quoting=3,
        sep="\t")
segmentDF=segmentDF[
         ~segmentDF.segment.isin(stopwords.stopword)]
wystopword=pandas.Series([
        '之', '其', '或', '亦', '方', '于', '即', '皆', '因', '仍', '故', 
		  '尚', '呢', '了', '的', '着', '一', '不', '乃', '呀', '吗', '咧', 
		  '啊', '把', '让', '向', '往', '是', '在', '越', '再', '更', '比', 
		  '很', '偏', '别', '好', '可', '便', '就', '但', '儿', 
'来', '去', '道', '笑', '说',
		  #空格
		  ' ', ''])
segmentDF=segmentDF[
         ~segmentDF.segment.isin(wystopword)]
# 词频统计
import numpy;
segstat=segmentDF.groupby(
        by="segment")["segment"].agg({
                "计数":numpy.size
                }).reset_index().sort_values(
                "计数",ascending=False
                )
segstat.head(100);
# 绘制词云
from wordcloud import WordCloud
import matplotlib.pyplot as plt
wordcloud = WordCloud(
        font_path='D:\\database\\python\\2.5\\simhei.ttf',
        background_color="black")

words = segstat.set_index('segment').to_dict()

wordcloud.fit_words(words['计数'])

plt.imshow(wordcloud)

plt.show(wordcloud)
plt.close();
# 词云美化
from scipy.misc import imread
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt

bimg=imread("D:\\database\\python\\2.5\\贾宝玉.png")
wordcloud = WordCloud(
        mask=bimg,
        font_path='D:\\database\\python\\2.5\\simhei.ttf',
        background_color="white")
wordcloud=wordcloud.fit_words(words['计数'])
bimgColor=ImageColorGenerator(bimg)
plt.axis("off") # 不显示坐标标题
plt.imshow(wordcloud.recolor(color_func=bimgColor))
plt.show()

# 词云美化2
from scipy.misc import imread
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt

bimg=imread("D:\\database\\python\\2.5\\贾宝玉2.png")
wordcloud = WordCloud(
        mask=bimg,
        font_path='D:\\database\\python\\2.5\\simhei.ttf',
        background_color="white")
wordcloud=wordcloud.fit_words(words['计数'])
plt.figure(
        num=None,
        figsize=(8,6),dpi=80,
        facecolor='w',edgecolor='k')
# 分别表示 对象标记、大小、分辨率、背景颜色、边框颜色
bimgColor=ImageColorGenerator(bimg)
plt.axis("off") # 不显示坐标标题
plt.imshow(wordcloud.recolor(color_func=bimgColor))
plt.show()

 

你可能感兴趣的:(数据挖掘实战)