提升全文检索搜索引擎应用问题的

点赞:26385 浏览:120534 近期更新时间:2024-02-15 作者:网友分享原创网站原创

【摘 要】全文检索系统中最为关键的部分是全文检索引擎,各种应用程序都需要建立在这个引擎之上.全文检索的核心是如何从文本中提取主题词,而如何从单文档中提取主题词是本文要重点解决的问题同时也是提升全文检索引擎的效率即是提升全文检索应用的根本.

【关 键 词】全文检索;搜索引擎;提取主题词

引言

信息的迅速增长必然需要强大的信息检索工具,而在信息检索工具中,全文检索是最具有通用性和实用性的.迅速发展的互联网带来的信息增长对全文检索技术又提出了新的要求.由此可见全文检索系统的研究对人们日常生活的意义与重要性,能准确地从web数据中查找用户需要的信息、并以有效的形式呈现给用户的问题势在必行.

1.主题词提取关键技术

主题词提取算法设计时要保证提取的主题词能反映文档的主旨内容.因此,采用了全新的主题词提取算法:基于同义词词林的主题词提取.

1.1主题词词频与词语位置

词语在文献中出现的次数越多,它越可能是主题词.词语在文献中出现的位置对主题词提取也具有重要的影响,一般来说,词语会出现在标题、正文等不同的位置.出现在正文的词语,设它的位置loci等于1;出现在标题的词语,设它的位置值为loci等于0.出现在标题中的词语往往就比出现在正文中的词语重要.

1.2同义词权值设计

如果一个词语的同义词在文中出现,那么这个词语获得附加权重.判断文章中词语是否有同义词,主要的依据是在同义词词林字典中进行查找,如果这个词语及同义词在文中都有出现,那么同义词词林中一定有“等于”号标记,标记该词与该词相关的同义词.则将这个词的权重(weight)增加;如果一个词的相关词语出现在文中,那么这个词也获得附加权重,在同义词词库中是以“#”作为相关词标记的.如果文章中的一个词既没有同义词也没有相关词出现,那么它很有可能是独立词,只需要判断该词的TF值就可以了.

2.主题词提取算法

虽然目前很多研究者都采用了像TF-IDF等算法计算主题词权重,但这种算法不属于单文档主题词提取算法,而且没有考虑词语的其他相关信息对主题词权值判定的影响.在设计主题词提取算法时考虑了设计词语权重时的因素:文本中词语的词频、词语出现的位置、同义词、相关词、独立词.设计权重算法如下:

(1)

首先,Wj是判断一个词是否能作为主题词提取的唯一权重,Wj的值越高越可能是主题词.第一个因子与第二个因子分别计算了词频和词语的相关位置,位置因子算法中第一个fi为词语在文中第i种位置上出现的次数.在标题中出现的词,权重往往比在正文中出现的词语权重大.Loci为该词语的位置因子,Loci等于0时,该词出现的位置是标题,则λ值为0.6.如果Loci等于1,说明这个词的位置在正文,则λ值为0.3.第二项是参考了同义词词林设计的因子,h是这个词语的相关同义词种类.同义词相关种类指的是同义词、相关词、独立词这三种.kind为基于同义词相关信息的相关因子,kind有三种形式,当文章中这个词有同义词出现时kind值为1,相关词出现时kind值为0.6,没有任何同义词和相关词时该词kind值不增加.计算出所有词的权重后,输出链表中权重最大的前N个词,作为文章的主题词.在这个过程中,设置了可以提取主题词个数是3至6个.

3.主题词提取模块

3.1分词模块

分词模块处理时:首先设置了一个函数,作为分词时的预处理.所谓预处理即是对一个待分词文档,判断其要匹配的字段是否含有非中文字符.如果没有则调用正向或者反向最大匹配分词法.如果这个匹配字段中含有非中文字字符,那么在处理时先将char设置为unsignedchar类型,存储几乎所有的字符文字.首先用户选择载入文件打开待分词文档.按下正向最大匹配分词OnSplitBack()按钮或者反向最大匹配分词OnSplitFront()按钮,调用事件处理函数开始进行中文分词.载入词库文件以后,进入SplitWord函数.它是分词的开始,bDick参数是用户选择的分词方式.bDick等于1则进行正向最大匹配分词,bDick等于2则进行反向最大匹配分词.如果按下正向最大匹配分词按钮,则进入MaxFrontMatching()函数,进行正向最大匹配.如果按下反向最大匹配分词按钮,则进入MaxFrontMatching()函数,进行反向匹配.通过反复的调用这个函数,最终完成中文分词.


3.2主题词提取模块

在设计主题词权重算法时,参考了主题词提取算法的相关资料,设计了影响词语权重的因子:即该词词频、词语出现的位置、同义词、相关词、独立词.根据主题词提取权重算法,Weight作为判断一个词是否能作为关 键 词提取的唯一权重.进入函数Count_loc判断该词语在文本中的词频,统计文章中每个词的词频之后调用位置函数WordPosition判断词语出现的位置.如果该词出现在正文,那么loci值1.如果该词语出现的位置是标题,那么loci的值为0.将m_WordList链表里的文章标题中出现的词汇nPos标志改为0之后,统计链表中m_WordList的词汇,放到同义词匹配词库中进行查找,将找到的标记(#等于&)记录到address对象中去.调用CountThesaurus函数,判断当前文章中该词语是否有同义词.如果有那么它的权值加1.该词存在相关词时权值增加0.6,如果它是独立词则该词的权值不增加.在主题词提取设计中用户可以根据自己的需要选择提取主题词个数.

3.3搜索引擎模块

搜索引擎在设计时直接调用了现有的基于Google接口的搜索引擎程序,将这段程序代码与主题词提取代码整合到一起,完成了基于搜索引擎的主题词提取系统,在程序调用时直接调用了Google接口程序的.exe文件.当按下OnSearchEngine按钮时首先判断主题词提取对象是否为空,如果主题词提取为空将不能向用户显示搜索引擎搜索到的结果.

提升全文检索搜索引擎应用问题的参考属性评定
有关论文范文主题研究: 关于主题词的论文范文数据库 大学生适用: 专升本毕业论文、研究生论文
相关参考文献下载数量: 21 写作解决问题: 学术论文怎么写
毕业论文开题报告: 文献综述、论文设计 职称论文适用: 技师论文、职称评中级
所属大学生专业类别: 学术论文怎么写 论文题目推荐度: 优秀选题

总结

在设计全文检索主题词算法初期采用了TF算法统计了文本中的词频,最终主题词提取的部分借鉴了同义词词林算法,中文分词部分主要采用正向最大匹配分词法与反向最大匹配法相结合的算法进行中文分词.通过中文分词程序设计中算法的不断改进、调整,最终将这两种不同的中文分词法结合到一起.同时,本系统还有可以一些需要改进的地方,比如提高主题词提取的准确性.更快更准永远是全文检索技术的追求.