zoukankan      html  css  js  c++  java
  • Week 1 中文分词及其初步应用-人民的名义词云

    本文灵感及主要内容来源于以下文章:

    http://www.tuicool.com/wx/mqIV73E

    http://blog.csdn.net/qq_21057881/article/details/69562028

    ————————————————————————————————————

    目标:

    要作出这张看起来酷炫(其实并不)的图,需要准备以下材料:

    • python
    • 《人民的名义》剧本(直接下载或者用爬虫下载,我用的python版本为3.4,tuicool里给出的爬虫并不好用)
    • jieba(最好的中文分词工具)wordcloud(词云制作工具)
    • 酷炫的中文字体(可以下载心仪的ttf)

    先附上代码,毕竟本人才疏学浅,只会找些有意思又不难的东西实现,因此代码足够短。

    #coding=gbk
    import jieba
    import jieba.analyse
    from scipy.misc import imread
    from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
    import matplotlib.pyplot as plt  
    file_name='people.txt'
    content = open(file_name, 'rb').read()
    word_jieba = jieba.cut(content)  
    word_split = " ".join(word_jieba)  
    my_wordclud = WordCloud(max_words=100,width = 1600,height=800,font_path='W2.ttf').generate(word_split)  
    plt.imshow(my_wordclud)  
    plt.axis("off")  
    plt.show()  

    0 安装python

    其实我建议大家安装anaconda,功能强大,可以同时用conda和pip管理包。一些数据科学的常用包(如scipy)已经预安装,可以直接使用。

    1 安装jieba和wordcloud

    pip install ... 其中jieba的github值得一看。里面的教程简明易懂。

    2 下载剧本txt

    3 对剧本进行分词

    jieba.cut()为默认的分词函数,可以将剧本拆分为词。当然,对于人名的分词还是有问题的,可以自己写一个词典,把剧中的人民加入词典中,这样就不会出现类似“瑞金”这样不完整的人名了。添加词典的语法为:

    jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径

    4 云词的制作

    需要注意的是,云词的制作需要中文字体的支持。W2是我从网站上下的一个中文艺术字体(里的最不艺术的字体),ubuntu的字体放在/usr/share/fonts中,如果安装过中文字体的可以引用这个目录下的字体。

    5 欣赏

  • 相关阅读:
    JavaScript + HTML 虚拟键盘效果
    HTML + JS随机抽号。
    JavaScript 鼠标划过 播放音乐。
    JavaScript 笔记
    HTML5 div+css导航菜单
    div错位/解决IE6、IE7、IE8样式不兼容问题
    HTML5-表单的创建
    HTML5-布局的使用
    HTML5-块元素标签的使用
    HTML5-列表的使用
  • 原文地址:https://www.cnblogs.com/codingpenguin/p/6894410.html
Copyright © 2011-2022 走看看