文本挖掘概要
搞什么的?
- 从大量文本数据中,抽取出有价值的知识,并且利用这些知识更好的组织信息的过程。
目的是什么?
- 把文本信息转化为人们可利用的知识。
举例来说,下面的图表利用文本挖掘技术对库克iphoneX 发布会的内容进行分析,得出此次发布会报告中的几个常青词汇、词频的趋势变化情况。
(一)语料库(Corpus)
在python中,如何根据以往的文档文件搭建一个语料库?
1.什么是语料库
语料库是我们要分析的所有文档的集合。
在日常工作中我们对文章的管理,先是一篇篇的文章不断的积累,我们存了大量的文章之后,会对文章信息进行一些归类的工作,一般体现于建立不同的文件夹来保存不同类别的文章。
同样的,我们把我们需要分析的文本文件,读取内存变量中,然后在内存变量中使用不同的数据结构,对这些文本文件进行存储,以便进行下一步的分析。
这个内存变量就是语料库
2.语料库构建实操
我们通过一个案例来了解语料库构建的过程。
这里,jacky为了分享,整理了一份iphone8发布后,主流新闻网站评论的语料数据。
我存放iphone 语义文件夹的路
file:///Users/apple/Downloads/Iphone8
如果是windows系统要替换成响应的路径。
1) 如何把语料数据作为语料库导入到内存中
- # -*- coding:utf-8 -*-
- import os
- import os.path
- import codecs
- filePaths=[]
- fileContents=[]
- for root,dirs,files in os.walk('Users/apple/Documents/Iphone8'):
- for name in files:
- filePath=os.path.join(root,name)
- filePaths.append(filePath)
- f=codecs.open(filePath,'r','utf-8')
- fileContent=f.read()
- f.close()
- fileContents.append(fileContent)
-
- import pandas
- corpos=pandas.DataFrame({
- 'filePath':filePaths,
- 'fileContent':fileContents
- })
上述代码注解:
把一个文件夹中,包括嵌套文件夹的全路径,读入到一个内存变量中,我们定义为filePaths数组变量,接着使用os中walk方法,传入这个目录作为参数,就可以遍历该文件中的所有文件了
for root,dirs,files in os.walk中root为文件目录,dirs为root目录下的所有子目录,root目录下的所有文件,我们命名为files,然后进行遍历。
为了拿到root目录下的所有文件,我们再次便利所有的文件(代码:for name in files:)把它追加到filePaths变量中去即可。
os.path.join是拼接文件路径的方法,因为文件路径在windows,mac,linux中的写法是不同的,使用这个方法可以解决在不同系统中使用文件路径要使用不同方法的问题。
最后组建数据框pandas.DataFrame
我们可以print(corpos)