Python可视化,关键词做词云让你的数据变得色彩多多

syThinkCool 2018-02-03

中文分词(jieba模块)

对于自然语言处理来说,分词是一步重要的工作,市面上也有各种分词库

  1. 基于词典:基于字典、词库匹配的分词方法;(字符串匹配、机械分词法)

  2. 基于统计:基于词频度统计的分词方法;

第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。

第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。

安装我们的结巴小模块

只要你下载Python环境中拥有pip那你就可以在CMD中用pip下载(前提是添加了环境变量

Python可视化,关键词做词云让你的数据变得色彩多多

jieba支持三种分词模式:

  1. 精确模式,试图将句子最精确地切开,适合文本分析

  2. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义

  3. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

  • 支持繁体分词

  • 支持自定义词典

  • MIT 授权协议(有许多团体均采用MIT许可证。)

Python可视化,关键词做词云让你的数据变得色彩多多

让我们来看一下使用四种方法,做出来的四种模式

Python可视化,关键词做词云让你的数据变得色彩多多

关键字的抽取

用来抽取关键字的算法有两个TF_IDF算法TextRank算法,接下来我们看一下这两个算法怎么实现关键字的提取.

  • TF_IDF算法分析

TF_IDF是一种数值统计,用于反映一个词对于语料中某篇文档的重要性。TF_IDF的主要思想是:如果某个词在一篇文档中出现的频率高,TF就高;并且在语言材料库中其他文档中很少出现,IDF就高,就认为这个词具有很好的类别区分能力。TF_IDF在实际中主要是TF和IDF相乘(TF * IDF)TF为词频,IDF为反文档频率:也就相当于词t在文档d中出现的频率*词t的文档的数目的倒数。

应用到关键词抽取:

  1. 预处理,首先进行分词和词性标注,将满足指定词性的词作为候选词

  2. 分别计算每个词的TF_IDF值

  3. 根据每个词的TF_IDF值降序排列,并输出指定个数的词汇作为可能的关键词

Python可视化,关键词做词云让你的数据变得色彩多多

如果打印一行就不需要做循环

  • TextRank算法分析

将文本中的语法单元视作图中的节点,如果两个语法单元存在一定语法关系(例如共现),则这两个语法单元在图中就会有一条边相互连接,通过一定的迭代次数,最终不同的节点会有不同的权重,权重高的语法单元可以作为关键词。

应用到关键短语抽取:

  1. 预处理,首先进行分词和词性标注,将单个word作为结点添加到图中

  2. 设置语法过滤器,将通过语法过滤器的词汇添加到图中;出现在一个窗口中的词汇之间相互形成一条边

  3. 基于公式,迭代直至收敛;一般迭代20-30次,迭代阈值设置为0.0001

  4. 根据顶点的分数降序排列,并输出指定个数的词汇作为可能的关键词

  5. 如果两个词汇在文本中前后连接,那么就将这两个词汇连接在一起,作为关键短语

Word Cloud模块的下载与应用

在python3中Word Cloud不能用pip命令安装,我们需要从网上下载模块安装,接下来我从安装开始教

Python可视化,关键词做词云让你的数据变得色彩多多

先从下载模块

Python可视化,关键词做词云让你的数据变得色彩多多

下载好了以后我们看一下这个.whl文件所在的路径

Python可视化,关键词做词云让你的数据变得色彩多多

Python可视化,关键词做词云让你的数据变得色彩多多

好安装好了以后我们来看源码

Python可视化,关键词做词云让你的数据变得色彩多多

我们来看一下Wordcloud库结合jieba模块制作的云图

卡耐基 《人性的弱点》

Python可视化,关键词做词云让你的数据变得色彩多多

名侦探柯南

Python可视化,关键词做词云让你的数据变得色彩多多

《I have a dream》

Python可视化,关键词做词云让你的数据变得色彩多多

PS:这里注意一下我们还会需要scipy这个模块,但是我已经安装了,所以就没讲。

相关推荐