这些年你都学了些什么
数据可视化 多年下来,我的Google Bookmarks里已经有近万条的书签。大部分内容是我在读过一遍之后就收藏起来的,也有很多看了一眼之后,觉得不错,然后收藏起来准备以后读的(当然,你也知道,再也没有打开过)。 有没有一个方法可以让我以可视化的方式,看到这些年我都学了那些东西呢?将书签列表作为源数据,然后将这些信息可视化出来会非常有意思:比如收藏夹中的热门词是什么,哪段时间收藏了多少条的书签(学习投入程度趋势)等等。 下图是我的书签中,排行前30的关键字排序。可以明显的看出,我对于JavaScript的喜爱程度相当高,对美食的喜爱也超过了python和linux。 这里我将使用python,结合python的一些库来实现书签可视化。简而言之,整个过程可以分成这样几个步骤: 将Google Bookmarks导出为本地文件 将书签文件解析为容易处理的内部格式(比如python的dict等) 由于书签中会有中文的句子,所以会涉及到分词 统计词语的频率,并绘制成图标 数据源 Google Bookmarks本身可以直接导出成HTML文件。该HTML文件包含了时间戳和书签的标题,我们可以通过python的库BeautifulSoup将HTML中的文本抽取出来: from bs4 import BeautifulSoup def load_bookmarks_data(): soup = BeautifulSoup(open('bookmarks_10_21_15.html').read(), "html.parser") return soup.get_text() if __name__ == "__main__": print load_bookmarks_data() BeautifulSoup提供非常好用的API来抽取结构化文档中的内容。 分词 BeautifulSoup获得的是一条条独立的句子,我们需要使用分词器将所有的句子分解成片段。这里我使用了jieba(结巴分词)分词器来完成这个任务: import jieba data = "我在出报表,你的博客写的怎么样了" seg_list = jieba.cut(data, cut_all=False) for seg in seg_list: print seg 将会输出: 我 在 出 报表 , 你 的 博客 写 的 怎么样 了 我们定义一个方法来将上一步中的文本分词: def extract_segments(data): seg_list = jieba....