一直想用python做一些语义分析的东西,直到了解了wordcloud和jieba。jieba被很多大牛推荐过,一个非常简洁好用的中文分词工具;wordcloud也很常用,是一款傻瓜式操作的词云图生成工具。
于是,今天我找了一篇报告当作测试,看能不能搞出点有意思的东西来。
这篇报告全文三万多字,首先用jieba对全文进行分词,然后写了一个小片段对词频进行统计。需要注意的是,jieba分词直接把标点符号甚至空格符都当作一个词,因此输出结果需要手工剔除这一部分;还有一部分是没有实际意义的助词,比如“的”、“在”等,也需要手工剔除,最后整理之后的部分结果如下:
其实一般文章的话,到这一步已经可以看出一些规律了,或者大致已经能明白文章主要在说什么。但是还是不够直观,或者怎么说,B格不够高吧。所以wordcloud派上了用场,这个工具可以让你自定义生成词云的背景,于是我选了一张极其恰当的背景,生成了词云图:
这样是不是一目了然呢。
还有比发展更重要的吗。
在探索的过程中还是发现了一些问题,最后的成果好坏,很大程度上取决于分词工具分词的准确度,比如有些文章中有很多专用名词,jieba都是按照自己默认的词典进行分词的。好在,jieba提供了用户自定义词典的功能,如果怕有些新名词、新提法分不出来,最好能事先定义这些词。
同样,如果想统计某些类型的词,也是可以加个简单判断实现的,比如,含“新”字的词频:
这里也能明显看出,“新时代”在本报告中非常重要,但并没有被统计出来,这就是分词工具默认字典的缺陷,按照默认词典,“新”和“时代”很可能被拆成两个词了……
今天这个尝试让我有了一些新的灵感,能否和之前的爬虫技术相结合,从网上定期抓取一些信息或者资源,然后除了词频统计、词云图这种基础的操作,更进一步做一些情感分析呢?
答案是肯定的。
学无止境。
最后附上本次尝试的代码:
领取专属 10元无门槛券
私享最新 技术干货