使用THULAC与wordcloud生成文章词云

我们能经常在一个个人博客站点见到词云这种东西,好奇心来了,那我们该如何去实现一个我们自己的词云么?

这篇博客带你使用THULAC中文分词与wordcloud开源库如何将一篇中文文章生成词云图片~

使用THULAC分词

THULAC在我的这篇博客《使用TF-IDF算法、THULAC和余弦相似性算法比较影评的相似程度 》已经提到其的使用方法,这里不再重述,直接上代码:

'''
    检查是否为中文字符
'''
def check_contain_chinese(check_str):
    for ch in check_str:
        if u'\u4e00' <= ch <= u'\u9fff':
            return True
        return False

'''
    数据清洗并改成标准格式,使用生成器
    咳咳,词瞎用的,请勿对号理解~
'''
def createGenerator(mylist):
    for word in mylist:
        papapa = True
        for check in word[0]:
            biubiu = check_contain_chinese(check)
            if(biubiu):
                pass
            else:
                papapa = False
                break
        if(papapa):
            yield word[0]

'''
    读取文件,进行分词处理并获取长度
'''
def CutArticle(article):
    file = open(article,'rb')
    data = file.read().decode('utf-8')
    file.close()
    thu = thulac.thulac()
    text = thu.cut(data)
    length = len(text)
    demo = createGenerator(text)
    return demo,length

使用wordcloud生成词云

back_coloring = imread("F:/acticle compare/large_d24a4641813530f9.jpg")
    wc = WordCloud(background_color="white", max_words=2000, height=640, width=600, max_font_size=20).generate(f)
    # width,height,margin可以设置图片属性
    # generate 可以对全部文本进行自动分词,但是他对中文支持不好
    # 你可以通过font_path参数来设置字体集
    #background_color参数为设置背景颜色,默认颜色为黑色
    image_colors = ImageColorGenerator(back_coloring)
    # 显示图片
    plt.imshow(wc)
    # 关闭坐标轴
    plt.axis('off')
    # 绘制词云
    plt.figure()
    plt.imshow(wc.recolor(color_func=image_colors))
    plt.axis('off')
    # 保存图片
    wc.to_file('F:/acticle compare/19th.png')

参数可以使用dirhelp来查看帮助,这里直接举个例子,如果还是不知道怎么具体使用,官方GitHub有更多的例子,可以前去观看

效果图如下:
这里写图片描述
这里写图片描述

代码继续放GitHub

猜你喜欢

转载自blog.csdn.net/wy_97/article/details/80308327