基于维基百科的语义web搜索技术研究

基于维基百科的语义web搜索技术研究

ID:11425773

大小:1.24 MB

页数:53页

时间:2018-07-11

上传者:jjuclb
基于维基百科的语义web搜索技术研究_第1页
基于维基百科的语义web搜索技术研究_第2页
基于维基百科的语义web搜索技术研究_第3页
基于维基百科的语义web搜索技术研究_第4页
基于维基百科的语义web搜索技术研究_第5页
资源描述:

《基于维基百科的语义web搜索技术研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

分类号:TP393520.6099密级:天津理工大学研究生学位论文基于维基百科的语义Web搜索技术研究(申请硕士学位)学科专业:计算机应用技术研究方向:信息检索作者姓名:刘朋杰指导教师:赵德新 ThesisSubmittedtoTianjinUniversityofTechnologyfortheMaster’sDegreeSemanticWebsearchtechnologybasedonWikipediaByPengjieLiuSupervisorDexinZhao 独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得天津理工大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文作者签名:签字日期:年月日学位论文版权使用授权书本学位论文作者完全了解天津理工大学有关保留、使用学位论文的规定。特授权天津理工大学可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编,以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复本和电子文件。(保密的学位论文在解密后适用本授权说明)学位论文作者签名:导师签名: 摘要目前的Web搜索技术是基于关键词的搜索,信息的查全率和精确度仍然不能满足用户的需求,其效果常常不能使人满意。这是由于在Web搜索过程中,缺乏搜索引擎可读的语义信息,因而限制了计算机自动分析处理以及进一步的智能化处理的能力。因此,为了提高搜索引擎检索信息的精准度和智能性,传统的基于关键字的搜索引擎要向更智能的语义检索方向发展。语义搜索要有一个概念的语义空间网络作为支撑,维基百科(Wikipedia)是一个开放式的在线百科全书,它是世界最大的包含了大量人类知识和语义关系的知识库资源。如何充分利用维基百科的知识,为现有的搜索技术添加语义处理能力,优化信息检索过程,即成为本论文的研究课题。本文主要的工作如下:首先,针对维基百科中的信息组织及结构特点,抽取出语义信息。对维基百科数据的处理,我们应用了大数据处理的技术,构建了基于Hadoop的维基数据包处理云平台。通过建立一套基于对象模型的应用程序接口,得到了维基百科主题页面中我们感兴趣的语义信息,包括概念、类别、链接、摘要段(主题页面的第一段),这为后续的语义相关度计算提供了必要的结构性和内涵性信息。本文的处理技术还能为以后的维基百科大数据处理提供借鉴。其次,提出了一种计算词条语义相关度的新方法,称为WLA算法(WikipediaLinkandAbstract)。在上述对维基百科抽取出相关信息的基础上,我们重点研究了链接关系和摘要段的内容。链接关系(包括入链和出链)与摘要段公共词的特征能很好地反映出概念之间的联系,通过对其分别赋以不同的权重,实验结果显示WLA的Spearman相关系数达到了0.68,取得了令人满意的结果。最后,开发了语义搜索系统的原型。将我们提出的WLA算法集成到系统中,实现了能够提供普通用户和语义研究人员进行语义搜索的平台。该搜索系统以维基百科对词语的解释为背景知识,包括语义计算,语义概念查询和文本注释三大功能。语义计算功能可计算出词条语义相关性;语义概念查询系统提供基于维基百科的语义词典功能,对偏生词,多义词,歧义词进行语义解释,可以帮助用户扩展知识,能够增强搜索引擎处理查询的能力;文本注释功能对短文本中的专有名称进行注解,只要文本中的词条在维基百科有与之对应的主题页面,那么系统会对该词条进行注解并加入链接功能。该原型可作为语义搜索相关研究的测试平台。关键词:维基百科语义计算搜索引擎 AbstractBecausethecurrentWebsearchtechnologyisbasedonkeywords,itoftenfailstomeetuser’sneedsduetoinformation’srecallratioandaccuracyfarbelowpeople’sexpectancy.ForlackingofreadablesemanticinformationduringWebsearch,thereforeitlimitstheabilityofcomputertoautomaticallyanalyzeandfurtherprocessintelligently.Thence,aimingatimprovingtheaccuracyandintelligenceofsearchengine,wewouldliketoshiftoursearchenginefromatraditionalbasedonkeywordstoamoreintelligentbasedonsemanticsearching.Semanticsearchneedstobesupportedbyasemanticspacenetworkhavingconcepts.Wikipedia,asanopenonlineencyclopedia,isthelargestknowledgeresourceincludingagreatamountofhumanknowledgeandsemanticrelationshipsintheworld.SohowtotakefullyadvantageoftheWikipediatoaddsemanticprocessingabilityforthepresentsearchtechnologyandoptimizetheinformationretrievalprocess,isbeingstudiedinthispaper.Themainworkofthispaperisasfollows:Firstly,weextractsemanticinformationaccordingtoWikipedia’sinformationorganizationandstructuralcharacteristic.Wikipedia’sdataprocessingtechniqueoriginsfromthetechniqueusedbyprocessingthebigdata,soweconstructacloudplatformbasedonHadoop.Byestablishingasetofapplicationprogramminginterfacesbasedonobjectmodel,somesemanticinformationwhichweareinterestedinarefetchedfromtheWikipediatopicpages,includingconcept,category,linkandabstractparagraph(thefirstparagraphofthetopicpages).Thisprovidesnecessarystructuralandcontentinformationforthefollowingcalculationonsemanticrelatedness.Inaddition,italsocouldgiveresearcherssomeguidanceonprocessingtheWikipedia’sbigdatainthefuture.Secondly,aclevermethod,namedWLAalgorithm(WikipediaLinkandAbstract)isproposedtocalculatesemanticsimilarity.OntheabovebasisoftheextractedrelevantinformationfromWikipedia,wefocusonthelinkrelationandthecontentoftheabstractparagraph.Thecharacterofcommonwordsbetweenlinkrelationships(includinglink-inandlink-out)andabstractparagraphwellreflectstheconnectionofconcepts.Byendowingdifferentweights,itturnsouttobearathersatisfactoryresult,namingthattheSpearmancorrelationcoefficientcanreach0.68.Finally,wedevelopaprototypeofsemanticsearchsystem.ByintegratingtheproposedWLAalgorithmintothesystem,itmakestheplatformbeabletoservethenormaluserandsemanticresearchers.AgainstthebackgroundofthesemanticexplanationofWikipediatowords,thesystemincludesthreeparts,namelysemanticcomputing,semanticconceptqueryandtextannotation.Thefunctionofsemanticcomputingcancomputethesemanticrelevanceofterms;thesystemofsemanticconceptqueryworksjustlikethedictionaryofWikipedia,itnotonlycanexplainpartialwords,polysemy,ambiguouswordstohelppeopleenlargeknowledge,butalsocanimprovethesearchengine’sabilitytoprocessquery;textannotation istonoteforthepropernounappearedinshorttext.Inotherwords,aslongasthetextentryhasacorrespondingtopicpageinWikipedia,thenthesystemwillannotatetheentriesandaddthefunctionoflink.Thisprototypecanbeusedasatestplatformfortherelatedsemanticsearchresearch.Keywords:Wikipediasemanticcomputingsearchengine 目录第一章绪论...............................................................11.1研究背景及意义.....................................................11.2国内外研究现状.....................................................21.3研究内容和方案.....................................................41.4本文组织结构.......................................................5第二章相关技术研究.......................................................72.1维基百科...........................................................72.2Lucene技术.......................................................112.3Nutch技术........................................................142.4Hadoop技术.......................................................16第三章语义相关度的研究..................................................193.1基于文本的语义相关度..............................................193.2基于链接的语义相关度..............................................203.3基于文本和链接的WLA语义相关度....................................213.3.1数据处理....................................................223.3.2WLA语义计算算法............................................233.3.3算法测试....................................................25第四章基于维基百科的语义搜索系统设计....................................294.1系统设计..........................................................294.1.1系统总体设计................................................294.1.2功能设计....................................................304.1.3中间处理模型设计............................................304.2系统实施..........................................................314.2.1系统运行平台................................................314.2.2系统开发及展现..............................................314.3系统测试..........................................................36第五章总结与展望........................................................405.1总结..............................................................405.2展望..............................................................40参考文献.................................................................42发表论文和科研情况说明...................................................45致谢.................................................................46 第一章绪论1.1研究背景及意义目前大多数的语义研究都是依赖于人工构建语义知识的方法,这种人工构建需要大量时间和物力,在人工构建之前还需要大量分析文本语料进行语义挖掘,无论在覆盖范围和挖掘构建效率上都不满足现阶段的要求。语义知识本身具有复杂性,构建人工语义知识库,不仅在维护和更新方面需要大量人力,而且构建的知识库覆盖范围小。维基百科的出现,正好克服了人工构建知识库的缺点。维基百科是现存规模最大且是一个动态、自由访问和编辑的网站。它采用群体在线合作的Wiki机制,现已成为多语言网络百科全书[1]之一,具有质量高、覆盖广、实时演化和半结构化等特点的全球知识库。这种运行特点使自身迅猛发展,条目数量不断增加,每个条目都对应唯一页面,该页面对该条目做出相应的解析,每个页面包括了很多链接,例如锚点、超链接等。把每个页面看成一个点,把指向该页面的入链和指向其它页面的出链看成一条有向边,就会形成巨大复杂的页面链接有向图,即文档图。每个条目同时属于一个或者多个分类,每个分类都有唯一的父类,这种分类形成了维基百科另一种分类链接,同样将每个分类看成点,分类链接看成一条有向边,那么就会形成有向无环的分类图,文档图和分类图含有丰富的语义关系,同时维基百科文本信息中也含有大量的语义信息,所以把维基百科当作语义知识的最优质来源。随着互联网的信息不断增长,新知识新概念不断的出现,网络上的数据成指数增长,将我们带入了大数据时代。值得关注的是,如何有效快速从这些大数据中获取有效的信息为我们的搜索提供可靠的服务,对于目前的Web搜索技术来讲是基于关键词的搜索,只是部分地解决海量信息资源的发现问题,信息的查全率和精确度仍然不能满足用户的[2]需求,其效果远不能使人满意。这是由于互联网技术本身存在缺陷,其设计初衷是面向用户的直接阅读和处理,没有提供机器可读的语义信息,因而限制了计算机自动分析处理以及进一步的智能化处理的能力。因此,为了提高搜索引擎检索信息的精准度和智能性,要从知识共享的层次上去解决,传统的基于关键字的搜索引擎必然向更智能的语义检索方向发展,从丰富的网络数据中智能处理获取语义成为一个非常的重要的研究课题。为了实现基于语义知识的智能信息处理,提高搜索引擎检索信息的精准度和智能性,以此为背景本文主要研究了怎样抽取维基百科中的语义信息,并结合目前语义计算的有关方法,提出了使用抽取维基百科的文本信息和链接信息来计算词语语义相关度,并将提出的算法集成到语义搜索系统中。本文的抽取过程,语义计算及语义抽取过程都有重要的研究意义。 1.2国内外研究现状在语义知识库方面,国际上有名的知识库有DouglasLenat等人发起的CYC人工智[3]能的项目,该项目由美国CYC公司开发目的建立一个基于知识库的推理引擎,之后[4]美国普林斯顿大学通过手工建立了英语语义知识库WordNet,该语义知识库囊括上下位关系,整体部分关系,反义词关系等等。1997年,美国加州大学伯克分校通过手工建[5]立了英语知识库FrameNet,利用框架语义学的知识,对词语的语义使用框架来进行描[6][6]述。国内梅家驹先生在1983年手工建立了同义词词林,该词林提供大量的同义词语,并且提供了一定数量的同类词,尤其在类别关系定义方面,对信息检索和文本分类的性能上通过特征词条进行扩充或者替来提高。山西大学在2007年参照FrameNet和汉语语义的特点,以框架语义学为理论基础,提出了汉语框架语义知识库的构建方法,该框架共含有四方面的含义:框架的定义,框架的元素,框架之间的关系,所涉及的词语。之后武汉大学信息资源研究中心提出了一种从维基分类系统自动构建中文语义词典的方[7]法。该方法结合中文语言的特点,充分利用维基中的分类系统,对维基百科数据资源预处理,识别语义关系及类与实例关系等一系列操作,能对维基百科概念“IS-a”和“Not[8]ISa”判断,构建维基百科概念上下位关系表示的语义知识。董强利用知网知识HowNet构建基于知网的相关概念场库,并对知网的概念,大规模,双语种的词语进行了深入的研究,并成功开发了相关概念的激发器,同时还阐述了基于知网的相关概念场的实现原理,实现方法,并阐述了相关概念场在排歧,文本自动聚类中的作用。在语义抽取方面,许多语义研究者把维基百科文本作为高质量的语料库,最初使用模式匹配的方法抽取维基百科文本中的语义信息,但是在抽取过程中实体识别造成的错[9]误将会造成语义关系的不准确,同时使用这种方法产生的语义关系效率低。为了解决[10]这个问题,Ruiz-CAsado首先借助用WordNet作为正例的数据源,如果两个名词在维基百科文本中出现,将这两个词映射到WordNet中,如果这两个词在WordNet中有语义关系,那么就将这两个词语义从文本中挖掘出来,通过这种方法作者挖掘出来的语义关[11]系正确率约60%-69%。[12]DBpedia项目主要利用的是维基百科主题页面的信息盒,作者Christianbizer通过自己开发的信息抽取框架来抽取信息盒的语义信息,将抽取的语义信息转化为RDF三元组。该抽取方法能够实时获取维基百科更新种子及时更新本地库的语义信息,并且通过后数据类型检测,启发式清理规则后处理等算法来提高抽取的质量。但是维基百科中的信息盒对于文章的覆盖率很有限,据统计含有信息盒的文章占全部维基百科文章的[13]50%,这样就导致了许多文章缺少对应的语义关系。信息盒的信息基本涵盖了对应文章的内容,但有些信息盒本身的数据缺少过期等因素造成信息盒的质量不高。YAGO不同于DBpedia抽取方式,而是使用自然处理语言处理维基语义信息,分别[14]抽取信息盒和分类网页的语义信息构建本体,作者FabianM在描述本体时没有使用[15]OWL,因为OWL语言中OWL-site及OWL—DL在描述大量的本体关系时不能表达 复杂的本体关系。作者也没有使用RDFS,因为RDFS是基于OWL描述语言的,虽然能够描述本体之间的复杂关系,但是只提供了原始的语义,不能提供动词的描述。作者通过自定义实体模型和二元关系,将构建的本体存储在数据库中。所以使用YAGO模型来表达本体之间的语义知识,这样不仅能描述复杂的关系而且克服了RDFS的单一性。[16]苏小康使用语义标签语义指纹来抽取维基百科中的语义,提出了使用语义标签和语义指纹来对语义知识进行形式化描述的方法。作者使用语义标签来表示维基百科中概念。用语义指纹来描述概念中的语义。每个指纹的大小通过使用统计的方法得到相关词群及每个词语对来刻画。在抽取过程前,为了保证语义知识提取的质量,作者利用空间向量模型对计算的主题进行了筛选。在抽取过程中作者考虑到维基百科重定向的特性提出了一种决定匹配模式,目的是能够提高匹配结果的准确性,但是维基百科其它许多相关概念并不是以重定向特性存在的,为了不忽略主题页面的其它重要链接信息,针对这个问题又提出了一种相关性匹配模式来克服绝对匹配的缺陷,该方法主要分为三部分,首先将主题页面建立“主题-概念矩阵”,再次用矩阵来计算相关度,最后根据阙值选取相关概念。[17]伍成志主要使用数据库法来抽取维基百科中的语义,作者直接从维基百科站点下载维基百科转存数据,将下载的数据利用数据库管理技术,由SQL脚本导入到数据库中,作者最终获取了五个重要的数据库表,通过对五个表进行链接关系转化和分离,去歧及无关数据过滤等一系列操作。在语义计算方面,使用SQL语言来选择找到链接语义,用条目间链接和条目分类链接来计算语义。虽然数据库法来抽取语义能够保证数据的完整性,但是数据的组织格式需要作者在进行研究前进行大量的处理工作。[18]在语义计算研究方面,Strube和Ponzetto首先使用WordNet语义知识库来计算语义,但是WordNet知识库是由人工构建,具有覆盖面积小等缺点,不足以满足现阶段的语义研究。之后Strube和Ponzetto用维基百科替代WordNet作为语义数据源,算法使用维基百科的目录信息和文档的重叠度等信息来计算语义相关度。2007年,Gabrilovich[19]和Markovitch提出了明确语义分析ESA(ExplicitSemanticAnalysis)算法,该算法仿[20]照VSM(VectorSpaceModel,向量空间模型)的做法,把维基百科条目的解释文档转化为一个带有权重的由维基百科中的概念组成的向量,然后利用向量乘积的方式来计算条目间的语义相关度。有实验表明,基于维基百科的ESA算法在准确性上有更出色的表现(Spearman系数达0.72),该方法思想主要将文本分词后映射到维基百科概念,通过计算这些概念构成的空间向量的余弦值来计算语义度,但是对于较长的文本,其特征向量的维度也是不可预测的,并且需要对文本进行分词处理,时间和空间开销大。MichaelStrube对基于维基百科的两个节点的最短路径、文本信息和文本重叠三种算算进行改进,提出了WikiRelate语义计算算法。但是该方法只使用了分类目录的链接信息,忽略了页面包含的大量语义信息,而且计算的相关系数为0.59。DavidMilne分析了维基百科条目的解释文档中出现的内部链接结构,提出了一种只[21]使用链接关系来计算两个词语的语义相关度的方法。该算法首先将两个词语映射到维基百科的主题页面,在计算相关度时,主题页面入链使用基于维基百科链接的GoogleDistance方法。在链出方面,使用的是基于空间向量模型来计算。虽然该算法在语义计 算发面取得了不错的效果(Spearman相关系数0.69),但是该方法忽略的主题页面的文本信息的语义,不能进行一些语义概念的文本查询,扩展性有限。汪祥等人使用维基百科链接关系计算语义关系,主题页面含有大量的内部链接,作者将两个概念映射到主题页面,通过加工处理得到主题页面的页内链接和目录链接计算[22]两个概念的语义,并提出了WLT算法(WikipedialinkandTaxonomybasedmeasure),该算法在WS-353测试集上取得很好的结果。杨柳利用维基百科条目解释文档的内部链接,提出了基于互动百科的链接结构和分[23]类系统来计算语义的方法,该方法与Milne不同的是她把这些内部链接映射到链接所属的分类,利用形成的链接分类向量来计算词条间的相关度。国内对维基百科语义研究最突出的是北京邮电大学的李赟在他的博士论文中结合维[24]基百科多条关联路径来计算语义的方法,李赟提出的结合多条关联路径的语义相关度计算方法是对路径长度算法的一种改进,综合考虑了链接关系图中节点间的路径数、每条路径的长度以及不同节点或链接关系的权重等要素。李赟认为“如果两节点有较强的语义关系,那么这两点一定有多个关联路径,并且大部分路径的长度相对较短,路径所经过的中间节点或边拥有较高的权重”。1.3研究内容和方案1.研究内容(1)在数据预处理方面,由于维基百科语义数据源大,我们搭建了基于Hadoop云平台,将大数据处理技术应用到维基百科上,使用对象模型,得到维基百科主题页面所有相关信息,例如所有链入链出,主题页面的第一段(摘要段)等相关信息,为下一步的语义计算提供了语义知识。大数据处理是现阶段前沿的研究,本文的大数据处理技术希望能够为将来维基百科大数据处理方面提供借鉴。(2)在语义计算方面,通过建立对象模型抽取维基百科的链接结构信息及文本信息,提出一种基于链接结构和文本公共词条计算语义的新方法,我们命名为WLA算法(WikipediaLinkandAbstract)。WLA方法同其它语义计算方法进行实验对比,得出我们的方法在Spearman相关系数上令人满意。最后我们开发了语义搜索平台,并将WLA语义算法集成到平台中。(3)在语义搜索系统方面,开发了语义搜索系统的原型。将我们提出的WLA算法集成到系统中,实现了能够提供普通用户和语义研究人员进行语义搜索的平台。该搜索系统以维基百科对词语的解释为背景知识,包括语义计算,语义概念查询和文本注释三大功能。语义计算功能可计算出词条语义相关性;语义概念查询系统提供基于维基百科的语义词典功能,对偏生词,多义词,歧义词进行语义解释,可以帮助用户扩展知识,能够增强搜索引擎处理查询的能力;文本注释功能对短文本中的专有名称进行注解,只要文本中的词条在维基百科有与之对应的主题页面,那么系统会对该词条进行注解并加入链接功能。该原型可作为语义搜索相关研究的测试平台。 2.研究方案:(1)平台搭建通过查阅资料和阅读相关文献,了解国内外研究现状,深刻理解维基百科数据的处理方法。由于维基百科提供的离线数据巨大,单台机器无法处理,必须结合现有的Hadoop技术,搭建云平台进行处理。(2)语义抽取维基百科语义信息大数据处理问题涉及到Linux下Hadoop云平台集群的搭建及对维基百科数据处理方式及方法,通过现有的图书馆、中国期刊网、EBSCO等中英文文献数据库检索、阅读和分析,了解国内外和本论文研究相关的数据处理及语义研究现状的参考文献和资料。并结合开源的Wikipedia-miner项目及改进模型,将改进模型集成在云平台中,抽取语义信息,为下一步语义计算提供数据。(3)算法提出根据现有的知识及资料分析语义计算方法,以此知识为基础,形成本文的具体研究思路和概念模型及其研究假设。通过分析现阶段语义计算方法,结合维基百科的结构,利用维基百科主题页面的第一段(即摘要段)和链入和链出语义信息提出新的语义计算方法-WLA。(4)平台实现将提出的语义算法集成在语义搜索平台中,语义搜索平台开发需要收集相关的优秀平台案例、学习其先进的技术与经验以便进行进一步的分析和研究。对于相关平台进行拓展分析,进行系统规划,在Linux系统下搭建了我们的开发平台,使用IntellijIDEA开发工具,用Java语言设计了一个基于WLA算法的维基百科语义搜索系统(WLA系统)能够给普通用户和语义研究人员提供一个进行语义计算的语义检索平台。1.4本文组织结构本文共分五章,文章结构以及各章主要内容简单说明如下:第一章为绪论,论述了本文的研究背景及意义,介绍了处理语义知识的需求、存在的难点,及现有的语义知识资源及其特点,并简述了语义相关度计算方向的国外研究现状以及国内在这个领域的研究进展,并分析了国内外研究的典型成果,最后说明了本文的研究内容,研究方案。第二章相关技术介绍,主要包括与本文研究相关的四个方面的技术,首先对维基百科的发展及结构进行了详细的介绍,尤其是维基百科的主题页面,特殊页面及分类系统结构进行了详细介绍。之后对信息检索Lucene,Nutch,Hadoop技术的发展及结构做了详细的介绍。第三章详细介绍了利用维基百科计算语义相关度的方法,包括利用文档文本信息,维基百科的链接信息等。最后提出WLA语义计算方法,详细介绍了语义计算的数据抽取过程,WLA语义计算公式,并进行了实验分析。第四章基于维基百科的语义搜索系统的设计,依赖第三章提出的WLA语义计算算 法,并将该算法集成到系统中,实现了语义搜索的三大功能,主要有语义概念查询,词条语义相关计算及文本注释,并对每个功能界面功能进行了详细说明。第五章主要是总结与展望,对全文所做的工作进行总结,总结实现过程中遇到的重点难点,并对下一步的工作进行展望。 第二章相关技术研究随着计算机技术的不断发展,尤其是Web2.0突飞猛进,各种技术及应用应运而生,本章主要介绍了四个与本文相关的应用技术,分别是维基百科结构,Lucene分词与检索原理,Nutch的内核爬虫及结构,Hadoop结构及运行原理等相关内容。2.1维基百科随着互联网的快速发展及普及,出现了各种各样的Web应用,维基百科是最著名的Web2.0应用之一。维基百科的英文名字为Wikipedia,是Wiki和encyclopedia的结合形式,Wiki全称为WikiWiki,来源于夏威夷语的WeekeeWeekee一词,原为“快点快点”的意思。中文多译为维基,“维”字义为系物大绳,扩展意思为网,可做互联网之意,[25]“基”为万物之本,维基百科的含义解释为互联网中装载万物的百科全书。维基百科不是专家学者完成的,而是在大量的志愿者协作下完成的在线百科全书。维基百科是一个动态、自由访问和编辑开放网站,具有质量高、覆盖广、实时演化和半结构化等特点,这种运行特点使自身迅猛发展,条目数量不断增加。截止2014年10月,条目数最多的英文语言版本已有460万个条目,而全球271种语言的总条目数达到2000万个,网站内容修订次数累计达8.6亿次,在线注册人数约3000万人。维基百科各语言版本发展并[26]不均衡,其中前15名语言版本总条数占的维基百科总条目的71%,主要语言版本及条目数量如图2-1所示。现在成为规模最大且可在线编辑的多语言网络百科全书之一。维基百科网站搭建在MediaWiki引擎上,是一个知识共享平台。维基百科主要有三个特点,第一是自由编辑,任何用户都可以能够简单快捷的编辑页面,无需注册并且不受语言限制,能够简单快捷的编辑页面;第二个特点使更新速度快,尤其是世界上发生的大事都会被社会高度关注,并且内容不断更新,并且每次更新都保留历史编辑记录;三是数据量大,知识记忆性强,信息全面,涵盖了地理,历史社会科学等各个领域,并对每个事件详细记录发生过程及结果。 图2-1维基百科主要语言版本及条目数量维基百科里包含许多页面(也做条目),页面是维基百科的基本单位。页面存储格式由维基百科的贡献者合作编辑完成并采用符合WIKI规范的文本源代码形式,在维基百科中以网页形式发布,每个网页对一个实体进行了详细介绍(如下图2-2所示),该页面是对天津理工大学实体的详尽描述,该页面主要由标题,文本信息,目录结构,信息盒,链接及分类等信息组成。标题在维基百科中用唯一的ID(数据库中用字段page_id表示)来表示,页面开头的第一段(我们称为摘要段)是对主题关键词概念的定义和基本描述。而本文中就是使用摘要段的文本信息进行语义计算,我们使用公共词条进行语义计算,例如两个主题页面的摘要段同时出现“计算机”词条,那么我们就认为这两个主题页面有一定的语义关系。目录结构是对后续章节文本段落概括,每个章节分别围绕主题从各个角度展开具体阐述。页面右半部分是由固定格式的信息框(也做信息盒)来保存结构化信息,信息框通常会附带一个与实体有一定关联的图片,图片下有两列数据,其中第一列为属性名,第二列为属性值。页面还包含指向分类图或其他解释文档的超级链接等信息。 图2-2天津理工大学主页维基百科中的页面还含有两种特别的页面--歧义和重定向页面,这两种特别的页面在维基百科中起到重要的引导性的作用。歧义页面起到消除歧义的作用,该页面含有对一词多义的多种解释,例如“天花”通常指有天花病毒引起的烈性传染病(如下图2-3所示),也可以指建筑物的房顶,还可以指玉米的雄蕊,所以这种情况需一个消歧页面列出所有的词条解释供浏览者选择阅读。图2-3歧义页面在现实世界中,由于人们语言、习惯、行为方式不同对某一个实体称呼也不同,导致一个实体可能会有多个同义词、别名、简称等多个概念。维基百科中重定向页面就是 用于处理这种情况的,将相同含义不同表述的概念用同一个页面来显示。例如用户输入“燕京”时,系统能够自动导航到北京市页面中,从而实现相关页面可以以多个名称进行访问,具体的重定向举例及页面如表2-1所示表2-1重定向举例维基百科中采用了自由分类条目定义的方法,页面都属于一个或者多个分类,每个分类又属于另一个或者多个分类,分类关系较为灵活,但是不会出现环路现象。如果把每个分类条目看成点,继承关系看成边,就会形成有向无环的分类图。同样每个页面主题看成一个点,把指向该页面的入链和指向其它页面的出链看成一条有向边,就会形成巨大复杂的页面链接有向图,如果以某两点为中心将维基百科抽象看成分类和页面链接有向图,那么维基百科的结构如图2-4所示。图中黑色圆圈是我们任意选取主题页面作为图形结构的参考点,该结构图排除了维基百科中的信息盒、图片、多媒体、工具、帮助、讨论页面及已损坏的链接等信息。从下图我们可以看出维基百科有丰富的链接信息,本文计算语义时也充分利用了这些链接信息,借用GoogleDistance距离算法思想来计算语义。 图2-4维基百科结构图2.2Lucene技术在语义研究方面,我们使用的是维基百科数据做语义源,但是维基百科数据之大,无论性能多高的单节点机器来处理数据都很吃力,所以我们借助目前最流行的Hadoop技术来处理数据,这样能对大数据轻而易举的进行处理。另外,在处理数据后我们还需要对数据进行检索,我们使用了全文搜索引擎包Lucene技术进行语义检索,并对Lucene应用之一Nutch做了详细的介绍。下面我们简单的介绍这三种技术。(1)Lucene简介Lucene最初是由资探全文检索专家DougCutting负责编写的,DougCutting曾经在Apple,Yahoo等许多大公司任职,发表过大量的有关信息检索方向的论文,拥有信息检索(IR)领域的丰富知识和实践经验。Lucene的名字源于DougCutting的妻子Middle[27]Name,发音为“Loo-seen”。随着项目的不断发展和应用,在2001年9月,DougCutting将Lucene捐献给了Apache软件基金会的一个子项目Jakarta,在该子项目的不断支持发展下,成为一个高质量的Java开源软件。开始该软件是使用Java开发的,不过由于开源和它的强大优势,吸引了很多的志愿者或开发者参与其开发,逐渐被翻译成C#,C++多种语言版本,目前官网的Java版本已经达到4.8.0,考虑高版本的不稳定性,本文使用最稳定的版本3.5.0。同时基于Lucene的各种应用也随即出现,最著名的如Nutch(网络爬虫),Hadoop(分布式计算云平台),这样增加了Lucene社区无穷的魅力。 (2)Lucene结构Lucene的建立索引和检索处理过程如图2-5所示,首先对带索引文件进行语法分析等一系列处理后,对处理后的文件建立索引,将建立的索引存储到索引库。用户通过查询语句对文件内容进行检索,Lucene会对查询语句进行语法分析,分析后对索引库进行检索,将符合条件的检索结果根据相关性大小返回到用户。索引1-4查询语句带索引文件搜索a-f1a语言处理返回结果语法分析索引2f4db3ce索引创建索引存储索引搜索排序图2-5Lucene建立索引和索引搜索流程图Lucene的语法分析工具位于org.lecene.analysis包中,该包中包括了一套完整分析体系以及可扩展性良好的结构。这里需要涉及到语言的自然处理的知识,需要对文档内容进行词汇单元化处理,将文本的每个单词转化为基本形式(词形归并),例如对文本取词,去标点,去掉停用词,大小写转换,词干还原等,分词后得到的词项可以作为倒[28]排序结构中词项词典的部分。语法分析中最重要的是分析器,Lucene提供了几个主要的分析器,分析器的名称及分析原理图表2-2所示。表2-2Lucene主要的四种分析器虽然Lucene提供了四种分析器,但是各有优缺点,下面我们拿对英文文本做一个示例,对文本“TianJinuniversityoftechnology,myemailisliupengjielove@126.com,myisQQ123456788”进行分析处理得到的词项如下表2-3所示 表2-3英文分词结果分析器分析结果WhitespaceAnalyzer[TianJin][university][of][technology,my][email][is][liupengjielove@126.com,my][is][QQ][123456788]SimpleAnalyzer[tianjin][university][of][technology][my][email][is][liupengjielove][com][my][is][qq]StopAnalyzer[tianjin][university][technology][my][email][liupengjielove][com][my][qq]StandarAnalyzer[TianJin][university][of][technology,my][email][is][liupengjielove@126.com,my][is][QQ][123456788]中括号中内容为分词后得到的每个词项,由上表我们得出,WhitespaceAnalyzer分析器在英文文本分析中,只根据空格拆分单词,不能进行大写小转换,去停用词等。SimpleAnalyzer能进行大写转换,但是将TianJin专有名称转化为小写,而且不能去停用词。StopAnayzer虽然能去停用词,但是它的缺点同SimpleAnalyzer,将TianJin专有名词转换为小写,而且对邮箱,数字等信息当做停用词去掉了。StandarAnalyzer分析能识别邮箱,数字等专有名字,在整个分析中,StandarAnalyzer分析效果最好,但是也存在着缺点就是没有去除停用词,在分词后会产生大量的无用信息,会减慢检索速度,所以需要对其改进,需要自定义停用词。由于Lucene是国外开发的,主要用于英文文本分析,对汉语的分析却不尽人意,下边是这四种分析器对汉语“天津理工大学,我的邮箱是liupengjielove@126.com,我的QQ号为123456788”语句的分析结果如下表2-4所示表2-4中文分词结果分析器分析结果WhitespaceAnalyzer[天津理工大学,我的邮箱是liupengjielove@126.com,我的QQ号为123456788]SimpleAnalyzer[天津理工大学][我的邮箱是liupengjielove][com][我的qq号为]StopAnalyzer[天津理工大学][我的邮箱是liupengjielove][com][我的qq号为]StandarAnalyzer[天][津][理][工][大][学][我][的][邮][箱][是][liupengjielove][126][com][我][的][qq][号][为][123456788]从表中我们看出,Lucene的分析器不适合中文分析,即使效果最好的StanderAnakyzer分析器对中文分析的结果显然不适合,在使用Lucene对中文分词时需要借助第三方分析器来进行,比较成熟的中文分析器如庖丁解牛分析器,或者借用搜狗词库进行分词。对文本进行分词后,下一步Lucene需要对分词后结果建立索引,建立索引最重要的两个概念是文档(Document)和域(Field),文档是Lucene索引和搜索的原子单位,代表一种逻辑文件,经常和一个物理文件对应,例如.txt文件,.doc文件,为Lucene提 [29]供要索引的文本内容。文档包含一个或者多个域,域是“真正的”检索内容,存储来自数据源的数据内容。事实上,这种Document-Filed的结构,和许多关系型数据的存储格式差不多,将Lucene的索引看成数据库中一张表,文档看成表中一条记录,域看成每条记录中每一个段。当对多文档建立索引时,为了减少索引数量及提高检索速度,Lucene整个索引的存储格式使用倒排序索引。倒排序索引的基本思想见下图2-6所示,左部分称为词项词典,也即是域的具体取值,右边是是文档的ID号,在倒排序索引中,每个文档都有唯一ID号来表示文档。本文对主题页面的摘要段文本信息使用Lucene进行分词并建立索引,详细内容在下一章节中讲解。图2-6Lucene倒排序结构Lucene在检索索引时,提供了基本搜索方式和高级搜索方式,基本的搜索方式主要通过Lucene提供的API来实现,例如对索引中的特定项进行搜索(TermQuery类),缺少对某些字母的通配符查询(WildcardQuery类),模糊查询(FuzzyQuery类)等。但是有些项目使用基本的搜索方式仍然无法实现,例如按照特定的域来排列搜索结果,而不是根据搜索结果的相关性来排列,这事需要使用高级的搜索功能,高级搜索功能包括对多个域进行排序,跨度查询及搜索过滤等。2.3Nutch技术随着Lucene开源项目的不断发展,DougCutting在Lucene基础上开发了搜索引擎Nutch,该项目首先发布在自己的主页上,之后又发布在SourceForge。现在已经成为Apache基金Lucene下一个子项目。Lucene不是一个完整的应用程序,只是一个全文检索的软件包,提供开发接口,而Nutch是一个完整的应用程序,纯Java开发,具有平台无关性等优点。Nutch的核心包括一个网络蜘蛛,网络中蜘蛛有三大功能:HTTP下载模块,链接分析模块和下载控制模块。HTTP下载模块使用HTTP协议下载,获取网页 [30]内容并存取;链接分析模块能够提取下载网页中的超链接,用于后续页面入口;下载控制模块主页负责访问队列调度,更新策略及网页下载顺序。网络蜘蛛的操作流程如下图2-7所示。链接分析模块URL数据库网页数据库访问队列HTTP下载模块结果队列HTTP下载模块下载控制模块HTTP下载模块图2-7网络爬虫流程图网络爬虫首先从URL数据库中获取爬取入口,进入访问队列,下载控制模块根据空闲HTTP模块分配URL,这时模块会新建下载任务并启动,获取相应的网页存入网页数据库,为后续建立索引做准备。链接分析模块会分析网页数据库网页内的链接,并将[31]获取的链接加入到URL数据库中。在Nutch体系中还存在一系列的操作命令,例如admin用来创建一个新的web数据库,inject命令用来添加入口链接,fetch按照HTTP协议访问互联网,获取网页数据内容等。Nutch中使用广度优先和深度优先算法对互联网链接网状结构进行访问,从广度算法角度来说广度优先是为获取更多的不同网站,从深度优先算法来讲为获取更多的站内搜索。下图2-8是我们搭建Nutch系统后对天津理工大学网站爬取分析后的检索结果,从对Nutch检索结果来看,检索结果只是关键字匹配结果。 图2-8Nutch检索结果2.4Hadoop技术今天我们生活在一个大数据时代,无论在科学研究还是应用开发方面,分析海量数据需求的应用越来越变的普遍。2004年,搜索引擎和开源全文检索包Lucene之父DougCutting一直困扰检索系统平台的性能的可靠性,在这时Google公司发表了GFS文件系[32]统和MapReduce编程模型论文,在学术界引起了非常大轰动。DougCutting历时2年开发了Hadoop,Hadoop名字由来是他儿子的玩具大象名字。Hadoop的实现使搜索引擎和开源全文检索包Lucene性能大大提高。经过不断的发展,越来越受到人们喜爱,因其该技术采用是无共享大规模集群系统,具有良好的性价比和可伸缩性,易于理解和使用,目前Hadoop已经成为云计算最常用的技术。国内外大大小小的公司都加入其行列之中,在国外Google在全球知名大学开设Google模式云计算编程课程,并直接使用Hadoop技术搭建实验环境供学生做实验。在国内淘宝,腾讯等大型互联网公司也都在进行Hadoop的研究和应用 Hadoop是一个能够对大数据分布处理的软件框架,主要有HDFS文件系统和MapReduce分布式数据模型处理。Hadoop框架主要使用的是主/从模式。在一个配置完整的集群中要有NameNode,DataNode,SecondaryNameNode,JobTracker,TaskTracker等角色。在主节点主要是运行的是NameNode,SecondaryNameNode,JobTracker后台程序,NameNode,JobTracker在大型集群中会被分布在不同的节点上,DateNode,TaskTracker运行在从节点上,如图2-9所示,NameNode主要对内存及I/O进行管理,是HDFS的守护线程,负责数据块的分割记录及在数据节点的分布情况,但是NameNode是单节点的,如果该节点宕机会影响整个集群的运行,为了避免在这种情况的发生,用SecondaryNameNode来监控辅助集群正常运行,它与NameNode实时进行通信并保存HDFS元数据的快照,当NameNode出现故障时用手动切换,使数据损失降低到最小。DataNode是运行在每个服务器的后台程序,主要负责数据的读取操作。JobTracker主要负责Hadoop集群的任务分配,并且监控所有运行的Task,一旦Task出现故障,会重新开启这个Task保证该任务顺利完成。TaskTracker与负责数据存储的DataNode相结合,主要管理Task任务,每个节点仅有一个TaskTracker,但是每个TaskTracker可以产生多[33]个Java虚拟机用于并行处理多个任务。SecondaryNameNodeJobTrackerTaskTracker浏览器NameNodeDataNodeJava虚拟机HadooptoolJava虚拟机Linux/Windows操作系统Linux/Windows操作系统服务器服务器图2-9Hadoop结构图Hadoop并行处理主要数据主要使用MapReduce分布式模式来处理,采用“分而治之”的思想,将大数据切分成小数据分发给每个节点,每个节点处理完数据后整合最终得到结果。中间的处理过程主要有两个函数来负责,一个是map函数,将大规模数据分解成多个数据,将多个数据进一步分解成键值对的形式进行处理,处理结束后由reduce函数进行汇总合并,处理过程如图2-10所示。 输入Mappers中间数据Reducers输出SpilteMap()Reduce()SpliteMap()Part()SpliteMap()Part()Reduce()SpliteMap()图2-10MapReduce处理过程对于每一个并行计算而言,大规模集群需要一系列操作才能完成,主要操作有任务调度,本地计算,洗牌(Shuffle)过程,对于一个MapReduce任务调度任务是由一个JobTracker和多个TaskTracker负责,JobTracker主要负责调度任务,TaskTracker负责任务执行。本地计算是由Spilte根据HDFS数据块大小生成多个Map。而洗牌过程是对map函数的运算结果根据一定的算法重新组合,目的是为了简化Reduce过程。Hadoop还提供了许多管理界面,能够方便管理员直观查看Hadoop的运行情况,例如JobTracker和作业情况。随着Hadoop的发展,不仅自身足够强大而且还衍生出了Hadoop族群,例如HBase,Hive,Pig等,这些相关项目对本文研究无关这里不再进行详细介绍,有兴趣的可以查找相关资料。 第三章语义相关度的研究词语语义相关度是指两个概念间有关联程度,比如美国和乔布斯,再如物理和爱因斯坦。判断两个词条的相关性是当前语义搜索和自然语言处理领域中遇到的一大难题。本章主要介绍了目前国内外语义计算方法,详细介绍了基于文本和链接信息来计算语义相关度的方法,并在本章的第三部分提出一种新的语义计算方法,并命名为WLA方法,在该部分详细介绍了对维基百科的数据数据处理,算法的提出及实验验证等内容。3.1基于文本的语义相关度[34]在语义计算方面,语义研究者首先考虑的是用文本来计算语义。Resnik计算概念的相关度使用的是概念出现在文本中概率,使用最小的共同子集作为共享信息程度的一种模型来计算语义,公式(3-1):res(c1,c2)ic(lcs,)(3-1)c1c2在Wikipedia中,考虑一种内在的依赖于分类树的层级结构信息内容的衡量方法,而不是计算信息内容在一个文本集中发生的概率。这种方法被证明和人类判决关系更为密切。在层级结构中一个分类节点n的内在信息内容是作为下义词的一个函数,即hypo(n)是下义词的节点数n,C等价于层级结构中观念节点的总数,具体公式(3-2):log(hypo(n))1(3-2)ic(n)1log(c)[35]MichaelStrube使用了Lesk文本重叠函数关系来计算两个词之间的语义关系,这[36]种方法实质是对Banerjee&Pedersen解释重叠方法的扩展。这个方法通过考虑一个层次结构的相关概念的扩展概念注释来计算相关概念。在维基百科中,因为没有给出相关文本类别的页面,文本重叠方法只使用在主题页面中。具体的过程是W和W代表两个121212文本t,t单词组定义,over(t,t)重叠度的值用来计算n个短语的第m个的m值。n以便让Lesk方法适应维基百科,使用维基百科的注释和主题文本计算,通过应用一个双重标准化步骤的线性关系给出重叠度,并且规范化文本长度的总和,以正弦双曲线的输出值来减少离群值的影响从而提高准确性,具体的公式如(3-3): relate(t,t)tanh(overlap(t1,t2))(3-3)gloss/text12length(t)length(t)12[37]现阶段语义计算的研究中,EvgeniyGabrilovich等人首先将文档向量法(vectorspacemodel)(VSM)使用在基于维基百科数据的语义计算中,并提出了基于Wikipedia的ExplicitSemanticAnalysis(ESA)算法,该算法将维基百科文档表示成高维向量词,并使用tfidf给高维向量词赋予不同的权重,tfidf计算公式(3-4):Ntf-idft,dtft,dlog()(3-4)dftf是词条t在文档d出现的频率,log(N/df)代表是指逆文档频率,其中N代表总的文t,d档数,df代表出现该词条的文档频率。最后计算高维度空间中的夹角余弦值来计算相关度,虽然该方法在计算语义相关度方面能够达到较高的精确度(其Spearman相关系数高达0.72)。但是操作复杂,首先需要先把维基百科所有文本分词,赋予不同的权重后建立索引,之后将需要将进行语义计算的文本切分转换成对应维基百科的词项,这些词项构成的高维度向量计算语义,该方法只利用统计特征而无法处理一词多义等问题,并忽略维基百科丰富的链接语义信息,时间和空间开销都比较大只适用文本的语义计算,不适用于词条的语义计算。3.2基于链接的语义相关度在使用文本信息计算语义的基础上,语义研究者又考虑到其它信息来计算语义的方[38]法。首先刘群使用词典WordNet的分类体系来计算语义,利用分类体系树状节点义原上下位关系计算相似度,主要用到语义的距离来计算,公式如(3-5):Sim(P,P)(3-5)12Ldd代表义原P,P在义原分类体系中路径的长度,是一个可调参数。12[39]Davidmline等人利用维基百科中的链入链出信息,提出了WLM(WikipediaLink-basedMeasure)算法。该算法将两个词语相关度映射到维基百科的主题页面。在主题页面链入方面,使用了基于维基百科链接的GoogleDistance方法,计算公式如(3-6):log(max(A,B))log(AB)sr(a,b)(3-6)log(W)log(min(A,B))其中a,b是要计算的两个主题页面,A和B分别的是概念文章的入链数量,W是所有 维基百科的主题页面数量。在主题页面的出链方面,WLM算法采用空间向量模型来计算,对于每一个出链的权值用公式(3-7)计算:WW(st)log(3-7)TS代表主题页面,t是主题页面的出链,T是所有包含链接t的主题页面的集合。但是该方法只使用链接计算语义,忽略了主题页面的文本信息的语义,不支持词条的语义概念查询。[40]汪祥等人在DavidMilne基础上提出了WLT算法,该算法是对WLM一种算法的改进,考虑维基百科的文章的直接链接,用公式(3-8)来表示a到b的这种单向相关系,用来保证公式的值小于1,n是a主题页面所有链向b的所有链接数。M是a主题页面的所有链接数,nSim(ab)(3-8)DIRM作者根据实验数据得出单向的取值为0.3,因为链接是有方向的,作者使用的双向链接来计算语义度,所以最后用公式(3-9)来表示a和b的双向直接链接的相关性,Sim(ab)DIRSim(ba)DIR(3-9)Sim(ab)2汪祥在对维基百科分类目录的链接结构处理上,在结构上没有考虑链入,直接考虑的是链出结构;在计算方法上不再采用空间向量模型计算而是采用基于分类体系结构的算法,具体计算方法同公式(3-5),最后的WLT语义度计算通过使用(3-5)和(3-9)加权求和得到,公式如下(3-10):sr(a,b)Sim(ab)(1)(Sim(l,b))Sim(a,l))(3-10)WLTDIRLLAlBL(01)是调节参数,l代表主题页面的A的链接,Sim(l,b)和Sim(a,l)指使LL用刘的计算方法(3-5),Sim(ab)是指公式(3-9)。DIR3.3基于文本和链接的WLA语义相关度通过对文本和链接信息计算语义的方法分析后,本文结合了ESA和WLM的语义计算算法的思想,提出了WLA(WikipediaLinksandabstract)算法。在主题页面文本信息方面使用ESA的思想,用主题页面第一自然段文本信息的公共词条计算语义。在链接结 构方面使用WLM算法计算语义,这样克服单纯使用文本信息或者链接结构来计算语义的缺点,我们的方法不仅能提供两个词条的语义度,还能提供单个词条的语义相关概念的查询,语义相关概念是指利用主题页面的摘要段对词条所有的语义进行解释,详细内容会在下一部分详细说明。3.3.1数据处理维基百科是一个开放式内容共享的知识平台,多用户在线自由创建页面、更新页面、贡献知识,维基百科被视做一种质量较高的语料库。由于可编辑并随时间演化特点,维基百科每天都会有内容更新,数据不断增加,所以维基百科官网每隔一二个月就会提供最新的完整副本数据快照,以wiki文本和元数据的形式嵌入到在XML文件,并通过官网发布,这样就可以通过网址下载。本文研究的数据是2013年12月05日提供的英文离线数据包,解压后约45G数据。由于维基百科转存数据比较大,单台机器数据处理能力[41]满足不了我们的需求,因此搭建了基于Hadoop的云平台,云平台包括一台主节点,两台从节点,并将Davidmline提供的开源维基百科发掘工具Wikipedia-Minertookit集成到云平台进行数据处理,花费了十三天处理数据,数据处理流程如图3-1所示。图3-1维基百科数据处理流程结合Davidmline提供的开源的发掘工具Wikipedia-miner,使用提供的API及改进对象模型。首先对下载的数据页面内容进行噪音的过滤处理(例如信息盒,模板,图片),之后对维基百科的主题页面和分类链接进行处理。主题页面主要处理页面的入链、出链、重定向链接、歧义链接和主题页面的第一段文本内容。分类链接主要处理主题页面与所属类别的链接关系。为了能够方便使用结构化数据,我们使用面向对象的Java技术,结合Davidmline的工具和方法为研究提供一系列应用接口并根据我们的需要建立一整套对象模型,主要有主题页面类、类别页面类、重定向页面类、消歧页面类、维基百科类页面和页面基类,所有类及集成关系如下图3-2所示。主题页面模型可以获取所有指向该主题页面的链入链接,指向其它主题页面的链出链接及主题页面的第一自然段(即 摘要段),维基百科基类模型主要用于记载平台的配置信息,数据存储位置和维基百科所有主题页面索引信息,这里需要指出的是主题页面的索引信息主要用于快速找到主题页面。重定向模型主要用于重定向,消歧模型主要用于消歧。最后使用建立的模型开发了一套语义搜索系统,具体的功能会在后半章节讲解。图3-2类集成关系3.3.2WLA语义计算算法我们要计算两个词条的语义度,使用我们先前建立的维基百科基类模型主题页面索引快速搜索到这两个词条对应的主题页面。我们拿“computer”和“internet”两个词条为例,获取这两个词条的主题页面后,使用主题模型获取主题页面的第一段(既摘要段)和主题页面的所有链入链出信息。首选我们对第一段使用Lucene包工具进行分词并建立索引,由于Lucene分词工具本身存在一些缺点和不足,所以在使用之前进行了改写,比如自定义停用词,词干还原等去噪处理,得到两个候选主题单词组T,T,并对得到12的两个单词组建立索引,部分索引结构如图3-3所示。图3-3索引结构 通过对索引结构的分析,书写代码得到单词组的T,T的长度为N,N(既单词1212的总数),两组的公共词的个数n,nmin(N,N)(索引结构中下划线既是公共词)12和公共词的词频tf,tf,i1,2,....N,Nmin(N,N)(单词后边的数字代表词频),1i2i12代码的伪代算法如下所示:计算两个词条语义相关度时,我们需要对每个公共词加权,因此我们使用公式(3-4)的思想,并对公式(3-4)公式进行了改进,加权公式如下:NN12)TWtflog(j1,2,i1,2.........(3-11)jiinTW代表在T单词组中第i个公共词的权重,因为我们计算的是两个词条的语义jij度,没有用到文档总数,所用用NN代替公式(3-4)中的文档总数N,用公共词的12个数n代替df。我们使用两个词条对应的摘要段来计算两个词条的语义度的计算公式如(3-12)所示:MAX(N,N)nSim(a,b)12TWTW(3-12)aMIN(N,N)i11i2i12a,b是指要计算语义的两个词条,T,T是指两个词条对应摘要段经过分词后得到的12单词组,N,N指单词组T,T的单词数量。经过对两个词语语义度相关性研究,发1212现任意两个词语都有一定的语义,只是语义强弱不同。考虑到当两组的公共词的个数n为零时,这项值为零,所以我们所以我使用MAX(N,N)/MIN(N,N)做为调和数,1212 避免出现语义度为零的情况。公式(3-12)不仅能计算两个词条的语义度,还能提供单个词条的语义概念查询,语义概念指的是该词条包含的一些语义含义,因为我们收集的数据包括文本信息(摘要段),使用摘要段对词条进行语义解释。在下一章节系统展现做了详细的说明。两个词条对应的主题页面包含大量的链接结构,链接结构含有丰富的语义知识,所以我们使用的公式(3-6)计算这两个词条的语义度,公式如下:log(MAX(A,B))log(AB)Sim(a,b)in(3-13)log(W)log(MIN(A,B))这里a,b代表两个计算语义的两个词条,Sim(a,b)代表这两个词条对应主题页面入in链的语义度。A是词条a对应主题页面的入链数量,B是词条b对应主题页面的入链数量,W是维基百科主题页面的数量。由于主题页面还有链出结构,我们改进了DavidMilne出链计算语义的方法,直接使用公式(3-6)方法而不再使用(3-7)的方法,这样做的好处是不需要再去计算维基百科中包含链接t的所有主题页面的集合,只需要计算单个页面的出链,在时间和空间上开销小。最后使用链接结构计算语义的公式如(3-14)下:Sim(a,b)Sim(a,b)(1)Sim(a,b)(3-14)linoutSim(a,b)计算方法同公式(3-13),不同的是A是代表词条a对应主题页面的出链数out量,B是词条b对应主题页面的出链数量。最后我们使用公式(3-12)和(3-14)来计算词条的语义度,并将该方法命名为WLA(WikipediaLinksandAbstract),WLA的语义计算公式如(3-15):WLASim(a,b)(1)Sim(a,b)(3-15)sim(a,b)al3.3.3算法测试评价语义关系的“黄金标准”是人工标记的数据集,所以我们使用了标准测试集WordSimilarity-353对我们的算法进行评估。我们随机选取了160对不同领域的词语对我们的算法进行测试,使用Spearman相关系数来衡量我们的算法,将结果用Matlab绘制成图,图3-4是使用公式(3-14)计算的结果。从图中可以看出,当为0.6时图像达到最高点,也就是相关系数最大,说明维基百科中的链入链接的语义性强于链出链接的语义。 图3-4参数取值最后使用公式(3-15)来计算词条语义,通过对数据结果进行分析,表3-1是部分数据结果,前两列是要进行语义计算的词对a和b,第三列是人工标准评分,Sima(a,b)是用公式(3-12)计算的结果,Siml(a,b)是使用公式(3-14)计算的结果,因为公式(3-14)计算的结果是区间[0,1],考虑到Sima(a,b)计算结果为[0,10],方便与第四列加权求和使用公式(3-15)进行语义计算,对Siml(a,b)列进行归一化处理将结果转化为区间[0,10],最后一列是使用公式(3-15)计算的结果。最后把公式(3-15)计算的所有结果绘制成图(如图3-5),图中最高点说明语义相关性越大,图越低说明语义相关性越小,所以我们从图3-5取图像的最高点,选取为0.6。从图中我们得出使用我们提出的语义计算算法WLA在计算语义时Spearman相关系数达到0.68。图3-5参数取值 表3-1相关计算结果词语a词语b标准分值Sima(a,b)Siml(a,b)WLASim(a,b)tigercat7.359.543.577.15bookpaper7.466.623.85.49professordoctor6.628.275.967.34stockmarket8.081.074.532.46tennisracket7.569.645.698.06moviecritic6.736.246.236.24alcoholchemistry6.736.245.836.08drinkear1.314.985.415.15birdcrane7.389.286.368.11brothermonk6.271.206.123.17craneimplement2.693.62.363.10monkoracle5.006.065.415.80foodrooster4.425.205.495.32shorewoodland3.081.245.142.80coastforest3.153.984.534.20ladwizard0.921.172.371.65chordsmile0.541.703.412.38glassmagician2.083.805.164.34noonstring0.541.233.362.08tigerfeline8.009.114.917.43planetmoon8.089.482.756.79Spearman相关系数0.610.260.68我们使用Spearman相关系数作为衡量算法结果的指标,并同其它算法进行对比,Spearman相关系数越接近人工评分,说明算法在计算语义相关度越好。比较结果如表3-2。 表3-2各算法实验结果对比AlogrithmSpearman相关系数ESA0.72WLM0.69WLA0.68WikiRelate0.59LSA0.56WLT0.52WordNet0.35从表中可以得出我们的算法的Spearman相关系数比ESA和WLM算法低,但是相差不大,和最高ESA算法相差只有0.04。在语义计算中,0.04对语义相关性影响很小,将来应用到Web语义查询时,都会检索到相应语义结果,只是在语义排名显示上略有差别。但是我们的计算量要比ESA小,速度要比ESA快,因为ESA使用整个主题页面的文本计算语义,而我们只需使用第一自然段(摘要段),我们牺牲了准确度来提高计算效率。我们提出的WLA比WLM相关系数相对低的原因是我们的算法进行了功能的扩展,我们的算法能够使用摘要段对词条进行语义解释,因为我们模型收集了主题页面的摘要段,而WLM只能用链接计算相关性,忽略了维基百科文本信息(特别是摘要段)所含有的语义,不能对词条的语义概念做出相应的解释。将来算法应用到语义Web查询时,我们的WLA算法具有对词条语义解释的可扩展性,能够给用户提供友好的语义概念解释的界面,而WLM算法不具备我们的这种优势。我们从结果上看要比WikiRelate,LSA,WLT三种算法结果好,说明我们的算法在计算语义方面要好于这三种算法。我们还和WordNet进行了对比,说明了使用维基百科作为语料库比WordNet要好的多。 第四章基于维基百科的语义搜索系统设计语义搜索系统是全文搜索系统的细分和延伸,是将搜索引擎同语义网的相关技术结合来改善查询的结果,提供新的智能化搜索思路,提高信息检索的精确率以能够满足用户的需求。本章主要介绍了语义搜索系统的设计及功能,并将第三章提出的WLA语义计算算法集成到系统中。4.1系统设计4.1.1系统总体设计语义搜索系统主要运行在基于Hadoop云平台上,语义搜索系统主要有三大功能,包括词条相关查询,语义词条概念查询,文本注释功能,详细的功能解释在下一章小节详细介绍,基于Hadoop的云平台及抽取模型已经在上一章节介绍,系统总体架构如下图4-1所示:语义搜索系统词条相关词条语义概文本注释性查询念查询辅助基于Hadoop的云平台维类消主重页定基别歧题面向百页页页基页科面面面类面类类类类模类模模模模型模型型型型型图4-1系统总体设计图 4.1.2功能设计(1)词条语义计算功能系统使用WLA语义计算算法能够计算词条的语义度。首先用户输入要计算语义的两个词条,例如“计算机”和“英特网”,输入后点击语义查询,系统会调用云平台获取维基百科的文本信息和链接信息,使用这些语义信息来计算两个词条的语义相关度,将结果返回到界面。(2)词条语义概念解释功能。系统提供基于维基百科的语义词典功能,对偏生词,多义词,歧义词进行语义解释,可以帮助用户扩展知识,能够扩展搜索引擎语义功能。当用户输入词条时会自动提示相关的语义概念供用户选择最符合意图的概念进行搜索,而不是基于关键字最长匹配原则搜索,语义检索出的结果最符合用户的意图。(3)文本注解功能系统能对短文本中的专有名称进行注解。短文本中的词条在维基本科有与之对应的主题页面,那么系统会对该词条进行注解并加入链接功能,用户单击该词条,会跳转到对应的维基百科页面浏览该词条的有关内容,帮助用户更加了解词汇及扩展知识。4.1.3中间处理模型设计(1)词条语义相关度计算模块该模块负责词条的语义相关度计算功能,模块接收到前台用户提交的两个词条提交给云平台,云平台使用底层类模型来抽取两个词条对应主题页面的文本信息和链接信息,将文本和链接语义信息返回给模块,模块接收到返回的语义信息后使用WLA算法来计算语义大小。如果用户提交的请求,返回的结果按照相关性大小显示,而且显示标准人工集的大小,这样能够为语义研究人员提供标准参考。(2)词条语义概念解释模块该模块主要负责对词条语义概念解释功能,当用户提交一个词条时,模块接到请求转发给云平台,云平台根据请求的参数调用底层主题页面类,维基百科类及歧义类和重定向类搜索与之相关的主题页面,并返回主题页面的第一段及主题页面的链接信息,使用WLA算法计算出所有相关度大小并降序排列返回给用户所有概念解释阅读,帮助用户扩展知识。(3)文本注释模块该模块能对短文本中的专有名词,偏生词等词进行注解。首先对短文本分词,将分词后的每个词条通过云平台检索对应的维基百科数据,如果词条在维基百科中有对应的主题页面,对短文本中这个词条进行注解并加链接,如果用户想更加了解该注解的词条,点击词条可打开对应的维基百科主题页面进行浏览阅读,这样能够帮助用户充分了解该词条的含义解释,扩展用户的知识面。 4.2系统实施4.2.1系统运行平台本系统开发及运行基于Linux(Centos6.3版本)下操作系统,在Linux下搭建了基于Hadoop的云平台,Hadoop版本使用的是0.20.2版本,该版本属于Hadoop经典版本,稳定性好,包含的所有特性均可使用。Hahoop平台一共包括三个节点来实时处理数据为系统提供数据支持。主节点主要是使用的是8G内存,至强E5-2690(CPU)的高性能服务器,两个从节点主要使用的是两低配的台式机,下图4-2和4-3分别是云平台的没有运行任务的管理界面和实验环境的实物图。图4-2云平台管理界面图4-3实验平台实物图4.2.2系统开发及展现我们在Linux系统下开发了语义搜索开发平台,使用IntellijIDEA开发工具,用Java语言设计了一个基于WLA算法的维基百科语义搜索系统(WLA系统)。我们将WLA 算法集成在语义搜索系统中,下图4-4为系统首页,图4-4语义搜索系统主页用户进入系统首页后,出现语义搜索的主界面,用户点击概念按钮时,主界面动态切换成功能导航界面,如下图4-5所示:图4-5功能导航界面系统的文本注释功能是对文本中的一些专有名词及偏生词进行注释解释,并生成超链接功能,首先进入文本注释导航界面,如下图4-6所示: 图4-6文本注释导航界面点击开始按钮,系统动态切换到注解功能界面,在注解功能界面左半部分的文本输入框中输入一段文本后(如下图4-7),点击StartAnnotate按钮后,系统会调用注解功能模块将文本进行分词,将分词后的词条通过云平台的底层模型检索维基百科对应的主题界面,如果找到对应的界面则将该词条显示蓝色字体并且用中括号标记显示在注解界面。我们可以从图的右半部分看出注解后的结果,如果用户对这些加过注解的词条含义不了解时,可以单击注解的词条,系统会导航到对应的维基百科页面供用户浏览,以此能够提高用户的知识面。图4-7文本注释从语义分析功能导航界面导航进去到具体的语义分析功能界面,在功能界面中语义计算功能中要计算两个词条语义时,可以在输入框输入两个单词,如下图4-8所示,例 如要计算computer和internet的语义相关度,输入两个单词后点击semanticsearch按钮后,前台会把输入的参数传递给语义计算的模块,该模块会启动Hadoop云平台,云平台根据参数调用底层抽取模型来抽取维基百科中的语义信息返回给语义计算模块。语义计算模块使用WLA语义计算方法计算结果显示到界面中,下图的第二行代表为计算结果,第一行为标准数据集的计算结果,两者的比值显示在第三行,也就是我们提出的语义计算准确度达82.8%。图4-8语义相关性分析语义概念查询功能够提供对词条的多种语义解释,能够帮助用户扩展知识,例如对词条china语义概念解释,需要在searchword文本框中输入单词china,点击search按钮后,系统会调用语义概念解释模块,模块将参数交给Hadoop处理,经过底层模块处理得到相应的语义概念返回到界面,返回结果如下图4-9所示,系统显示china共有八种语义相关的概念解释。图4-9语义概念查询功能 图4-10WordNet语义概念查询同时我们的系统与WordNe(t如上图4-10)进行了比较,从图上得出WordNet对china的语义解释只有四种,而我们的有八种解释(图4-9),可以得出我们的系统在语义查询功能方面要比WordNet知识范围广,这也说明了使用维基百科在语义相关性研究方面要优于WordnNet。功能主界面还提供对多种相应的语义扩展功能,例如当用户选择expandquery下拉列表Alternative_label选项,系统将china和Alternative_label参数传递给云平台进行语义扩展查询,使用底层抽取模型能够选择维基百科中与china本意相关的话题文章,并返回到主界面中,如下图4-11显示了与china本意相关的所有相关主题。图4-11相关主题扩展功能界面 用户选择expandquery下拉列表Relation_topic选项时,系统使用语义计算模块,通过WLA语义计算算法计算所有的与之语义相关的主题,将计算的结果降序显示在主界面上,显示的结果如下图4-12所示:图4-12相关标签扩展功能界面4.3系统测试(1)测试方法主要采用黑盒的测试方法,黑盒测试又称功能测试,是根据软件的功能特性来选则测试数据,并能够对执行测试结果进行解释,主要关注软件的整体功能,同时也使用白盒测试中的路径覆盖测试。这里的功能测试主要可以发现以下故障:1.错误的/遗漏的功能2.界面错误3.数据结果错误4.程序初始化/终止条件错误为了防止由于一点的小错误,最后形成难以修改的错误,降低开发成本,前台页面之间的跳转测试主要采用边开发边测试的方法。这样能够及时测试并发现问题,能够对发现的问题立即排查改正。数据结果的测试主要测试WLA算法的准确度,确保语义搜索结果的准确度。(2)测试过程测试过程主要针对系统页面系统之间的跳转测试,页面跳转的流程图如下4-13所示: 系统首页系统导航界面语义分析语义概念文本注解返回相关大小显示语义概念显示注解结果图4-13页面跳转图对各个模块测试方法大同小异,主要是测试点击相应导航是否回跳,对于每种操作所可能造成的结果,与页面链接所能到达的地方进行路径覆盖测试。系统语义分析功能的测试用例有三个,分别是登陆系统首页界面,登陆导航界面,登陆语义分析界面。在单元测试的基础上,完成测试期间并且未发现错误。进入导航界面后可选择相关的功能,并返回相应的操作界面。进入语义分析界面时,可以通过语义分析能够返回结果,并提供一个返回导航界面的按钮,具体测试流程如图4-14所示:语义分析功能重新输入输入数据不全输入数据有误输入数据成功正确结果错误结果图4-14语义分析功能测试数据输入测试用例,应用到语义的功能上,数据输入完毕以后会返回相关信息提示,分别为数据不全,数据格式错误和输入成功。输入错误和数据有误时会有提示信息并要求用户重新填写正确的格式。测试用例选择完毕,进行白盒测试中的路径覆盖测试,以最重要的语义概念功能为例:1开始2首页3导航界面4语义概念功能页面 5输入词条6数据输入判断7语义概念模块调用8数据抽取9计算10结果显示11结束12语义扩展功能123451267891011图4-15路径覆盖测试图4-15表示语义搜索系统路径测试图,不同的操作使用不同的标号来表示。测试图的原理与系统的流程图一样,用来判断系统中用户的各种操作,目的是用不同的流程来寻找不同的路径。下表是测试的主要路径。路径的不同是由用户执行不同的操作,在路径测试中,路径测试的一个特色就是根据系统中的每个判断来决定路径的不同,以及大面积覆盖到不同的用例。表4-1路径测试测试用例真假执行路径11.2.3.4.5.6.7.8.9.10.11语义概念解释11.2.3.2.4.5.6.411.2.3.4.12.8.9.10.11语义扩展11.2.3.4.12.4 (3)测试结果1语义概念功能测试内容:判断语义概念解释操作:用户将词条输入到语义概念功能输入框。结果:语义概念解释成功。结论:测试成功。2语义概念扩展测试内容:判断语义扩展功能操作:根据用户选择扩展功能是否显示结果结果:扩展功能显示结果成功。结论:测试成功。 第五章总结与展望5.1总结语义搜索引擎在不断发展的网络信息资源检索中的地位日渐重要。语义搜索引擎能够真正了解用户的意图、目标明确,因此已成为获取专业信息的重要工具。然而怎样掌握用户意图,需要专门语义源来做支撑,语义源的选取对语义搜索的正确性至关重要,维基百科的出现正好解决了选取问题。维基百科运用Wiki技术,在数据挖掘、自然语言处理等领域广泛运用,用基于维基百科语料库或者所构建的语义知识库已经在在信息检索发挥了初步作用,本文就是选用维基百科作为语义源,通过分析维基百科结构链接结构和文本信息含有丰富的语义知识,结合目前现有的抽取技术实时抽取维基百科的语义知识,主要工作有三个方面:(1)对维基百科离线数据包进行结构化预处理,抽取出研究所需的语义知识,主要包括链接结构和文本信息;(2)通过对维基百科的链接结构和文本信息的分析,综合众家之长,提出了综合利用链接结构和文本信息公共词条来计算两个条目间的相关度,并命名此算法为WLA的算法;(3)将WLA算法集成到语义搜索系统中,并开发了语义搜索系统。在本文的研究工作中,也遇到了一些技术难点,通过仔细阅读资料和研究,这些难点都得以一一解决。本文主要解决的难点有:(1)对维基百科离线数据包的预处理。从维基百科官网上下载的离线数据包解压后40G左右,由于数据量巨大,任何单节点机器处理非常耗时费力,并且对维基百科数据的语义抽取也是也一个难点,而且会在中途出现失败,所以处理和抽取工作是一项艰难而复杂的工作。.本文通过阅读文献和研究之后,需要使用基于Hadoop的大数据处理技术和开源语义抽取项目技术来处理数据,终于解决了维基百科大数据的处理和抽取的问题。(2)提出语义相关度算法。通过改进对象模型,制定一套合理的抽取维基百科结构化信息的抽取接口,能够对维基百科实时抽取。语义抽取过程中,主要抽取文本和链接信息。通过分析研究目前的语义相关度算法,提出使用维基百科的链接结构和文本信息来计算词条的语义相关度,最后将算法集成到语义搜索系统中。5.2展望本文主要研究的是英文维基百科,然而研究工作中有许多要改进的地方。(1)我们的算法还有需要改进的地方,比如只是用了文本的第一段,虽然第一段很 具代表性,但还是不能足够代表整个主题页面,而且维基百科中并非所有主题页面的第一段都是摘要段,这就导致算法在某些情况计算结果不准确,这需要在计算语义时需要先对第一段筛选来提高算法计算结果的准确度,同时本文没有使用维基百科中的信息盒重要的语义知识,下一步研究会将信息盒的语义加入到算法当中。(2)我们的语义搜索系统也有不足之处,比如在系统的搜索效率上还有很大的提升空间,我们的系统直接根据参数实时抽取并计算,所以在一定程度上降低了搜索效率上,需要研究解决的问题是先搭建一个语义知识本体库,通过检索本体库来提高语义系统的检索速度,这也是我们下一步要研究解决的问题。 参考文献[1]张海粟,马大明,邓智龙.基于维基百科的语义知识库及其构建方法研究[J].计算机应用研究,2011,(8),pp:2807-2811.[2]崔琳.基于语义Web和Web挖掘的Blog智能检索系统研究[D].合肥:合肥工业大学,2008.[3]LennatD.,GuhaR.1990:BuildingLargeKnowledge-BasedSystems:RepresentationandInterenceintheCYCProject;Reading[A],Mass:Addison-Wesley.[4]GomaaWH,FahmyAA.Asurveyoftextsimilarityapproaches[J].InternationalJournalofComputerApplications,2013,68(13):13-18.[5]GabrilovichE,MarkovitchS.ComputingSemanticRelatednessUsingWikipedia-basedExplicitSemanticAnalysis[C]//IJCAI.2012,7,pp:1606-1611.[6]王汀,邸瑞华,李维铭.一种基于同义词词林的中文大规模本体映射方案[J].计算机科学.2014(5),pp:1.[7]罗志成,马费成,吴晓东.从维基分类系统构建中文语义词典研究[J].信息系统学报.2008,02,pp:68-77.[8]董强,董振东.基于知网的相关概念场的构建[A].全国第七届计算语言学联合学术会议,哈尔滨:2003,08.[9]http://wikipedia.jaylee.cn/.Wikipedia.WhatWikipedia[EB/OL].[2010-4-29].http://wikipedia.jaylee.cn/.[10]Ruiz-Casado,M.Alfonseca,E,AndP.Castells.AutomaticassignmentofWikipediaEncyclopedicEntriestoWordNetsynsets[J].InProceedingsofAWIC’05.[11]Culotta,A,Mccallum,A.AndJ.Betz.IntegratingProbabilisticExtractionModelsandDataMiningtoDiscoverRelationsandPatternsinText[J].InProceedingsofthemainconferenceonHumanLanguageTechnologyConferenceoftheNorthAmericanChapteroftheAssociationofComputationalLinguistics.pp:296-303.[12]BizerC,LehmannJ,KobilarovG,etal.DBpedia-AcrystallizationpointfortheWebofData[J].WebSemantics:science,servicesandagentsontheworldwideweb,2009,7(3),pp:154-165.[13]刘巧玲.维基百科上的语义搜索[D].上海:上海交通大学,2009.[14]SuchanekFM,KasneciG,WeikumG.Yago:Alargeontologyfromwikipediaandwordnet[J].WebSemantics:Science,ServicesandAgentsontheWorldWideWeb,2008,6(3),pp:203-217.[15]StaabS,StuderR.Handbookonontologies[M].Springer,2010.[16]苏小康.基于维基百科构建语义知识库及其在文本分类领域的应用研究[D].武汉:华中师范大学,2010. [17]伍成志.基于维基百科的知识查找系统的研究与实现[D].广州:华南理工大学,2012.[18]StrubeM,PonzettoSP.WikiRelate!ComputingsemanticrelatednessusingWikipedia[C]//AAAI.2006,6,pp:1419-1424.[19]ChristopherJohnson,CharlesJ.Filmore.TheFrameNettagsetforframe-semanticandsyntacticcodingofpredicate-argumentstructure[J].ACM,2000,16(28),pp:56-62.[20]S.K.M.Wong,WojciechZiarko,PatrickC.N.Wong.Generalizedvectorspacesmodelininformationretrieval[J].SIGIR'85Proceedingsofthe8thannualinternationalACMSIGIRconferenceonResearchanddevelopmentininformationretrieval,1985,7(11),pp:18-25.[21]WittenI,MilneD.Aneffective,low-costmeasureofsemanticrelatednessobtainedfromWikipedialinks[C]//ProceedingofAAAIWorkshoponWikipediaandArtificialIntelligence:anEvolvingSynergy,AAAIPress,Chicago,USA.2008,pp:25-30.[22]汪祥,贾焰,周斌等.基于中文维基百科连接结构域分类体系的语义相关度计算[J].小型微型计算机系统,2011,11(32),pp:2237-224.[23]杨柳,何婷婷,涂新辉.基于网络百科全书的中文关联语义知识获取[C].中国湖北武汉:中国中文信息学会,2010.[24]李赟.基于中文维基百科的语义知识挖掘的研究[C].北京邮电大学,2009.[25]赵飞,周涛.维基百科研究综述,电子科技大学学报[J].2010-05-30.[26]杨思洛邱均平.基于中英维基百科的网络引文分布分析[J].国家图书馆学刊.2012,6,pp:7-19.[27]邱哲,付滔滔,王学松.开发自己的搜索引擎lucene+heritrix[M].北京:北京邮电出本社,2009,pp:14-15.[28]刘运佳.基于Lucene和Heritrix构建搜索引擎的研究和示例实现[D].成都:电子科技大学,2008,pp:102-106.[29]陈燕.基于Lucene的全文检索系统的设计与实现[C].大连:大连海事大学,2013.[30]杨松梅.网络爬虫[J].硅谷,2009,(15),pp:1-2[31]丛庆.互联网舆情信息采集分析系统关键技术研究[D].天津:天津大学,2012.[32]吕诚.手机上网用户行为分析的关键技术研究与应用[D].北京:北京交通大学,2013,pp85-88[33]刘鹏.实战Hadoop[M].北京:电子工业出版社,2011,pp:4-6.[34]Resnik,P.(1995).Usinginformationcontenttoevaluatesemanticsimilarityinataxonomy.InProc.ofIJCAI-95,Vol.1,pp.448.453.[35]Lesk,M.(1986).Automaticsensedisambiguationusingmachinereadabledictionaries:Howtotellapineconefromanicecreamcone[J].InProceedingsofthe5thAnnualConferenceonSystems.Documentation,Toronto,Ontario,Canada,pp.24.26.[36]Banerjee,S.&T.Pedersen(2003).Extendedglossoverlapasameasureofsemanticrelatedness[J].In Proc.ofIJCAI-03,pp:805-810.[37]EvgeniyGabrilovich,ShaulMarkovitch.ComputingsemanticrelatednessusingWikipedia-basedexplicitsemanticanalysis[C]//Proceedingsofthe20thInternationalJointConferenceonArtificialIntelligence,Hyderabad:AAAIPress,2007,pp:1606-1611.[38]刘群,李素建.基于《知网》的词汇语义相似度计算[J].中文计算语言学,2002,7(2)pp:59-76.[39]DavidMilne,IanH.Witten.Aneffective,low-costmeasureofsemanticrelatednessobtainedfromWikipedialinks[C]//Proceedingsofthe23thAssociationfortheAdvancementofArtificialIntelligence.Chicago:AAAIPress,2008,pp:25-30.[40]汪祥,贾焰,周斌等.基于中文维基百科连接结构域分类体系的语义相关度计算[J].小型微型计算机系统,2011,11(32)pp:2237-2242.[41]TomWbite,Hadoop:TheDefinitiveGuide[M].Beijing:TsinghuaUniversityPress,2011. 发表论文和科研情况说明发表的论文:[1]ZhaoDeXin,LiuPengjie.ANovelTermsSemanticQueryModelbasedonWikipedia,In:WebInformationSystemandApplicationconference2014.Tianjin,China,2014,9:258-262【EI检索源,已录用】[2]ZhaoDeXin,LiuPengjie.AMethodonMRIDenoisingforBrainSurface3DModeling,OptoelectronicsLetters.Tianjin,China,2014,6(10):477-451.【EI20145200370498】参与的科研项目:国家自然科学基金项目:基于Wiki的垂直搜索语义技术研究(61202169)申请软件著作权:《基于维基百科的语义搜索系统》2014年9月2015SR001990 致谢本论文的工作是在我的导师赵德新副教授的悉心指导下完成的,老师学问的广博、教学的严谨、做人的正直深深地影响了我,这是我以后人生道路上受用不尽的精神财富,教授严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢研究生阶段老师对我的关心和指导。赵德新副教授悉心指导我完成了实验室的科研工作,在学习上和生活上都给予了我很大的关心和帮助,我每向前迈进的一步,都离不开导师的帮助与教诲。也正是因为导师的详细指点,才得以使我的论文顺利完成,在此向老师表示衷心的谢意。张德干、李玉坤、李文杰老师对于我的学习和论文都提出了许多的宝贵意见,在此表示衷心的感谢。在实验室工作及撰写论文期间,秦靓靓、郑可、潘兆华等同学对我论文提出好的建议,是他们的鼓励,使我在学业上有更高的追求和向往,我的每一次进步都离不开他们的支持、鼓励和帮助,在此向他们表达我的感激之情。另外也感谢家人,在我的求学生涯中给了我莫大的支持,让我有勇往直前的勇气和战胜困难的决心,他们的理解和支持使我能够在学校专心完成我的学业。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭