python数据挖掘——文本分析

2024-04-29

1. python数据挖掘——文本分析

作者 | zhouyue65 
来源 | 君泉计量 
 文本挖掘:从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程。 
 一、语料库(Corpus) 
 语料库是我们要分析的所有文档的集合。 
     二、中文分词 
 2.1 概念: 
 中文分词(Chinese Word Segmentation):将一个汉字序列切分成一个一个单独的词。 
 eg:我的家乡是广东省湛江市-->我/的/家乡/是/广东省/湛江市 
 停用词(Stop Words): 
 数据处理时,需要过滤掉某些字或词 
 √泛滥的词,如web、网站等。 
 √语气助词、副词、介词、连接词等,如 的,地,得; 
 2.2 安装Jieba分词包: 
 最简单的方法是用CMD直接安装:输入pip install jieba,但是我的电脑上好像不行。 
 后来在这里:https://pypi.org/project/jieba/#files下载了jieba0.39解压缩后 放在Python36Libsite-packages里面,然后在用cmd,pip install jieba 就下载成功了,不知道是是什么原因。 
 然后我再anaconda 环境下也安装了jieba,先在Anaconda3Lib这个目录下将jieba0.39的解压缩文件放在里面,然后在Anaconda propt下输入 pip install jieba,如下图: 
   2.3 代码实战: 
 jieba最主要的方法是cut方法: 
 jieba.cut方法接受两个输入参数: 
 1) 第一个参数为需要分词的字符串 
 2)cut_all参数用来控制是否采用全模式 
 jieba.cut_for_search方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细 
 注意:待分词的字符串可以是gbk字符串、utf-8字符串或者unicode 
 jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(...))转化为list代码示例( 分词 ) 
   输出结果为: 我 爱 
 Python 
   工信处 
 女干事 
 每月 经过 下属 科室 都 要 亲口 
 交代 
 24 口 交换机 等 技术性 器件 的 安装 
 工作 
 分词功能用于专业的场景: 
   会出现真武七截阵和天罡北斗阵被分成几个词。为了改善这个现象,我们用导入词库的方法。 
   但是,如果需要导入的单词很多,jieba.add_word()这样的添加词库的方法就不高效了。 
 我们可以用jieba.load_userdict(‘D:PDM2.2金庸武功招式.txt’)方法一次性导入整个词库,txt文件中为每行一个特定的词。 
 2.3.1 对大量文章进行分词 
 先搭建语料库: 
 分词后我们需要对信息处理,就是这个分词来源于哪个文章。 
 四、词频统计 
 3.1词频(Term Frequency): 
 某个词在该文档中出现的次数。 
 3.2利用Python进行词频统计 
         3.2.1 移除停用词的另一种方法,加if判断 
       代码中用到的一些常用方法: 
 分组统计: 
   判断一个数据框中的某一列的值是否包含一个数组中的任意一个值: 
   取反:(对布尔值) 
   四、词云绘制 
 词云(Word Cloud):是对文本中词频较高的分词,给与视觉上的突出,形成“关键词渲染”,从而国旅掉大量的文本信息,使浏览者一眼扫过就可以领略文本的主旨。 
 4.1 安装词云工具包 
 这个地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ ,可以搜到基本上所有的Python库,进去根据自己的系统和Python的版本进行下载即可。 
 在python下安装很方便,在anaconda下安装费了点劲,最终将词云的文件放在C:UsersAdministrator 这个目录下才安装成功。 
         五、美化词云(词云放入某图片形象中) 
 六、关键词提取 
       结果如下: 
   七、关键词提取实现 
 词频(Term Frequency):指的是某一个给定的词在该文档中出现的次数。 
 计算公式: TF = 该次在文档中出现的次数 
 逆文档频率(Inverse Document Frequency):IDF就是每个词的权重,它的大小与一个词的常见程度成反比 
 计算公式:IDF = log(文档总数/(包含该词的文档数 - 1)) 
 TF-IDF(Term Frequency-Inverse Document Frequency):权衡某个分词是否关键词的指标,该值越大,是关键词的可能性就越大。 
 计算公式:TF - IDF = TF * IDF 
 7.1文档向量化 
   7.2代码实战 

python数据挖掘——文本分析