1. 程式人生 > >Python數據挖掘-詞雲美化

Python數據挖掘-詞雲美化

round edge ner hit 數據 odin fit segments content

1、語料庫構建

由於不像之前是對很多個文件進行詞頻統計,所以不需要使用os.walk()方法遍歷每一個文件;

只需使用codecs.open()打開相應的文件,(記得close);

然後使用jieba模塊中的load_userdict()方法導入詞庫

import jieba
import numpy
import codecs
import pandas

file=codecs.open(
    "C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\2.5\\紅樓夢.txt",
    "r",encoding="utf-8")

content
=file.read() file.close jieba.load_userdict("C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\2.5\\紅樓夢詞庫.txt") segments=[] segs=jieba.cut(content) for seg in segs: if len(seg)>1: segments.append(seg) segmentDF=pandas.DataFrame({ "segment":segments})

2、移除停用詞

首先是讀出停用詞庫,然後通過DataFrame中isin(),取反~的方法來移除停用詞

將篩選後的分詞進行統計

stopwords=pandas.read_csv(
        "D:\\Python\\Python數據挖掘\\Python數據挖掘實戰課程課件\\2.5\\StopwordsCN.txt",
        encoding="utf-8",
        index_col=False,
        quoting=3,
        sep="\t")

segmentDF=segmentDF[
    ~segmentDF.segment.isin(stopwords.stopword)]

segStat
=segmentDF.groupby( by=["segment"] )["segment"].agg({ "計數":numpy.size }).reset_index().sort( columns=["計數"], ascending=False) segStat.head(100)

3、普通詞雲的繪制

from wordcloud import WordCloud
import matplotlib.pyplot as plt

wordcloud=WordCloud(
    font_path="D:\\Python\\愛數圈書籍\\Python數據挖掘\\Python數據挖掘實戰課程課件\\2.4\\simhei.ttf",
    background_color="black")

words=segStat.set_index("segment").to_dict()

wordcloud=wordcloud.fit_words(words["計數"])
plt.imshow(wordcloud)
plt.close()

4、詞雲美化

導入scipy.misc中的imread函數,該函數時導入圖片,用於詞雲

從wordcloud模塊中導入WordCloud,ImageColorGenerator函數

ImageColorGenerator是提取圖片顏色

from scipy.misc import imread
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator

#導入圖片
bimg=imread("D:\\Python\\愛數圈書籍\\Python數據挖掘\\Python數據挖掘實戰課程課件\\2.5\\賈寶玉.png")

wordcloud=WordCloud(
        background_color="white",
        mask=bimg,font_path="D:\\Python\\愛數圈書籍\\Python數據挖掘\\Python數據挖掘實戰課程課件\\2.4\\simhei.ttf")
#適配詞雲圖
wordcloud=wordcloud.fit_words(words["計數"])
#圖雲顏色
bimgColors=ImageColorGenerator(bimg)

plt.axis("off")
plt.imshow(wordcloud.recolor(color_func=bimgColors))
plt.show()

bimg=imread("D:\\Python\\愛數圈書籍\\Python數據挖掘\\Python數據挖掘實戰課程課件\\2.5\\賈寶玉2.png")

wordcloud=WordCloud(
    background_color="white",
        mask=bimg,font_path="D:\\Python\\愛數圈書籍\\Python數據挖掘\\Python數據挖掘實戰課程課件\\2.4\\simhei.ttf")

wordcloud = wordcloud.fit_words(words[計數])

plt.figure(
    num=None,figsize=(8,6),dpi=80,facecolor="w",edgecolor="k")

bimgColors=ImageColorGenerator(bimg)
plt.axis("off")
plt.imshow(wordcloud.recolor(color_func=bimgColors))
plt.show()

Python數據挖掘-詞雲美化