简要的谈谈文本数据挖掘的一般步骤

[QQ群: 189191838,对算法和C++感兴趣可以进来]

数据挖掘领域一直都非常的火。现在炒的非常热的大数据,其实也是数据挖掘的一个应用而已,不管工程师用的是Hadoop还是其他平台,其实都是对一堆的数据进行分析,计算,然后得到我们希望得到的结果。所以我们可以知道,文本数据挖掘的必要性是因为信息技术,特别是网络的频繁使用,自媒体的越来越多,从大海中找到同一类,和用户期待的一类信息越来越重要,而人工完成几乎不可能,所以,文本挖掘就应运而生。

数据挖掘中的文本挖掘与我们的生活息息相关,比如说,百度上的新闻,当然,他少不了编辑人员的作用,但是在众多网络信息中,寻找到热点,离开机器的作用几乎是不可能完成的。还有最近一款非常热的app,<<头条>>。其实也是文本挖掘的应用。当然,其中还有推荐系统(这里我们不做讨论,如果大家有兴趣,我可以另写一博文普及一下相关知识)。还有,文本挖掘对百度,google等搜索引擎其实也起到非常大的重要。

好的,了解到了这些的话,我们就可以讲讲文本挖掘的一本步骤,这里以网络文本为例。数据挖掘就是做一道菜,经过各种加工,最后成为一道美食。

 一、获取文本

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

二、对文本进行预处理

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

我们知道,网页中存在很多不必要的信息,比如说一些广告,导航栏,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算法,贝叶斯算法、决策树算法等等。

以上六个步骤,就是一般文本挖掘的主要步骤,希望对大家有所帮助。谢谢!

版权所有,欢迎转载,但是转载请注明出处:潇一

简要的谈谈文本数据挖掘的一般步骤

时间: 2024-11-09 06:05:01

简要的谈谈文本数据挖掘的一般步骤的相关文章

文本数据挖掘 Matrix67: The Aha Moments

转自:http://www.matrix67.com/blog/archives/5044 互联网时代的社会语言学:基于SNS的文本数据挖掘 今年上半年,我在人人网实习了一段时间,期间得到了很多宝贵的数据,并做了一些还算有意义的事情,在这里和大家一块儿分享.感谢人人网提供的数据与工作环境,感谢赵继承博士.詹卫东老师的支持和建议.在这项工作中,我得到了很多与众人交流的机会,特别感谢 OpenParty . TEDxBeijing 提供的平台.本文已发表在了<程序员>杂志,分上下两部分刊于 201

根据文本内容动态计算文本框高度的步骤

在视图加载的过程中,是先计算出frame,再根据frame加载视图的,所以在设计计算高度的方法的时候,设计成加号方法; //首先给外界提供计算cell高度的方法 + (CGFloat)heightForRowWithDic:(NSDictionary *)dic { //cell高度 = nameLabel高度 + contentLabel高度 + 间距; return [self heightForText:dic[@"content"]] + 30 + kHeight_NameLa

oracle文本导入数据具体步骤和出现部分乱码处理方法

第一步,先将要导入的数据准备 第二步 将xlsx数据另存为txt文档 数据准备好了,现在可以导入到数据库里面了 第四步,打开文本导入器,将准备好的数据文本导入进去,具体效果如下图 第五步,选择要导入的表和对应的字段 第六步,就是点击导入了.也可以点击查看导入脚本 OK,导入部分已经结束了.如果导入脚本和导入数据部分出现乱码具体如下图: 我的是前一百条数据没问题,但后面全部都乱码了. 解决方案是:将xlsx另存为的时候选择文本文件,编码格式不用修改,不要改成UTF-8 或者其他的. 原文地址:ht

中文文本分类大概的步骤

文本分类问题:给定文档p(可能含有标题t),将文档分类为n个类别中的一个或多个 文本分类应用:常见的有垃圾邮件识别,情感分析 文本分类方向:主要有二分类,多分类,多标签分类 文本分类方法:传统机器学习方法(贝叶斯,svm等),深度学习方法(fastText,TextCNN等) 文本分类的处理大致分为文本预处理.文本特征提取.分类模型构建等.和英文文本处理分类相比,中文文本的预处理是关键技术. 一.中文分词:针对中文文本分类时,很关键的一个技术就是中文分词.特征粒度为词粒度远远好于字粒度,其大部分

R语言进行网站评论文本数据挖掘聚类

对于非结构化的网站中文评论信息,r的中文词频包可能是用来挖掘其潜在信息的好工具,要分析文本内容,最常见的分析方法是提取文本中的词语,并统计频率.频率能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多.词语提取后,还可以做成词云,让词语的频率属性可视化,更加直观清晰. 比如对于如下的网站评论信息: 通过一系列的文本处理和高频词汇的提取,最后结合聚类,我们可以得到如下的可视化结果. 第一类客户: 第二类 第三类 这是根据某网站成交评论制作的可视化词云,词频的统计,分词和词云的制

谈谈文本出现省略号和tooltip相爱相杀的那些事

在开发过程中,一般都会遇到一行显示不下便进行省略号处理的方式(我是省略文字...).在使用element-ui的表格组件时,便常常使用这个,但也一直受其BUG困扰,在edge & firefox 时,会在出现省略号时并不出现弹框.归根结底在于,如何判断是否省略号,只需解决这个问题即可 讨论如何判断文本是否出现省略号 文本出现省略号 /* 单行显示 */ overflow: hidden; text-overflow:ellipsis; white-space: nowrap; /* n行显示 *

一小时了解数据挖掘⑤数据挖掘步骤&常用的聚类、决策树和CRISP-DM概念

一小时了解数据挖掘⑤数据挖掘步骤&常用的聚类.决策树和CRISP-DM概念 接前面系列4篇: 一小时了解数据挖掘①:解析常见的大数据应用案例 一小时了解数据挖掘②:分类算法的应用和成熟案例解析 一小时了解数据挖掘③:详解大数据挖掘の分类技术 一小时了解数据挖掘④:商务智能原理解读の数据挖掘九大定律 数据挖掘有很多不同的实施方法,如果只是把数据拉到Excel表格中计算一下,那只是数据分析,不是数据挖掘.本文主要讲解数据挖掘的基本规范流程.CRISP-DM和SEMMA是两种常用的数据挖掘流程. 数据

这份研究花了我一年:数据挖掘与运维分析

这份研究报告,作者从去年开始到现在花了整整一年时间,今天和大家分享下,关于<数据采矿和运维分析>,共同探讨~ 数据挖掘(Data Mining)是从大量数据中提取或"挖掘"知识. 广义数据挖掘:数据挖掘是从存放在数据库.数据仓库或其它信息库中的大量数据挖掘有趣知识的过程. 数据挖掘技术侧重:1)概率与数理统计 2)数据库技术 3)人工智能技术 4)机器学习. 1. 数据清理:消除噪音或不一致数据 2. 数据集成:多种数据源可以组合在一起 3. 数据选择:从数据库中提取与分析

数据挖掘学习笔记一:引论

数据挖掘(又称从数据中发现知识,KDD) 例1.1 数据挖掘把大型数据集转换成知识.Google的Flu Trends(流感趋势)使用特殊的搜索项作为流感活动的指示器.它发现了搜索流感相关信息的人数与实际具有流感症状的人数之间的紧密联系.当与流感相关的所有搜索都聚集在一起时,一个模式就出现了.使用聚集的搜索数据,Google的Flu Trends可以比传统的系统早两周对流感活动作出评估. 数据挖掘 == 数据中的知识发现.只是发现的过程由一下步骤的迭代序列组成: 数据清理(消除噪声和删除不一致数