python 中文词云

作者: DongBold | 来源:发表于2017-04-28 20:38 被阅读1291次

    需要安装两个包

    pip install wordcloud

    pip install jieba

    第一个用于生成词云

    第二个用于中文分词

    如果要生成英文的词云的话, 就直接使用wordcloud.generate()函数就行了
    如果要生成中文的分词的词云的话, 就需要使用jieba(结巴)这个中文分词库来实现分词了

    jieba的github

    #!/usr/bin/env python3
    from os import path
    from wordcloud import WordCloud, ImageColorGenerator
    import jieba.analyse
    import matplotlib.pyplot as plt
    from scipy.misc import imread
    
    class cloud:
        def __init__(self, filename, image_filename, font_filename):
            self.d = path.dirname(__name__)
            content = open(path.join(self.d, filename), 'rb').read()
            # 基于TF-IDF算法的关键字抽取, topK返回频率最高的几项, 默认值为20, withWeight
            # 为是否返回关键字的权重
            tags = jieba.analyse.extract_tags(content, topK=100, withWeight=False)
            self.text = " ".join(tags)
            # 需要显示的背景图片
            self.img = imread(path.join(self.d, image_filename))
            # 指定中文字体, 不然会乱码的
            self.wc = WordCloud(font_path=font_filename, background_color='white',
                            max_words=300, mask=self.img, max_font_size=40,
                            random_state=42)
            self.wc.generate(self.text)
    
    
        def show_wc(self):
            '''显示生成的词云图'''
            # 让词的颜色和图片的颜色一样
            img_color = ImageColorGenerator(self.img)
            plt.imshow(self.wc.recolor(color_func=img_color))
            plt.axis("off")
            plt.show()
    
        def save_wc(self, out_filename):
            '''保存到当前目录下'''
            self.wc.to_file(path.join(self.d, out_filename))
    
    if __name__ == '__main__':
        wc = cloud("毛主席语录.txt", "out.png", "font.ttc")
        wc.show_wc()
        wc.save_wc('output.jpg')
    
    

    结果:

    需要安装两个包

    pip install wordcloud

    pip install jieba

    第一个用于生成词云

    第二个用于中文分词

    如果要生成英文的词云的话, 就直接使用wordcloud.generate()函数就行了
    如果要生成中文的分词的词云的话, 就需要使用jieba(结巴)这个中文分词库来实现分词了

    jieba的github

    #!/usr/bin/env python3
    from os import path
    from wordcloud import WordCloud, ImageColorGenerator
    import jieba.analyse
    import matplotlib.pyplot as plt
    from scipy.misc import imread
    
    class cloud:
        def __init__(self, filename, image_filename, font_filename):
            self.d = path.dirname(__name__)
            content = open(path.join(self.d, filename), 'rb').read()
            # 基于TF-IDF算法的关键字抽取, topK返回频率最高的几项, 默认值为20, withWeight
            # 为是否返回关键字的权重
            tags = jieba.analyse.extract_tags(content, topK=100, withWeight=False)
            self.text = " ".join(tags)
            # 需要显示的背景图片
            self.img = imread(path.join(self.d, image_filename))
            # 指定中文字体, 不然会乱码的
            self.wc = WordCloud(font_path=font_filename, background_color='white',
                            max_words=300, mask=self.img, max_font_size=40,
                            random_state=42)
            self.wc.generate(self.text)
    
    
        def show_wc(self):
            '''显示生成的词云图'''
            # 让词的颜色和图片的颜色一样
            img_color = ImageColorGenerator(self.img)
            plt.imshow(self.wc.recolor(color_func=img_color))
            plt.axis("off")
            plt.show()
    
        def save_wc(self, out_filename):
            '''保存到当前目录下'''
            self.wc.to_file(path.join(self.d, out_filename))
    
    if __name__ == '__main__':
        wc = cloud("毛主席语录.txt", "out.png", "font.ttc")
        wc.show_wc()
        wc.save_wc('output.jpg')
    
    

    结果:
    需要安装两个包

    pip install wordcloud

    pip install jieba

    第一个用于生成词云

    第二个用于中文分词

    如果要生成英文的词云的话, 就直接使用wordcloud.generate()函数就行了
    如果要生成中文的分词的词云的话, 就需要使用jieba(结巴)这个中文分词库来实现分词了

    jieba的github

    #!/usr/bin/env python3
    from os import path
    from wordcloud import WordCloud, ImageColorGenerator
    import jieba.analyse
    import matplotlib.pyplot as plt
    from scipy.misc import imread
    
    class cloud:
        def __init__(self, filename, image_filename, font_filename):
            self.d = path.dirname(__name__)
            content = open(path.join(self.d, filename), 'rb').read()
            # 基于TF-IDF算法的关键字抽取, topK返回频率最高的几项, 默认值为20, withWeight
            # 为是否返回关键字的权重
            tags = jieba.analyse.extract_tags(content, topK=100, withWeight=False)
            self.text = " ".join(tags)
            # 需要显示的背景图片
            self.img = imread(path.join(self.d, image_filename))
            # 指定中文字体, 不然会乱码的
            self.wc = WordCloud(font_path=font_filename, background_color='white',
                            max_words=300, mask=self.img, max_font_size=40,
                            random_state=42)
            self.wc.generate(self.text)
    
    
        def show_wc(self):
            '''显示生成的词云图'''
            # 让词的颜色和图片的颜色一样
            img_color = ImageColorGenerator(self.img)
            plt.imshow(self.wc.recolor(color_func=img_color))
            plt.axis("off")
            plt.show()
    
        def save_wc(self, out_filename):
            '''保存到当前目录下'''
            self.wc.to_file(path.join(self.d, out_filename))
    
    if __name__ == '__main__':
        wc = cloud("毛主席语录.txt", "out.png", "font.ttc")
        wc.show_wc()
        wc.save_wc('output.jpg')
    
    

    结果:

    output.jpg

    相关文章

      网友评论

        本文标题:python 中文词云

        本文链接:https://www.haomeiwen.com/subject/gfpazttx.html