鉴于大家对其他类别十分关注,我们编辑小组在此为大家搜集整理了“基于Nutch的搜索引擎实现及中文扩展的研究(计算机毕业论文)”一文,供大家参考学习
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
5 Nutch中文扩展设计与实现 5.1中文分词和搜索引擎 英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白「学」、「生」两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我是 一个 学生。中文分词技术的准确度,对搜索引擎的相关性和准确性有相当大的关系。 对于搜索引擎来说,最重要的并不是找到所有结果,因为在上百亿的网页中找到所有结果没有太多的意义,没有人能看得完,最重要的是把最相关的结果排在最前面,这也称为相关度排序。中文分词的准确与否,常常直接影响到对搜索结果的相关度排序。下面就以这个例子来说明分词对搜索结果的影响,在目前最有三个中文搜索引擎上做测试。测试方法是直接在Google、百度、中搜上以「和服」为关键词进行搜索:在Google上输入「和服」搜索所有中文简体网页,总共结果507,000条,前20条结果中有14条与和服一点关系都没有。在第一页就有以下错误: “通信信息报:瑞星以技术和服务开拓网络安全市场” “使用纯HTML的通用数据管理和服务- 开发者- ZDNet ...” “陈慧琳《心口不一》化妆和服装自己包办” 这次搜索引擎结果中的错误,就是由于分词的不准确所造成的。由此可见,中文分词的准确度,对搜索引擎结果相关性和准确性有相当大的关系 5.2 中文分词算法 中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。 现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。 5.2.1基于字符串匹配的分词算法 这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个「充分大的」机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下: 正向最大匹配法(由左到右的方向); 逆向最大匹配法(由右到左的方向); 最少切分(使每一句中切出的词数最小)。 还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。 一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。 5.2.2基于理解的分词方法 这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。 5.2.3基于统计的分词方法 从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如「这一」、「之一」、「有的」、「我的」、「许多的」等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。 目录 1绪论... 1 1.1 课题背景 1 1.2 搜索引擎的现状 2 1.2.1搜索引擎的发展历史... 2 1.2.2搜索引擎的分类... 3 1.2.3当前主流搜索引擎简介... 4 1.3 论文组织结构 5 2搜索引擎基本组成及数据结构... 6 2.1搜索引擎基本组成及工作流程 6 2.1.1基本组成... 6 2.1.2工作流程... 6 2.2 存储结构 8 2.2.1页面存储库... 8 2.2.2词典库... 8 2.2.3 Hits列表... 9 2.3 索引结构 10 2.3.1文档索引库... 10 2.3.2前向索引表... 10 2.3.3后向索引表... 11 3基于Nutch的搜索引擎实现的关键技术... 11 3.1网页抓取技术研究与设计 11 3.1.1抓取技术的协议分析... 11 3.1.2通信协议... 12 3.1.3 HTML解析... 13 3.2 网页抓取方法 13 4 基于Nutch实现架构... 16 4.1 基于Nutch的搜索引擎开发环境和体系结构 16 4.1.1 基于Nutch的搜索引擎的开发环境... 16 4.1.2基于 Nutch的搜索引擎的体系结构... 16 4.2 基于Nutch的搜索引擎的抓取过程运行 20 4.3 搜索结果展示 22 5 Nutch中文扩展设计与实现... 23 5.1中文分词和搜索引擎 23 5.2 中文分词算法 23 5.2.1 基于字符串匹配的分词算法... 24 5.2.2基于理解的分词方法... 25 5.2.3基于统计的分词方法... 25 5.3 中文分词难点 26 5.4 Nutch分析 27 5.5 Nutch中文搜索 28 5.5.1 Nutch中文分词... 28 5.5.2 JavaCC分析... 29 5.5.3利用JavaCC构造中文分析模块... 31 5.6小结 33 结论... 33 总结 33 展望 33 致谢... 34 参考文献... 34 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |