文本挖掘和自然语言处理

来源:互联网 发布:行知实践园手抄报 编辑:程序博客网 时间:2024/04/29 14:01

文本挖掘利用智能算法,如神经网络、基于案例的推理、可能性推理等,并结合文字处理技术,分析大量的非结构化文本源(如文档、电子表格、客户电子邮件、问题查询、网页等),抽取或标记关键字概念、文字间的关系,并按照内容对文档进行分类,获取有用的知识和信息。
文本挖掘是一个多学科混杂的领域,涵盖了多种技术,包括数据挖掘技术、信息抽取、信息检索,机器学习、自然语言处理、计算语言学、统计数据分析、线性几何、概率理论甚至还有图论。

文本挖掘预处理:

文本挖掘是从数据挖掘发展而来,但并不意味着简单地将数据挖掘技术运用到大量文本的集合上就可以实现文本挖掘,还需要做很多准备工作。文本挖掘的准备工作由文本收集、文本分析和特征修剪三个步骤组成,

信息检索是指文献等信息资源的整理和搜索"其主要目的可以概括为:按照用户的具体需要,采用一些检索方法,把所有相关的文献都检索出来,同时摒弃掉那些看似相关实则不符合要求的文档"

自然语言处理技术在信息检索中的应用可以分为词语层和上词语层两个层次,在第一个层次上,信息检索中用到的NLP技术主要有分词!识别复合短语以及专有名词和未登录词等"在这

分词方法:(来自百度百科部分和博客http://www.williamlong.info/archives/333.html)

上词语层次,NLP技术在信息检索中的应用领域主要有概念表示!句法分析和语义分析"另外,NLP还有几个比较重要的分支,如自动分类,自动摘要等

百度的分词技术有3种:

1、基于字符串匹配的分词方法

  这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:

(1).正向最大匹配法
就是把一个词从左至右来分词。
举个例子:”不知道你在说什么”
这句话采用正向最大匹配法是如何分的呢?“不知道,你,在,说什么”。
(2).反向最大匹配法
"不知道你在说什么"反向最大匹配法来分上面这段是如何分的。“不,知道,你在,说,什么”,这个就分的比较多了,反向最大匹配法就是从右至左。
(3).就是最短路径分词法。
就是说一段话里面要求切出的词数是最少的。
“不知道你在说什么”最短路径分词法就是指,把上面那句话分成的词要是最少的。“不知道,你在,说什么”,这就是最短路径分词法,分出来就只有3个词了。
(4).双向最大匹配法。
而有一种特殊的情况,就是关健词前后组合内容被认为粘性相差不大,而搜索结果中也同时包含这两组词的话,百度会进行正反向同时进行分词匹配。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。

统计分词法

根据词组的统计,就会发现两个相邻的字出现的频率最多,那么这个词就很重要。就可以作为用户提供字符串中的分隔符,这样来分词。
比如,“我的,你的,许多的,这里,这一,那里”等等,这些词出现的比较多,就从这些词里面分开来。

实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。

分词中的难题

  有了成熟的分词算法,是否就能容易的解决中文分词的问题呢?事实远非如此。中文是一种十分复杂的语言,让计算机理解中文语言更是困难。在中文分词过程中,有两大难题一直没有完全突破。

  1、歧义识别

  歧义是指同样的一句话,可能有两种或者更多的切分方法。例如:表面的,因为“表面”和“面的”都是词,那么这个短语就可以分成“表面 的”和“表 面的”。这种称为交叉歧义。像这种交叉歧义十分常见,前面举的“和服”的例子,其实就是因为交叉歧义引起的错误。“化妆和服装”可以分成“化妆 和 服装”或者“化妆 和服 装”。由于没有人的知识去理解,计算机很难知道到底哪个方案正确。

  交叉歧义相对组合歧义来说是还算比较容易处理,组合歧义就必需根据整个句子来判断了。例如,在句子“这个门把手坏了”中,“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词;在句子“将军任命了一名中将”中,“中将”是个词,但在句子“产量三年中将增长两倍”中,“中将”就不再是词。这些词计算机又如何去识别?

  如果交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词。例如:“乒乓球拍卖完了”,可以切分成“乒乓 球拍 卖 完 了”、也可切分成“乒乓球 拍卖 完 了”,如果没有上下文其他的句子,恐怕谁也不知道“拍卖”在这里算不算一个词。

  2、新词识别

  新词,专业术语称为未登录词。也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,人可以很容易理解句子“王军虎去广州了”中,“王军虎”是个词,因为是一个人的名字,但要是让计算机去识别就困难了。如果把“王军虎”做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项巨大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子“王军虎头虎脑的”中,“王军虎”还能不能算词?

 新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。

分词准确性对搜索引擎来说十分重要,但如果分词速度太慢,即使准确性再高,对于搜索引擎来说也是不可用的,因为搜索引擎需要处理数以亿计的网页,如果分词耗用的时间过长,会严重影响搜索引擎内容更新的速度。因此对于搜索引擎来说,分词的准确性和速度,二者都需要达到很高的要求。目前研究中文分词的大多是科研院校,清华、北大、中科院、北京语言学院、东北大学、IBM研究院、微软中国研究院等都有自己的研究队伍,而真正专业研究中文分词的商业公司除了海量科技以外,几乎没有了。科研院校研究的技术,大部分不能很快产品化,而一个专业公司的力量毕竟有限,看来中文分词技术要想更好的服务于更多的产品,还有很长一段路。