全文检索有哪些技术原理和过程
全文索引用于处理大文本集合,利用它人们可以在海量文本中快速获取需要的信息。下面是学习啦小编整理的全文索引的内容,欢迎阅读。
全文索引的介绍
全文索引技术是目前搜索引擎的关键技术。
试想在1M大小的文件中搜索一个词,可能需要几秒,在100M的文件中可能需要几十秒,如果在更大的文件中搜索那么就需要更大的系统开销,这样的开销是不现实的。
所以在这样的矛盾下出现了全文索引技术,有时候有人叫倒排文档技术。
全文检索技术原理
原理是先定义一个词库,然后在文章中查找每个词条(term)出现的频率和位置,把这样的频率和位置信息按照词库的顺序归纳,这样就相当于对文件建立了一个以词库为目录的索引,这样查找某个词的时候就能很快的定位到该词出现的位置。
问题在处理英文文档的时候显然这样的方式是非常好的,因为英文自然的被空格分成若干词,只要我们有足够大的词汇库就能很好的处理。但是亚洲文字因为没有空格作为断词标志,所以就很难判断一个词,而且人们使用的词汇在不断的变化,而维护一个可扩展的词汇库的成本是很高的,所以问题出现了。
解决出现这样的问题使“分词”成为全文索引的关键技术。目前有两种基本的方法:
二元法 它把所有有可能的每两两汉字的组合看为一个词组,这样就没有维护词库的开销。
词库法 它使使用词库中的词作为切分的标准,这样也出现了词库跟不上词汇发展的问题,除非你维护词库。
实际上现在很多著名的搜索引擎都使用了多种分词的办法,比如“正向最大匹配”+“逆向最大匹配”,基于统计学的新词识别,自动维护词库等技术,但是显然这样的技术还没有做到完美。
全文检索技术存储过程
目前全文索引技术正走向人工智能化,也是发展的方向。
MicroSoft SqlServer 2000/2005 中的全文索引是由一系列存储过程来完成的,这些存储过程按先后顺序罗列如下:
1、启动数据库的全文索引服务存储过程:sp_fulltext_service
2、初始化全文索引存储过程:sp_fulltext_database
3、建立全文索引目录存储过程:sp_fulltext_catalog
4、在全文索引目录中添加删除表标记存储过程:sp_fulltext_table
5、在全文索引目录的表中添加或删除列标记存储过程:sp_fulltext_column
全文检索的技术
1概述
图书情报界对于检索语言的主流观点:自然语言检索是发展方向,信息检索要走自然语言道路;人工语言不适应网络环境;目前自然语言检索技术虽有缺点,但人工智能发展可使其逐步达到完善,满足检索的要求。
自然语言检索技术包括:(1)关键词索引及以关键词为检索标识的文献题录数据库;
(2)全文数据库;(3)搜索引擎及由搜索引擎自动建立的网络资源数据库;(4)自动标引;
(5)自动分类。在这5个主要方面中,只有关键词索引及数据库、全文检索、搜索引擎已经实现,但这3个方面的实质都是关键词检索,所以可以说自然语言检索目前仅在关键词检索的层次上实现。
目前关键词检索技术的最主要用途就是用来实现全文检索,它是全文检索的核心。并且关键词检索和全文检索是密不可分的。
2基本概念
所谓全文检索,是指直接以全文本信息作为主要处理对象,并根据数据资料的内容而不是外在特征来实现的信息检索手段。它的基本工作方式是能够将所有包含检索词的文献检索出来,不管这个词出现在文献的什么位置,或者说文献中的任意一个词都可以作为检索到该文献的条件。全文检索提供存取全文文本(指原始记录)的空间,文本中任何字符和字符串均可作为检索的入口点,全文检索是以原始记录中的检索词、字间的特定位置为对象的运算,对文献不作标引,故没有标引用词。因此,全文检索是一种可以不依赖叙词表而直接使用自由词的检索方法。
3实现条件
要实现全文检索需要2个必要的条件:一是需要将最终信息本身输入到计算机里,这个问题看似简单,实际上它包含了极大的工作量;二是需要有相应的软件支持,全文信息不仅包括书刊的文字信息,而且包括图片、声音、视频信息等各种信息资料,即使只将书刊及各种资料的文字信息输入计算机,其信息量就非常大了。因此,必须有专门的方法、专门的软件来支持这种“最终信息”的检索,这类软件就是全文检索软件。
3.1 全文检索的实现方式
全文检索目前主要通过以下方式来实现:①采用自由指定的检索项(如关键词、字符串等)直接与全文文本的一次数据高速对照,进行检索;②对文本内容中的每个检索项进行位置扫描,然后排序,建立以每个检索项的离散码为表目的倒排文档;③采用超文本模型建立全文数据库,实现超文本检索。
3.2 全文检索的核心技术
全文检索的核心技术是将源文档中所有的基本元素的出现信息记录到索引库中。中文全文检索技术在原理上同西文全文检索是一致的,但汉字本身的特点使中文系统的实现比西文系统更为复杂。在西文中,文档的基本元素是单词,可以以单词建立索引库,而且单词与单词之间有天然的间隔符空格,所以索引文件的建立相对简单。在中文系统中,基本元素可以是单个汉字字符,也可以是词。因此,存在2种基本的索引方法,即“词索引”和“字索引”。
3.2.1 词索引
“词索引 ” 以能表达一定的意义的词为单位, 通过事先内嵌的词典对原始数据作索引 , 以词为单位进行匹配。词索引适于大规模应用 , 索引库可以组织得比较小 , 检索速度也比较快,而且还可以实现同义词、反义词的概念检索,具有较高的查准率。但其难点在于中文自动分词,由于中文语言的复杂性使得计算机自动分词工作具有相当的难度,分词很容易出现歧义,从而导致在检索一些词时可以发生大量的漏检或错检,查全率不高。并且在当今社会,新的词汇层出不穷,对词表的更新也将是个很大的工作量。
3.2.2 字索引
“字索引”则以字为单位,把源文档中的每一个字的出现位置记录到索引库中,索引库对每个不同的字符都保存了一个字表,记录同一个字在文档中的所有出现位置,无须词典即可对原始数据做索引,匹配的时候,以关键词中的每个汉字为单位向后匹配整个语料样本。 4 全文索引技术
全文索引技术是目前搜索引擎的关键技术。原理是先定义一个词库,然后在文章中查找每个词条出现的频率和位置,把这样的频率和位置信息按照词库的顺序归纳,这样就相当于对文件建立了一个以词库为目录的索引,这样查找某个词的时候就能很快的定位到该词出现的位置。问题是在处理英文文档的时候显然这样的方式是非常好的,因为英文自然的被空格分成若干词,只要我们有足够大的词汇库就能很好的处理。但是中文字符因为没有空格作为断词标志,所以就很难判断一个词,而且人们使用的词汇在不断的变化,而维护一个可扩展的词汇库的成本是很高的,所以问题出现了。解决出现这样的问题使“分词”成为全文索引的关键技术。目前有两种基本的方法:
*二元法:它把所有有可能的每两两汉字的组合看为一个词组,这样就没有维护词库的开销。 *词库法:它使使用词库中的词作为切分的标准,这样也出现了词库跟不上词汇发展的问题,除非你维护词库。
实际上现在很多著名的搜索引擎都使用了多种分词的办法,比如“正向最大匹配”+“逆向最大匹配”,基于统计学的新词识别,自动维护词库等技术,但是显然这样的技术还没有做到完美。
5 分词算法
中文全文检索技术的研发始于1987年左右,主要使用的是中文分词技术,众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思,把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词,其处理过程就是分词算法。
现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
5.1 基于字符串的分词方法
基于字符串匹配的分词方法这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:1)正向最大匹配法(由左到右的方向);2)逆向最大匹配法(由右到左的方向);3)最少切分(使每一句中切出的词数最小)。还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分
词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。对于机械分词方法,可以建立一个一般的模型。
5.2 基于理解的分词方法
基于理解的分词方法这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
5.3 基于统计的分词方法
从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计。虽然有了成熟的分词算法,但是中文是一种十分复杂的语言,让计算机理解中文语言更是困难。在中文分词过程中,有两大难题一直没有完全突破。
第一,歧义识别歧义是指同样的一句话,可能有两种或者更多的切分方法。
第二,新词识别新词,专业术语称为未登录词。也就是那些在字典中都没有收录过,但又确实能称为词的那些词。
6 全文检索技术的应用
在微机工作平台上,目前已建立了十几种中英文检索软件,其中比较著名的有清华同方的TPI、易宝北信的TRS、北大方正的MIRS、中国百科术语数据库和海文Quick等。全文检索软件的工作过程主要分成2步:第一步是分析待检索的全文本信息,对其进行索引;第二步是实际的检索过程,对用户提出检索请求,全文检索软件根据第一步得到的索引找到检索关键字出现的位置,并将相应的全文本的有关篇章或段落提交给用户。分成两步,而不是在用户提交检索请求之后直接对原文本进行查找匹配的原因主要是考虑到速度的问题。因为通常全文本信息的数据量都是非常大的,如果每次要对数百万甚至更多的数据进行查找匹配,即使是计算机也需要很长的时间。如果是在网络环境下,系统要同时响应大量用户的检索请求时,用户等待的时间就更长了。因此,只能事先对原始全文资料作充分的分析并记录下必要的、足够的信息,才有可能提供全文检索。进行事先分析就是对原始资料进行索引,其结果是生成记录了原始全文资料所有有关信息的索引文件。
7 全文检索技术的特点
7.1 全文检索技术的优点
全文检索技术具有直接客观性,它提供存取全文文本的空间,能直接检查原始文献或解决问题所需要的文献资料,不必进行二次检索,既直接又保证了客观性。全文检索得到的是全文文本,而不是文献的摘要或替代品。全文检索技术具有详尽彻底性,可对文中任何字、词、句进行检索,还可表示检索词间的复杂位置关系,文献的正文部分或附属部分都可以检索和显示。
全文数据库的建立,无须专门人员前期进行大量标引工作,只需将已有的档案信息数据加载到全文检索软件平台上即可。用户使用时也无须提供专业化的检索条件,借助截词、邻接等匹配方法,文本中任何字符或字符串都可作为检索的入口点,用户2010年2月孙清玉:有效的信息检索技术——全文检索第2期(总148期)73可直接查询文本中的任何部分或特定单元,查询效率大大提高。
全文检索的广泛适用性,体现在能处理结构化和非结构化的各类文本数据,能够采集各种来源文本,这些来源可能是跨越广泛地理分布的,也可以是不同介质、不同格式产生的文本。全文检索具有对检索出的文本进行处理的能力,并且以用户乐于接受的形式提供检索并加工处理文本,使检索系统功能得到了延伸。
7.2 全文检索系统的欠缺
语词与概念之间存在着多对多的关系,即:一个语词可以表达多个概念,同时一个概念也可以用多个不同的词来表达。自然语言的这种情况给基于关键词的信息检索造成了一定的困难。基于关键词的全文检索是以文档中有没有检索要求中的关键词来召回检索结果,而不是以检索词所表达的意思来召回结果的。从这个角度来说,全文检索可能会造成大量的漏检。
全文检索系统不适应于学科或专业的分类检索要求及一族事物的族性检索要求;越是被论述得多的事物,越难在全文检索系统中得到满意的检索结果。有较多同义词、准同义词的检索对象,由于检索对象的用词不定型,以及遇“一词多义”、“词义含糊”、不普遍使用的缩略词、词的嵌套等情况,都会或多或少影响其检索效率。
看了什么是全文索引的人还看了:
1.什么是全文检索
2.全文搜索的方法