Python可视化,关键词做词云让你的数据变得色彩多多
中文分词(jieba模块)
对于自然语言处理来说,分词是一步重要的工作,市面上也有各种分词库
基于词典:基于字典、词库匹配的分词方法;(字符串匹配、机械分词法)
基于统计:基于词频度统计的分词方法;
第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。
第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。
安装我们的结巴小模块
只要你下载Python环境中拥有pip那你就可以在CMD中用pip下载(前提是添加了环境变量)
jieba支持三种分词模式:
精确模式,试图将句子最精确地切开,适合文本分析
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
支持繁体分词
支持自定义词典
MIT 授权协议(有许多团体均采用MIT许可证。)
让我们来看一下使用四种方法,做出来的四种模式
关键字的抽取
用来抽取关键字的算法有两个TF_IDF算法与TextRank算法,接下来我们看一下这两个算法怎么实现关键字的提取.
TF_IDF算法分析
TF_IDF是一种数值统计,用于反映一个词对于语料中某篇文档的重要性。TF_IDF的主要思想是:如果某个词在一篇文档中出现的频率高,TF就高;并且在语言材料库中其他文档中很少出现,IDF就高,就认为这个词具有很好的类别区分能力。TF_IDF在实际中主要是TF和IDF相乘(TF * IDF)TF为词频,IDF为反文档频率:也就相当于词t在文档d中出现的频率*词t的文档的数目的倒数。
应用到关键词抽取:
预处理,首先进行分词和词性标注,将满足指定词性的词作为候选词
分别计算每个词的TF_IDF值
根据每个词的TF_IDF值降序排列,并输出指定个数的词汇作为可能的关键词
如果打印一行就不需要做循环
TextRank算法分析
将文本中的语法单元视作图中的节点,如果两个语法单元存在一定语法关系(例如共现),则这两个语法单元在图中就会有一条边相互连接,通过一定的迭代次数,最终不同的节点会有不同的权重,权重高的语法单元可以作为关键词。
应用到关键短语抽取:
预处理,首先进行分词和词性标注,将单个word作为结点添加到图中
设置语法过滤器,将通过语法过滤器的词汇添加到图中;出现在一个窗口中的词汇之间相互形成一条边
基于公式,迭代直至收敛;一般迭代20-30次,迭代阈值设置为0.0001
根据顶点的分数降序排列,并输出指定个数的词汇作为可能的关键词
如果两个词汇在文本中前后连接,那么就将这两个词汇连接在一起,作为关键短语
Word Cloud模块的下载与应用
在python3中Word Cloud不能用pip命令安装,我们需要从网上下载模块安装,接下来我从安装开始教
先从下载模块
下载好了以后我们看一下这个.whl文件所在的路径
好安装好了以后我们来看源码
我们来看一下Wordcloud库结合jieba模块制作的云图
卡耐基 《人性的弱点》
名侦探柯南
《I have a dream》
PS:这里注意一下我们还会需要scipy这个模块,但是我已经安装了,所以就没讲。