文本数据挖掘一般步骤

霸气de小男生 提交于 2020-01-24 12:03:52

转载自潇一:简要的谈谈文本数据挖掘的一般步骤

 

原文

     一、获取文本

     一般来说网络文本的获取,主要是网页的形式。我们要把网络中的文本获取形成一个文本数据库(数据集)。利用一个爬虫(这是另外一个知识点),抓取到网络中的信息。爬取的策略有广度和深度爬取;根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分,主题爬取主要是在相关站点爬取或者爬取相关主题的文本,而通用爬虫则一般对此不加限制。爬虫可以自己写,当然现在网络上已经存在很多开源的爬虫系统。当然如果需要定制,自己写还是可以的。

 

     二、对文本进行预处理

     通过上面的步骤,我们已经获得了做菜的材料了,可以说,有了它,做出一道菜已经是顺利成当了。但是,菜好不好吃,可不可口,还需要经过很多步骤的。

     我们知道,网页中存在很多不必要的信息,比如说一些广告,导航栏,html、js代码,注释等等,我们并不感兴趣的信息,可以delete掉。所以,我们还需要对文本中的信息进行筛选。这个步骤相当于我们做菜的洗菜过程,洗掉泥土等,吃起来才会口感好,否则,没有清洗过的菜,就算再牛逼的大厨,我想也很难做出佳肴吧。

 

     三、分词系统

      经过上面的步骤,我们会得到比较干净的素材。我们知道,文本中起到关键作用的是一些词,甚至主要词就能起到决定文本取向。比如说一篇文章讲的是体育还是娱乐,肯定是对文章中的中心词进行分析得到的结果。那么怎么样才能找到那些能够影响中心意思的词语呢?

      别忘了,在找出中心词之前,我们首先得在每个文本中得到所有词吧。这里就会用到一个分词系统或者说分词工具。现在针对中文分词,出现了很多分词的算法,有最大匹配法、最优匹配法、机械匹配法、逆向匹配法、双向匹配法等等(可以参考各类文献)。我们经常用到的中科院的分词工具ICTCLAS,该算法经过众多科学家的认定是当今中文分词中最好的,并且支持用户自定义词典,加入词典,;对新词,人名,地名等的发现也具有良好的效果。

      通过很多分词工具分出来的出会出现一个词,外加该词的词性。比如说啊是语气助词。

      比如我们对:(我们都是牛逼的中国人。)进行分词,得到的结果是:

      我们/rr 都/d 是/vshi 牛/n 逼/v 的/ude1 中国/ns 人/n 。/wj

 

     四、去除停顿词等

     经过上面的步骤,我们已经把所有的词进行了分类。但是这些所有的词,并不都是我们所需要的,比如说句号(。)显然,句号对意思的表达没有什么效果。还有"是"、“的”等词,也没有什么效果。因为这些词在所有的文章中都大量存在,并不能反应出文本的意思,可以处理掉。当然针对不同的应用还有很多其他词性也是可以去掉的,比如形容词等。

 

     五、特征选择

    经过上面的步骤,我们基本能够得到有意义的一些词。但是这些所有的词都有意义吗?显然不是这样的,有些词会在这个文本集中大量出现,有些只是出现少数几次而已。他们往往也不能决定文章的内容。还有一个原因就是,如果对所有词语都保留,维度会特别高,矩阵将会变得特别特别稀疏,严重影响到挖掘结果。那么对这些相对有意义的词语选取哪一本分比较合理呢?针对特征选择也有很多种不同的方式,但是改进后的TF*IDF往往起到的效果是最好的。tf-idf 模型的主要思想是:如果词w在一篇文档d中出现的频率高,并且在其他文档中很少出现,则认为词w具有很好的区分能力,适合用来把文章d和其他文章区分开来。

 

    下面是百度对TF、IDF的解释:

    在一份给定的文件里,词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)

    逆向文件频率 (inverse document frequency, IDF) 是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。

    某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于保留文档中较为特别的词语,过滤常用词。

   通过计算,对词进行排序,选取合适的词数当做特征。

 

     六、利用算法进行挖掘

    经过上面的步骤之后,我们就可以把文本集转化成一个矩阵。我们能够利用各种算法进行挖掘,比如说如果要对文本集进行分类,我们可以利用KNN算法,贝叶斯算法、决策树算法等等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!