无题

2019-03-01 14:14:34 浏览数 (1)

0 前言

1 月 9 号张小龙在微信之夜上演讲了近 4 个小时,第二天就一堆文字稿出现了,接着是下面这一张图被大量转发

前面说的我没去看,但是应该都是对的;后面说张小龙说得最多的是哪些,我觉得不可能是这样的分布,于是去找了资料确认。

采铜的原文中 明确说到是『并不完全的统计』,为了做出和采铜不一样的并不完全的统计,我和采铜一样去腾讯公众号拿了官方完整版文字稿 进行分词并且统计词频,。

请注意,我的分析是并不完全的、按照我的心思去掉数据的!! 下图是出现频率较高的图。

下图是部分和『底线』出现频率是一样的,没错,还有少,小,智能等,虽然我也没分析出什么来。

为了显示我的不一样,我还做了几个词云图来配合我的演出。

想一想这些数据能不能自己统计出来,能不能以自己的方式表达数据背后的东西。为什么要这样?因为别人统计的数据不一定精准、清洗数据的方式和你的不一样、用的语言或者工具和你的也不一样。

也不是说别人的分析不能看,我只是建议自己分析,然后结合别人的分析一起看。想想数据清洗的时候别人是为什么去掉一些数据,为什么只把部分数据拿出来分析。

采铜的文章,从立意和分析都是值得去学习的,至于最开始发的那张图,当个笑话看就好。

1 代码

还是 Python 代码,还是先导入库

代码语言:javascript复制
import matplotlib.pyplot as plt
import jieba.analyse
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
import PIL.Image as Image

C:/UsersASUSDesktop歌词/l.txt 里面的内容是要进行统计词频的文字,下面代码的功能是读取出要统计的文字

代码语言:javascript复制
fp = open('C:/UsersASUSDesktop歌词/l.txt')
try:
    file_context = fp.read()
    #  file_context = open(file).read().splitlines()
finally:
    fp.close()

这部分代码的功能是分词,然后统计词频并且打印出来。可以对代码进行一下修改,把统计好的结果写入 txt 文件或者 excel 文件中。

代码语言:javascript复制
words = jieba.cut(file_context, cut_all=True)
word_freq = {}
for word in words:
    if word in word_freq:
        word_freq[word]  = 1
    else:
        word_freq[word] = 1
freq_word = []
for word, freq in word_freq.items():
    freq_word.append((word, freq))
freq_word.sort(key=lambda x: x[1], reverse = True)
max_number = int(100)  # 100可以修改成别的数,意思是只显示前 100 个词的词频
for word, freq in freq_word[: max_number]:
    print(word, freq)

下面这部分的代码是分词,然后把分词后的结果以图片的形式显示出来。

代码语言:javascript复制
word_list = jieba.cut(file_context, cut_all=True)
word_space_split = ' '.join(word_list)

coloring = np.array(Image.open("E:/Python/wechat/toux.jpg"))  # 设置图片作为词云图的背景
my_wordcloud = WordCloud(background_color="white", max_words=2000,
                         mask=coloring, max_font_size=100, random_state=42, scale=2,
                         font_path="C:/Windows/Fonts/simkai.ttf").generate(word_space_split)
#  max_words 可以修改
image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

这里没有过多的解释,因为可以不用写代码。

2 不写代码

在线网站,每一个网站都不一样,我就不一一介绍了。

拿到要分析的文本后自行动手,分词和词云图都有。

http://corpus.zhonghuayuwen.org/CpsTongji.aspx http://picdata.cn/index.php http://cloud.niucodata.com/ https://minitagcloud.com/ http://ictclas.nlpir.org/nlpir/

3 说明

哪怕错过了 2019 微信公开课的直播,你还可以去看看回放,腾讯大学那里就有视频,建议用电脑看。

http://tencent.hlpwsy.cn/tencentVideoMobile/index-pc.html

注:我也不知道我写了些什么狗屁,感觉语句就没有通顺的,废话一堆,该说的却没说透,但是,就这样吧以后再改。

题图:Photo by Franki Chamaki on Unsplash

点击阅读原文可以查看我博客中的这篇文章~

0 人点赞