<jupyter_start><jupyter_text>[如何用Python做词云](http://www.jianshu.com/p/e4b24a734ccc)？网上教你做信息图教程很多。许多都是利用了专用工具。这些工具好是好，便捷而强大。只是它们功能都太过专一，适用范围有限。今天我们要尝试的，是用通用的编程语言Python来做词云。如果你之前没有编程基础，没关系,从零开始，意味着我会教你如何安装Python运行环境，一步步完成词云图。希望你不要限于浏览，而是亲自动手尝试一番。到完成的那一步，你不仅可以做出第一张词云图，而且这还将是你的第一个有用的编程作品。开始之前，你需要安装：`pip install wordcloud` 数据词云分析对象，是文本。为了简便，我们这里[以英文文本为例](https://www.coursera.org/learn/machine-learning)。<jupyter_code># 读取英文文本内容
filename = "wordcloud.txt"
mytext = open(filename).read()
print(mytext[0:99]) #全部 print 出来太多了
# 呼唤(import)词云包，利用mytext中存储的文本内容来制造词云。
from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)

# 此时词云分析已经完成了。

%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
# 英文文本不够给力？来段中文的 PS：难度大一点，来段古文：增广贤文

filename = "wordcloudChinese.txt"
mytext = open(filename).read()
print("先预览一下古文头几句:  "+mytext[0:99])

# 注意，由于英文词与词自带空格作为分隔符，相比于中文分词要简单的多。我们在做中文分词时，需要把词语从一整段话中筛出来，困难之处在于，汉语表达博大精深，一段话往往有不同的切分方法。
# 所幸这不是我们需要担心的，Python中的Jieba库提供了现成的解决方案：
import jieba
result=" ".join(jieba.cut(mytext))

# jiaba调用了自己的分词算法，将切分好的文本按逗号分隔符分开，得到下面结果
print("切分结果:  "+result[0:99])
# 做好了中文分词，下一步即是绘制云词图了。这里我们使用了另一个比较强大的库WordCloud。

from wordcloud import WordCloud
wordcloud = WordCloud(
    background_color="white", #背景颜色
    max_words=200, #显示最大词数
    font_path=r"‪C:\Windows\Fonts\FZYTK.TTF",  #使用字体
    ).generate(result)
%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wordcloud)
plt.axis("off")<jupyter_output>Populating the interactive namespace from numpy and matplotlib
{'fraction_non_alphanumeric': 0.1274131274131274, 'fraction_numerical': 0.011583011583011582, 'mean_word_length': 9.724137931034482, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 1, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '186282', 'license': 'Unlicense', 'n_tokens_mistral': 942, 'n_tokens_neox': 1058, 'n_words': 76, 'path': 'jupyter_notebook/wordcloud.ipynb', 'repo_name': 'crsir007/MyApp', 'size': '1554'}