在海量数据中提取有效的信息,词云不愧是一种有效解决此类问题的方法,他可以突出显示关键词,快速提取有价值的信息。
Python制作词云很简单,要求不高的话,几行代码就可以搞定,主要使用的库有jieba(结巴,一种分割汉语的分词库)和wordcloud库。
一、jieba简介
jieba 是目前最好的 Python 中文分词组件,它主要有以下 3 种特性:
支持 3 种分词模式:精确模式、全模式、搜索引擎模式
用法
#全模式
seg_list = jieba.cut("今天真是个好天气。他来到了西安交通大学。", cut_all=True)
#精确模式
seg_list1 = jieba.cut("今天真是个好天气。他来到了西安交通大学。", cut_all=False)
#搜索引擎模式
seg_list2 = jieba.cut_for_search("今天真是个好天气。他来到了西安交通大学")
print("【全模式】:" + "/ ".join(seg_list))
print("【精确模式】:" + "/ ".join(seg_list1))
print("【搜索引擎模式】:" + "/ ".join(seg_list2))
"""
【全模式】:今天/ 天真/ 真是/ 个/ 好/ 天气/ 。/ 他/ 来到/ 了/ 西安/ 西安交通/ 西安交通大学/ 交通/ 大学/ 。
【精确模式】:今天/ 真是/ 个/ 好/ 天气/ 。/ 他/ 来到/ 了/ 西安交通大学/ 。
【搜索引擎模式】:今天/ 真是/ 个/ 好/ 天气/ 。/ 他/ 来到/ 了/ 西安/ 交通/ 大学/ 西安交通大学
"""
从结果上看,全模式是将所有词语分割出来,但会分割出我们不需要的词语,比如上面例子中的天真就是我们不希望出现的。如果我们做词云,常使用精确模式。搜索引擎常使用搜索引擎模式,将句子切割成关键词。
返回值
jieba.cut 返回值 <class ‘generator’>
jieba.lcut 返回值 <class ‘list’>
但切割的词是一致的
seg_list = jieba.cut("今天真是个好天气。他来到了西安交通大学。", cut_all=True)
print(type(seg_list))
print("【全模式】:" + "/ ".join(seg_list))
seg_list = jieba.lcut("今天真是个好天气。他来到了西安交通大学。"