美文网首页PythonPython学以致用编程语言爱好者
用jieba分词提取关键词做漂亮的词云

用jieba分词提取关键词做漂亮的词云

作者: _CallMe靠谱叔 | 来源:发表于2017-01-17 18:19 被阅读4148次

    早上看到简友@向右奔跑 的文章超简单:快速制作一款高逼格词云图,试了一下介绍的工具真心好用,近期刚好想爬些数据做词云,就尝试了一下jieba分词提取txt关键词生成词云。
    先上效果图:

    用到的工具

    1. 原始数据:《白夜行》小说,txt格式(我是用calibre把原来mobi格式的书转成txt的)。后期可以用爬虫爬点网页数据做原始数据。为简单就先用txt练手好了。
    2. 提取关键词:jieba分词、停用词表
    3. 在线词云生成工具:TAGUL

    简单分析一下

    生成词云最关键的问题是中文分词,统计分析各个词的权重(权重较高的字体显示较大)。这些问题jieba分词已经帮我们解决了。我们只需要import jieba.analyse,使用jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())方法即可,当然只是提取关键词还是不够的,因为有些没有意义的常用词诸如“我的”、“或者”、“一个”等词,会出现在结果里面,还需要一个“停用词表”来帮我们过滤结果。
    我们的目标是提取关键词,并得到“关键词+制表符+权重”的文本,这里关键词和权重用制表符隔开是为了在用在线工具的时候,能顺利导入权重的值,决定词的大小(size)。


    关键词和size中间用制表符分开


    步骤:

    1. 安装jieba pip install jieba
    2. 准备好txt文件和停用词表(网上可以下载到,txt格式即可)
    3. 编写代码
    import jieba.analyse
    
    path = '你的txt文件路径'
    file_in = open(path, 'r')
    content = file_in.read()
    
    try:
        jieba.analyse.set_stop_words('你的停用词表路径')
        tags = jieba.analyse.extract_tags(content, topK=100, withWeight=True)
        for v, n in tags:
            #权重是小数,为了凑整,乘了一万
            print v + '\t' + str(int(n * 10000))
    
    finally:
        file_in.close()
    

    运行结果如下:


    4.打开TAGUL,开始制作词云,把结果贴进import words里


    5.选个shape(词云轮廓)

    6.在fonts中,导入一个中文字体,我用的微软雅黑:

    7.点击visualize即可生成

    8.Download and Share里面可以下载需要的格式。

    参考文章:

    1.TF-IDF与余弦相似性的应用(一):自动提取关键词
    2.超简单:快速制作一款高逼格词云图
    3.jieba的github

    相关文章

      网友评论

      本文标题:用jieba分词提取关键词做漂亮的词云

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