《基于语义的信息检索与关联推荐关键技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
电子科技大学UNIVERSITYOFELECTRONICSCIENCEANDTECHNOLOGYOFCHINA硕士学位论文MASTERTHESIS论文题目基于语义的信息检索与关联推荐关键技术研究学科专业计算机软件与理论学号201221060324作者姓名孙明指导教师王晓斌教授 分类号密级注1UDC学位论文基于语义的信息检索与关联推荐关键技术研究(题名和副题名)孙明(作者姓名)指导教师王晓斌教授电子科技大学成都(姓名、职称、单位名称)申请学位级别硕士学科专业计算机软件与理论提交论文日期2015.04论文答辩日期2015.05学位授予单位和日期电子科技大学2015年06月日答辩委员会主席评阅人注1:注明《国际十进分类法UDC》的类号。 RESEARCHONKEYTECHNOLOGIESOFSEMANTIC-BASEDINFORMATIONRETRIEVALANDASSOCIATIONRECOMMENDATIONMasterThesisSubmittedtoUniversityofElectronicScienceandTechnologyofChinaMajor:ComputerSoftwareandTheoryAuthor:SunMingAdvisor:Pro.WangXiaobinSchool:ComputerScienceandEngineering 独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。作者签名:日期:年月日论文使用授权本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。(保密的学位论文在解密后应遵守此规定)作者签名:导师签名:日期:年月日 摘要摘要随着互联网技术不断向前发展,信息量的增长速度已经到了叹为观止的地步。这样的发展速度导致用户从茫茫信息海洋之中寻找自己需要的信息已经变得十分的困难。搜索引擎的提出与推广从很大程度上解决的用户难于检索信息的麻烦。用户通过向搜索引擎提供搜索关键词,即能方便的找到自己需要的信息。然而传统搜索引擎在不断发展过程中遇到了很大的困难。首先,基于简单关键词匹配的传统搜索引擎检索方法使得搜索引擎无法准确的理解用户的所要表达的语义层面的意义,加大了用户查询信息的难度。其次,搜索引擎通常返回大量的搜索结果,而用户通常只会浏览前面几页或者十几页的结果,导致虽然搜索引擎返回了用户需要的结果,但由于排名靠后,其结果无法被用户看到。最后,虽然推荐系统现已大量运用于电商、在线音乐等等领域,但推荐算法任然存在比如数据稀疏导致推荐准确率下降等等问题。基于以上问题,作者对语义检索及推荐系统进行研究,并在现有成果基础上,提出了一些新方法。本论文主要工作包括:基于软件工程思想提出了一种新的本体库构建方法:螺旋本体法。该方法在本体构建过程中加入风险评估过程,并提出本体构建需要通过不断迭代来保证本体构建的正确性并能够有效的降低开发过程中将会面临的风险。在分析章节作者将螺旋本体法与其他常见的本体构建方法进行对比,指出该方法的优点,并通过protégé本体构建工具使用螺旋本体法构建本体库。提出一种适用于本体的索引结构并对Lucene的评分算法进行改进。首先通过对Lucene现有索引代码及结构的分析,提出一种适用于本体的Lucene索引结构。其次在分析了Lucene现有评分算法的基础上,提出一种综合考虑了查询关键词词频、用户点击量统计、基于经验三个方面的自动标记关键词权重的方法,并在此基础上对检索结果的本体进行评分,最后依据评分进行排序。通过实验证明,使用该索引结构与更新的评分算法能够提高检索结果。提出基于本体库的协同过滤推荐算法。分析已有协同过滤推荐算法,特别关注用户数据矩阵稀疏的问题,基于已有的本体理论,提出了新的协同过滤推荐算法。并通过实验证明使用基于本体库的协同过滤推荐算法能够提高推荐结果的准确率。关键词:语义,信息检索,关联推荐,本体I ABSTRACTABSTRACTWiththeInternettechnologycontinuestoevolve,thespeedofinformationquantitygrowthisquick.Userssearchingtheinformationtheyneedhasbecomingverydifficult.Searchengineisproposedtosolvethetroublethatusersfeeldifficulttoretrieveinformation.Whenuserssubmitthesearchkeywordstosearchengine,theycaneasilyfindtheinformationtheyneedinsomeway.However,thetraditionalsearchengineencounteredproblems.Firstofall,thetraditionalsearchenginebasedonsimplekeywordmatchingmakesithardtounderstandtheusers’meaningaccuratelybaseontheuser’squery.Secondly,searchenginesoftenreturnsalargenumberofresults,andtheuserwillusuallyonlybrowsethefirstpageorlessthantenpagesofresults.Becauseofthelowrankingoftheresultwhichtheuserneeds,itcan’tbeseenbytheuser.Finally,althoughtherecommendedsystemhasbeenusedinalargenumberofbusinessfield,likeonlinemusicandsoon,itstillhaveproblemssuchasthedatasparseproblemwhichleadtotherateofrecommendationaccuracydropsetc.Basedontheaboveissues,thesemantic-basedinformationretrievalandrecommendationsystemisstudied.Andbasedontheexistingachievements,Iputsforwardsomenewmethods.Themainworkofthisthesisincludes:Basedonthethoughtofsoftwareengineering,amethodisproposedtobuildanewontology:spiralontologymethod.Ariskassessmentprocessisaddedtothemethodofconstructingontology,andIproposethattheprocessofontologyconstructionhastobecontinuingtoiteratetoensurethecorrectnessofontology.Inthechapterthespiralontologymethodandothercommonontologyconstructionmethodsarecomparedandanontologywillbeconstructedthroughtheprotégésoftwarebaseonthespiralontologymethod.IproposeanewindexstructuresuitableforOntologyandLucene’sscoringmethodisimproved.Firstofall,basedontheanalysisofLucene’scodeandthestructureofexistingindex,Iproposeanewindexstructurewhichwillbesuitableforontology.Secondly,basedontheanalysisofLucene’sscoringalgorithm,Iproposeamethodwhichcomprehensivelyconsideratethekeywords’frequencyofthequery,users’numberofclicksonstatistics,andtheexperiencethatcanII ABSTRACTautomaticallymarktheweightofkeywords.AfterthatIscoretheretrievalresultsandsortthem.Theexperimentsprovethatnewscoringalgorithmsandtheindexstructurecanimprovetheretrievalresult.AtlastIproposeacollaborativefilteringrecommendationalgorithmbaseonOntology.Accordingtotheanalysisoftheexistingcollaborativefilteringalgorithm,andfocusingonthesparseuserdatamatrixproblem,Iproposeanewcollaborativefilteringalgorithmbasedonexistingtheory.Theexperimentprovethatusingthecollaborativefilteringrecommendationalgorithmbaseonontologycanraisetheaccuracyoftherecommendedresults.Keywords:Semantic,Informationretrieval,Associationrecommendation,OntologyIII 目录目录第一章绪论.........................................................11.1研究工作的背景及意义.................................................................................11.2语义搜索研究现状.........................................................................................21.3关联推荐技术研究现状.................................................................................41.4存在的问题及主要研究内容.........................................................................61.4.1.语义搜索及关联推荐存在的问题.....................................................61.4.2.论文主要研究内容.............................................................................71.5论文结构安排.................................................................................................8第二章基于语义的信息检索与关联推荐相关技术.........................92.1基于语义的信息检索与关联推荐体系架构.................................................92.2基于本体的语义推理技术...........................................................................102.2.1.本体库的构建...................................................................................112.2.2.关联信息源.......................................................................................182.2.3.形式化查询.......................................................................................192.2.4.逻辑化推理.......................................................................................192.3本体信息检索模型.......................................................................................202.3.1.布尔模型...........................................................................................202.3.2.向量空间模型...................................................................................202.3.3.概率模型...........................................................................................212.3.4.隐含语义索引模型...........................................................................212.4关联推荐系统...............................................................................................222.4.1.基于内容的推荐...............................................................................222.4.2.关联规则推荐...................................................................................232.4.3.协同过滤推荐...................................................................................242.5本章小结.......................................................................................................25第三章语义处理中领域本体的构建....................................263.1本体库的构建标准.......................................................................................263.2基于螺旋法的本体构建方法.......................................................................263.2.1.明确目标...........................................................................................273.2.2.分析并化解风险...............................................................................28IV 目录3.2.3.本体开发...........................................................................................283.2.4.撰写文档/制定下一阶段工作.........................................................293.3使用protégé构建本体.................................................................................303.4螺旋本体法比较...........................................................................................323.5本章小结.......................................................................................................34第四章信息检索中基于Lucene的信息索引.............................354.1基于本体属性的索引...................................................................................354.1.1.Lucene的分析...................................................................................364.1.2.本体索引结构...................................................................................414.2检索结果评分...............................................................................................424.2.1.Lucene的评分机制...........................................................................424.2.2.Lucene评分算法改进.......................................................................434.3实验与分析...................................................................................................464.3.1.实验数据来源...................................................................................464.3.2.评价标准...........................................................................................464.3.3.实验及结果.......................................................................................474.3.4.实验演示...........................................................................................494.4本章小结.......................................................................................................51第五章关联推荐中的协同过滤推荐....................................525.1问题的提出...................................................................................................525.1.1.协同过滤算法分析...........................................................................525.1.2.一些问题...........................................................................................535.2基于本体的协同过滤...................................................................................545.2.1.常见用户数据矩阵...........................................................................545.2.2.常用相似度算法...............................................................................555.2.3.基于本体的相似度计算...................................................................565.3实验与分析...................................................................................................585.3.1.实验数据来源...................................................................................585.3.2.评价标准...........................................................................................595.3.3.实验及结果.......................................................................................605.4本章小结.......................................................................................................62第六章总结与展望..................................................63致谢...............................................................66参考文献...........................................................67V 第一章绪论第一章绪论1.1研究工作的背景及意义当前社会随着互联网技术的广泛发展,不计其数的各类信息正以爆炸式的速度在互联网上传播开来。它已经深深的改变了人们长期以来建立起来的查找、探索知识信息的方式,使得无论从工作还是生活上,大大提高了检索信息的效率与效果,甚至改变了企业、普通人的思维方法。以万维网(WorldWideWeb,亦作环球信息网)为代表的互联网服务承载了互联网上大部分资源,成为人们获取各类信息的主要载体。从中国互联网络信息中心(ChinaInternetNetworkInformationCenter)的统计数据中可以看到,截止到2014年6月30日,中国网民数量已经达到6.32亿人,网站数273万,而中国域名数更是达到了惊人的1915万[1]。在如此数量级的数据中,查找有用的信息无异于大海捞针。搜索引擎的提出与建立从一定程度上解决了这个问题。人们在搜索引擎中通过输入可以描述问题的关键词,搜索引擎则根据关键词匹配将用户可能感兴趣的内容找出来并返回给用户。目前国内外已经有大量的搜索引擎提供免费的信息检索服务。其中包括国外的谷歌搜索引擎,微软公司的必应(bing)搜索引擎,雅虎公司的搜索引擎,国内百度公司的搜索引擎,腾讯公司的搜索引擎(soso)等等。这类搜索引擎通过将网页信息建立按关键词的索引,通过将用户输入的关键词与索引关键词进行匹配,从而返回用户可能感兴趣内容。这些通用的搜索引擎在很大程度上缓解了面对海量数据,难以查找有用信息的问题,得到了用户的好评。然而很多用户在使用中逐渐发现,搜索引擎并不能很好的理解其要搜索问题的本质。由于现有的搜索引擎仅仅进行简单的关键词匹配,这一缺陷导致其无法返回给用户准确的信息,而使得用户必须根据搜索引擎提供的搜索结果去自己寻找想要的信息内容,整体上搜索的效率不高。例如在搜索引擎中搜索“王菲的老公”,用户希望得到的结果是包含王菲的老公这个人的名字的相关网页,而如果按照关键词匹配进行搜索的话,用户得到的结果往往是包含“王菲”与“老公”这两个关键词的网页。显然,这并不是用户想要得到的结果。与此同时,很多用户在使用搜索引擎时,对于想要搜索的内容并没有一个明确的目标,他们需要搜索引擎可以进行基于其关键词的搜索推荐,帮助用户更快的找到自己想要寻找的目标。随着互联网技术的不断发展,上述问题愈显突出。如何能够更人性化的为1 电子科技大学硕士学位论文用户提供高质量的搜索结果,如何能够极大程度的改善用户的搜索体验,提高用户搜索效率已然成为信息检索领域一个发展方向。在理解用户关键词本质意思上,本体(ontology)提供了一种思路。该技术基于词汇所在领域的相关概念及概念之间的推导来准确的定义语义。而协同过滤推荐(CollaborativeFilteringRecommendation)技术可以用来弥补用户对搜索目标不明确的问题。该技术通过计算相似度为基础,推荐给用户他们可能感兴趣或者可能真正需要的东西。然而目前能够准确定义用户关键词语义并进行高质量的推荐还存在一些困难。主要原因在于:(1)对通用搜索引擎而言,由于其可搜索的内容没有任何领域的限制,所以构建全领域的本体库是一项浩瀚的工程,需要大量的人力物力去维护。(2)如何高效的从本体库中进行语义层面的语义推理。(3)如何有效的组织大量数据,并基于数据及运用特点设计更合适的推荐算法。这篇论文重点对用本体技术进行中文自然语言处理的关键技术进行研究,其中包括本体库的建立,概念的查询,语义的推导。并研究基于数据特征的协同过滤推荐算法的修改算法。将基于本体的中文搜索引擎与针对特定数据的推荐系统进行结合,可以很好的解决上述问题,已然成为主流的发展方向,并且具有很强的意义。1.2语义搜索研究现状本体(Ontology)最早是作为一个哲学范畴的概念被提及出来。作为形而上学的一个基本分支,其主要研究内容在于某个词指的是一个具体存在的事物,还是仅仅只是指一个虚拟的概念。对于计算机科学、人工智能来说,本体一词第一次被Neches等人定义为“本体定义了组成相关领域的基本词汇概念及概念之间的关系,并且定义了基于这些词汇及关系所构成的外延规则”[2]。然后现在被大量使用的关于本体的定义出自TomGruber等人的研究。他们认为本体是“形式化的对概念明确、详细的规范说明”[3]。而后随着研究的不断深入,基于上述定义,Borst等人提出了一个更深层次对本体的定义,即认为“本体是概念可共享的模型的形式化说明与相关规范”[4]。再后来,Studer等人通过充分的研究已有对本体的定义,提出了本体本质上包括了一下四个部分:(1)概念模型:概念模型指的是对现实中,客观具体的现象里相关概念的一种抽象,并因此得到一个模型。(2)明确性:本体明确定义了相关该概念及使用这些概念的约束。(3)形式化:形式化指的是本体是计算机可以读取的,并非是在计算机中所不能表达的。(4)共享:共享指本体所体现的知识是整体所有,并被整体所承认的,其反应的是整体公认的概念及关系,非某一个个体所独占[5]。2 第一章绪论从总体上看,当今国外对于在信息检索中加入本体技术方面的研究要多于国内,其中使用本体技术提高某个领域中搜索引擎的搜索效果成为研究的热点方向。SHOE[6]是最早被研究人员设计的基于XML的本体描述语言,其可以对已标记的资源进行语义层面的查询。SHOE通常又下面几个部分组成:(1)网络抓取器(networkcrawler):使用SHOE定义的标签对网络上的资源进行搜索,并把相关信息知识放在其知识库里。(2)推理机(InferenceEngine):使用基于推理规则的推理机可以完善知识库中的语义信息,进而获取到新的语义标记。(3)信息查询工具(Informationquerytool):实现了用户针对某个特定领域本体进行查询的要求。其中值得一提的是,SHOE查询工具的设计使得用户可以通过下拉列表的方式来选择某个领域的本体、本体下的分类、相应的属性来生成一个查询实例。系统将该实例进行有效的组织并放在知识库中进行查询,最后以数据表格的形式将查询结果展现给用户,使用起来很方便。休斯顿大学(HoustonUniversity)的PingChen和RakeshVermaf使用美国国家医学图书馆的资料开发了UMLS(UnifiedMedicalLanguageSystem,一体化以学术研系统),并将该系统作为主要的医学本体知识库[7]。同时提出了使用文本摘要的方式对查询关键词进行摘要来提高医学信息的文件检索结果,同时能够帮助系统理解领域内相关概念、术语、及其间的相互关系。后来,一个基于本体的搜索引擎FindUR被AT&T[8]提出。该系统通过对Wordnet[9]中词汇之间语义关系进行理解,获得了简单的领域背景知识,并能通过语义层面的推理得到词的上、下义词集合及同义词集合,从而能够对其进行拓展。之后,一个基于本体的语义搜索引擎Corese[10]被提出。该系统通过使用RDFS语言对同样使用这个语言标记标记过语义的网页资源进行检索。该系统通过计算本体库中各概念、实体之间的语义距离并参考语义推理规则计算相似性,即该系统可以为用户提供与用户的查询语句在语义距离上较短的结果[11]。除此之外文献[12]提出一种方法,该方法基于RDF数据集合,使用SPARQL[13]语言对其进行相似性的查询。随着国内科研人员的研究,国内语义搜索领域取得了长足的进步。其中苏晓路[14]等人使用本体技术构建了农业科技智能检索系统。其在分析了《中国农业科技文献数据库》中的主题与具体的分类的基础上,使用XML技术将其用于构建农业初级本体,并使用该本体作为检索系统的数据库。姜华[15]等人使用本体技术,在检索过程中,通多对用户查询关键词进行分析,并使用相关相似度算法,找到在本体库中与之相似度较高的对应的概念来进行查询。其使用本体技术,通过计算语义相似度长度,将用户查询关键词的隐含语义进行挖掘,使得系统能够充分理解关键词的内在含义,并在此基础上进行信息的检索。盛秋艳,印桂生[16]等人提出了一种基于RDF的本体处理方法,用以解决传统RDF3 电子科技大学硕士学位论文算法在语义搜索中出现的问题,并提出了一种基于本体的搜索方法。该算法主要分为以下几个步骤:抽取RDF信息、构建RDF模型、对RDF模型进行集合、本体查询、修正本体并对本体进行序列化。实验结果证明了该算法可以有效的缩短查询时间,并且提高检索的查全率及查准率。李江华,郑剑[17]等人基于本体搜索需求与用户搜索行为的分析与研究,提出了一种基于本体的启发式搜索方法。该方法建立在用户行为的基础之上。因为不同用户对于不同的领域具有不同的理解,所以对于同一个领域来说,不同用户的搜索关键词是不尽相同的,基于这点,设计了启发式搜索并通过实验证明提高了搜索的匹配度。李莎莎[18]提出一种弱监督的自举方法,来实现识别比较性问题的同时,抽取比较对象;通过对象之间的比较关系,提出一种基于图聚类的用户意图识别方法。危华明[19]提出基于链接标签数据的判定方法和基于链接结构的判定方法来提高垂直搜索引擎的性能。吴定峰[20]通过引入情境变量来缩小语义开放性和准确理解用户需求。1.3关联推荐技术研究现状推荐系统的诞生与发展缓解了类似于电商发掘潜在客户,向潜在客户准确的推荐商品,当用户没有明确查询需求时的智能推荐等等问题,如今已广泛运用于电子商务、在线图书、在线音乐、搜索引擎、社交等等互联网领域。历史上第一个推荐系统Tapestry[21]由Goldberg、Nichols等人与20世纪90年代初期提出并设计实现。并且在该系统中,Goldberg等人第一次实现了协同过滤推荐策略的一个电子文档过滤系统。该系统首先收集已看过文档的人为该文档写的评价,其他用户通过选择不同用户的评价,并输入一些查询语句,之后系统给出文档过滤的结果。但是该系统也有明显的缺点:其不能自动处理整个推荐的过程,而需要用户的介入。推荐结果推荐算法用户模型系统项模型用户数据图1-1推荐系统通用模型示意图4 第一章绪论对于推荐系统,李聪[22]等人给出了其任务的描述:某个系统,给定其用户集合与系统项集合,存在一个映射函数,用来计算对不同系统项的喜欢程度,根据这个计算出来的喜欢程度,为对应用户进行推荐。通过上面的公式可以看到,推荐系统几个关键位置在于用户、用户数据的收集及建模,系统项的建模,映射函数的选择三个问题。根据公式可以总结推荐系统的通用模型如图1-1。目前主流的个性化推荐系统通常使用以下几个推荐策略的结合,包括关联规则推荐、基于内容的推荐、协同过滤推荐。表1-1列出了这些不同推荐策略的优缺点。表1-1不同推荐策略优缺点推荐策略优点缺点关联规则推荐自动化程度高可定制程度低易于解释结果难以获取关联规则易于发现新的推荐获取到的规则难以保证效果基于内容的推荐自动化程度高内容分析具有局限性可定制程度高不易发现新的推荐易于解释结果协同过滤推荐自动化程度高数据较稀疏可定制程度高不易于扩展可推荐范围较广易于发现新的推荐第一个自动化协同过滤系统GroupLens是由Resnick等人[23]提出。该系统运用于新闻发布系统上,用以帮助用户能够在海量的新闻中找到自己可能喜欢的新闻。该系统推荐的基本策略为,分析用户过往感兴趣的新闻,如果用户明显偏向喜好某一种类型的新闻,则预测该用户将来同样会偏向喜好这一类型的新闻。该系统采用评分的方式来搜索用户对新闻的喜好程度,并记录下每个用户的历史记录。系统将自动计算不同用户对于新闻评分的相似性,将相似性高的用户组成一个集合。当有新用户时,系统根据该用户信息选出合适的一个历史用户分组,根据分组用户的表现来预测该用户可能感兴趣的新闻。随后,协同过滤推荐策略取得了很大的程度的发展。Breese[24]等人提出协同过滤算法通常分为两类:基于记忆的(Memory-Based)协同过滤算法和基于模型的(Model-Based)协同过滤算法。其中,前者主要思想为根据目标用户的信息,5 电子科技大学硕士学位论文根据所有用户的历史记录找到与目标用户具有相似兴趣的用户集合,根据该集合内用户的兴趣程度来预测目标用户对某系统项的兴趣程度。该类算法最典型的为最邻近推荐算法。后者则根据机器学习相关训练方法,使用训练集数据学习一个预测模型,系统根据该模型及用户历史偏好数据,预测出目标用户对某系统项的兴趣程度。基于矩阵分解的协同过滤算法为该类算法的一个代表。针对协同过滤算法冷启动时,评分数据稀疏造成推荐不准确的问题,Zhang[25]提出可以设定一个阈值,不断运行基于用户的协同过滤方法来填充评分数据中的空白项,通过该方法在得到所有未评分位置的评分后,再使用传统的协同过滤推荐预测最后的评分。Su等人[26]等人使用机器学习的各类方法如线性回归、贝叶斯分类器等来填充评分数据中的空白项,并且对各种方法进行了一个对比。Yang等[27]使用矩阵分解的方法将评分数据分解为用户特征矩阵和系统项矩阵,将信任关系矩阵分解为被信任矩阵与信任矩阵。由此提出并对比了三种模型:信任模型、被信任模型、混合模型。最终证明这三种模型都比传统的协同过滤算法具有更好的推荐准确性,其中混合模型的准确性是最高的。冷亚军[28]提出两阶段最近邻选择算法,解决了最近邻搜寻结果不够合理,易使推荐质量差的问题;改进的近邻传播聚类算法,使其在处理协同过滤可扩展性问题方面有更好的性能;结合领域专家法的群体用户推荐算法解决虚拟社区中群体用户的推荐问题。Wu等[29]利用用户、项目、用户所属类、项目所属类、用户-项目所属联合聚类的评分均值来计算目标用户对目标项目的预测结果。1.4存在的问题及主要研究内容1.4.1.语义搜索及关联推荐存在的问题通过对语义搜索及关联推荐系统相关研究表明,目前两者的发展虽然在一定程度上能够解决用户的需求及问题,但是任然存在一些问题:1、本体的维护对于某个领域,本体颗粒度越细,包括的内容越全面,包括的关系越完整,则对于语义处理来说就会更准确,但是目前本体库的维护主要依赖人工维护。这样的方式容易造成工作量大,维护成本高,出错性高等问题。2、推荐系统有待改善现有对系统项的评分机制比较简单与单一,导致评分机制所记录下来的信息较少,难于向用户提供更个性化的内容推荐。并且,某些用户或者系统项特征难以用数学进行建模,导致推荐的不准确。最后,某些推荐策略不容易生成推荐解释,不容易让人理解推荐原因。6 第一章绪论3、搜索、查找效率目前的系统多只单独从语义上或者推荐上帮助用户提高搜索知识,查找信息的效率,而如果能有效的将两个技术融合在一起,能提供给用户更好的搜索体验与搜索结果。1.4.2.论文主要研究内容本文首先着重分析了本体库的构建方法、信息检索技术中的检索模型以及现有个性化推荐技术。首先。基于对现有技术的研究与分析,本文针对现有本体构建方法在运用于构建大型本体时可能面临的问题,将软件工程相关思想与本体构建方法进行融合,提出了螺旋本体法。其次,本文研究了信息检索中的索引结构与文档评分算法,提出了一种适用于本体搜索的索引结构并优化了现有文档评分算法。最后,论文针对现有推荐算法的不足提出了一个基于本体的推荐算法。论文主要创新点和研究内容概括如下:1、提出螺旋本体法针对现有本体构造方法无法准确的对项目风险进行有效的评估与控制,并且用户实际参与度底的问题,本文提出了一种基于软件工程思想的本体构建方法。该方法强调在本体构造过程中需要不断的迭代向前,并且在每一次迭代过程中需要有明确的项目风险评估阶段来保证及早的发现问题、解决问题。确保项目健康的进行。2、基于Lucene的本体索引结构及排序算法的改进该部分通过对现有Lucene索引结构及文档评分算法的深入分析,提出了一种适用于本体的索引结构,并且使用Lucene对本体库进行构建索引。之后对Lucene的文档评分机制进行了改进,改进主要通过逆向文件频率(IDF)、用户点击量的统计、基于经验三个方面进行考虑提出了新的文档评分计算公式。最后通过实验证明了该方法有效。3、提出基于本体的协同过滤推荐技术该部分内容首先分析了基于用户的协同过滤算法(User-Based)与基于项的协同过滤算法(Item-Based)并讨论算法的不足。在此基础上,为了应对用户数据稀疏的问题,提出基于本体的协同过滤算法。该算法首先使用本体库对项的相似度进行计算。在计算邻居集的时候,使用基本本体计算出来的相似度与基于用户数据的相似度进行互补,从而为用户进行推荐。最后通过实验验证了这样的方式可以提高推荐的准确度。7 电子科技大学硕士学位论文1.5论文结构安排本论文的结构安排如下:第一章绪论,首先对语义搜索及关联推荐的研究背景及研究意义进行了一个阐述,接下来对语义搜索及关联推荐的研究现状进行了一个简单的综述并在此基础之上分析了相关领域任然存在的问题。最后本章节论述了本论文的主要研究内容及创新点,总结出了论文的结构安排。第二章对基于语义的信息检索与关联推荐理论与技术进行了介绍。首先介绍了作为语义处理技术的本体的构建及查询与推理,接下来介绍了信息检索方面的常用检索模型,最后对常用的推荐算法进行了统一的介绍。第三章在前两章的基础上,分析了现有本体库构建方法在实际运用中可能存在的问题,并结合软件工程思想提出了一种构建本体库的方法,解决了本体库开发过程中项目风险高、用户参与度底的问题。并使用Protégé依据该方法建立了一个本体库。最后用新的本体库构建方法与传统的构建方法进行对比。第四章首先对Lucene现有的索引结构进行分析的前提下,提出了一种适用于本体的索引结构并使用Lucene对本体库建立索引。最后对Lucene的文档评分公式进行分析,作者提出了一种基于原有评分公式的改进算法,用以解决用户查询关键词自动标注权值的问题。最后通过实验证明了评分机制的有效性。第五章对协同过滤算法的常用公式进行分析,并指出其存在的不足之处。针对这些不足之处作者提出了一种基于本体库的协同过滤推荐算法用以解决协同过滤算法中用户-项评分矩阵数据稀疏导致项相似度计算不准确从而推荐不准确的问题。第六章在总结了该文章的基础之上,对语义索引与关键推荐技术的前景与未来的工作进行了一个展望。8 第二章基于语义的信息检索与关联推荐相关技术第二章基于语义的信息检索与关联推荐相关技术语义搜索引擎与关联推荐技术主要基于自然语言处理、搜索引擎、关联推荐三部分理论研究成果进行深入探索,目的在于提高用户在海量数据中高效率的定位到自己需要查找的知识信息。本章节首先提出自然语言处理、搜素引擎、关联推荐三部分内容结合的总体架构,并在此基础上对各部分技术的特征与原理进行阐述。2.1基于语义的信息检索与关联推荐体系架构语义搜索引擎与关联推荐技术体系架构及各技术间关系如图2-1。用户查询接口查询Query分析模块自然语言查本体库语义处理询zkq20151125查询关键词查询关键词推荐系统模块推荐列表搜索引擎内容推荐查询模块搜索结果推荐策略数据查询查询查询索引库存储模块索引库索引库索引库建立索引数据索引搜索引擎索引模块索引数据原始数据库图2-1语义搜索引擎与关联推荐技术体系架构9 电子科技大学硕士学位论文图2-1中的查询分析模块主要负责对用户通过用户界面(UI)输入的需要查询的关键词进行语义层面的处理。其中自然语言查询主要负责中文分词、去除关键词等功能。语义处理主要负责对已分割好的查询关键词进行基于本体的语义推理,用以理解用户查询关键词的真正含义,并将经过语义推理的关键词推送给搜索引擎与推荐模块。本体库主要是本体信息的存储地,存储着已经构建好的本体信息,本体信息通常以类XML格式的本体描述语言存储。图2-1中搜索引擎模块主要负责对已处理好的关键词在索引库中进行查询,并将查询结构进行组织反馈给用户。图2-1中的推荐系统模块主要负责根据已处理好的用户关键词,使用系统中的推荐策略进行相关内容的推荐。推荐的结果返回给用户。图2-1中的索引模块主要负责将数据库中的原始数据,先按照正向索引,再按照倒排索引的方式进行数据索引。索引的结果存储在索引库中。图2-1中的索引库模块负责存储已建立的索引,并负责向搜索引擎模块提供查询到的数据。其中查询分析模块、本体库部分模块主要基于语义处理相关理论基础;搜索引擎,索引,部分模块主要基于搜索引擎相关理论基础;推荐模块主要基于关联推荐相关理论基础。2.2基于本体的语义推理技术zkq20151125传统搜索引擎只能简单依靠关键词匹配来实现信息的检索,有时候无法满足用户对语义层面的运用。而以本体技术为支撑的语义搜索技术可以很大程度上解决分析、理解、推导用户查询语句语义层面意思的问题。基于本体的语义处理技术以本体库作为其知识基础。当用户向搜索引擎提交查询时,待查询关键词并不是直接交给传统搜索引擎进行关键词匹配式的搜索,而是先将用户搜索的关键词进行依托于本体库的语义推理。完成语义推理之后生成新的搜索关键词返回,再交给传统的搜索引擎进行下一步的搜索任务。领域本体知识库中通常包括某特定领域内的知识信息,其中包括概念、实例、实例的属性、实例间的关系等等内容。如果使用数据可视化工具(例如Protégé)查看本体库的话,其是一张有很多顶点,顶点间由线连接的图。其中每一个顶点可以表示一个具体的概念(例如人),或者表示一个具体的实例(例如小明)。顶点间的连线表示概念、实例间的关系。本文将本体库形式化的定义成为一个三元关系组{M,R,O},其中:1、M表示一个概念或者一个具体实例,其在三元关系中处于主要部分。2、R表示某个概念或者实例与另一个概念或者实例间的1对1的关系,这10 第二章基于语义的信息检索与关联推荐相关技术里的关系可以是任何可以被描述的关系,例如从属,并列,同义等等。3、O表示一个概念、一个具体实例、一个概念所包含的属性、一个具体实例所持有的属性,在三元关系中其处于从属部分。根据如上对本体库的形式化定义,可以简单的例举出一个本体的例子。令M设置为“小明”,R关系设置为“是”,O设置为“人”,则这里表示的含义为“小明是人”,该例子中O表示的是一个概念,其在本体库中的概念图为图2-2。小明是人图2-2本体库概念图或者令M为“小明”,R为“的年龄”,O为“23”,则这里表示的含义为小明有个年龄的属性,该属性值为23。该例子中O表示的是具体实例的一个属性,其在本体库中的概念图为图2-3。zkq20151125小明的年龄23图2-3本体库概念图2.2.1.本体库的构建对于本体的研究,其中非常重要的一点即本体库的构建。因为在基于本体的语义处理中,本体构建后的质量在很大程度上决定了该技术可以解析自然语言的精确程度、解析自然语言的复杂程度、解析自然语言的完整程度。可以说是该技术运用于自然语言处理的核心部分之一。鉴于本体具有如此重要的位置,越来越多的科研人员致力于研究各种科学的方法来构建一个高质量且完整的本体库。在本体实际搭建过程中,由于没有同意标准,导致可能不同的机构、科研人员使用自己的方法来构建本体。不同的领域也会有一些自己的构建本体的方法,本文将讨论各种构建方法中比较常见的几种方法。11 电子科技大学硕士学位论文2.2.1.1.企业建模法1995年由多伦多大学(UniversityofToronto)的Michael[30]等人提出了一套构造、评测本体的方法。该方法在当时主要用于Michael等人开发TOVE(TorontoVirtualEnterprise)项目,用于建立公共企业模型,用户可以通过该模型方便的查询出相关领域的信息知识。图2-4为企业模型法的构造流程。激发场景非形式化能力问题一阶段逻辑术语zkq形式化能力问20151125题一阶段逻辑公理完备性理论图2-4企业模型法的构造流程激发场景(MotivatingScenario):通过具体需要构建本体的领域,来促进本体的开发。由于有现实场景的对照,可以清晰的定义出本体的构造动机。确定构建本体的目的和范围,便于后续步骤的展开。非形式化的能力问题(InformationCompetencyQuestions):在激发场景分析完成之后,根据该场景,将会产生一些运用中需要本体库去解决的问题。把这12 第二章基于语义的信息检索与关联推荐相关技术些待解决的问题看作需求的话,就需要将要构建的本体具有能够处理这些需求的能力。通常现实场景中的问题无法直接转化成能够被形式化描述本体的语言进行描述,所以需要通过将需求集合中的概念,实例等等内容与本体进行对比,由此对被扩展的或者新的本体库进行评测,判断其是否可以解决所有的需求问题。确定目的和范围构本体捕获建本体本体编码集成已有本体zkq20151125本体评价文档化设计本体指导方针图2-5骨架法流程1、一阶段逻辑术语(First-OrderLogic:Terminology):将分析得出的非形式化需求,使用一阶段逻辑将需求中的各种术语进行形式化的详细描述。2、形式化的能力问题(FormalCompetencyQuestions):即通过使用形式化的本体描述语言表达非形式化需求的能力。3、一阶段逻辑公理(First-OrderLogic:Axioms):使用公理对本体中的概念、13 电子科技大学硕士学位论文实例的语义、实际意义进行定义。这里的公理即为本体的规则说明。4、完备性定理(CompletenessTheorems):当非形式化的需求转化成形式化描述之后,本体必须具备解决这些需求的条件,即完备性。2.2.1.2.骨架法1996年由爱丁堡大学(TheUniversityofEdinburgh)的Michael[31]等人提出了一个本体开发的指导方法。其作指导为构建本体的一个方法学框架,具有很强的通用性及参考意义。图2-5为该方法的流程:1、识别目的和范围(IdentityPurposeandScope):在本体构建初期,需要明确待创建本体将要使用的目的,还要确定本体具体属于哪个,或者哪些领域,也就是明确好领域间的分界线。2、构造本体(BuildingtheOntology):在明确了本体构建的目的及目的所表示领域范围之后,开始根据目的及范围来构造本体。首先通过对特定领域的抽象及分析,确定该领域中的相关概念、实例、关系、属性等等内容,并为这些概念、实例、关系、属性确定精确的定义与其相关的术语等。确定之后使用一种能够描述表示本体的语言对其进行编码。编码完成之后将所有的本体集成到一起,成为一个本体库。3、评测(Evaluation):本体库构建完成之后,需要对其进行性能评测,完整zkq20151125性评测,正确性评测等等评测,来保证已构建完成的本体库可以作为领域知识库进行使用。4、建立文档(Documentation):在评测达到标准之后需要建立本体库中对于概念、实例及对它们的定义的文档,用以提高本体库的可读性,易于共享。5、建立指导方针(Guidelinesforeachphase):最后还需要指明该本体在设计时的一些要求与规范,易于其他人的使用。其中主要含有以下几个方面:一致性(Coherence)、可扩展性(Extensibility)、最小编码误差(Minimalencodingbias)等等。2.2.1.3.Meth本体法1997年由西班牙马德里理工大学(TheTechnicalUniversityofMadrid)的Mariano[32]等人在结合了骨架法与企业建模法之后,设计的针对大型本体库开发的规范性方法。其借鉴了软件工程的一些思想,是一种结构化的构建本体的方法,当时用于开发人工智能图书馆。该方法主要分为三个阶段:(1)管理、(2)开发、(3)维护。图2-6为该方法的过程。14 第二章基于语义的信息检索与关联推荐相关技术1、详细说明书(specification)在构建本体的初始阶段,首先需要编写一份本体的详细说明书。该文本应该包含:(1)构建该本体的意义。(2)根据本体中相关概念的意义、实例的意义的形式化程度确定本体的形式化级别,并根据本体中相关术语描述事物的颗粒度及描述事物的范围来确定本体的术语范围。虽然该方法并不要求说明书能够完整的描述整个本体,但是需要:(1)其描述的内容是唯一的,并且和本体的目的是相关的。(2)对术语的描述应该是对应领域内所一致的。(3)所描述到的内容必须内容上是完整的。动作状态概念化形式化集成计划详细格说明书维护实现动作知识获取文档化评价图2-6本体法流程2、知识采集(KnowledgeAcquisition)知识采集即根据本体所要描述的领域,查询相关资料或者访问相关领域专家来获取相关领域的相关所有知识。本体设计开发人员可以查询相关领域的图书、论文、报刊杂志、手册、说明书等处获得知识,亦可以请相关专家参与开发。这不是一个阶段性的过程,可能会涉及到整个开发周期,设计开发人员不断的采集新知识,补充到本体库中。3、概念化(Conceptualization)该阶段将详细说明书中内容,组织成概念模型。概念化之后可以轻松的实现不同用户、不同系统间的本体重用,并且可以展现本体的可用性、适用范围、及完整程度。图2-7表示了概念化的一般过程。15 电子科技大学硕士学位论文术语词汇表概念分类树分类词表字典属性表动词字典实例表条件表公示表规则表图2-7概念化的一般过程4、一体化(integration)本阶段体现了软件工程中代码可复用的思想。在构建一个新的本体的时候,可以不用一切从新开始。应该分析已有本体,通过比较已有本体中的概念、实例、术语、术语的范围等等因素后,选择合适的本体进行集成,形成一个新的本体作为基础,继续其他阶段。5、实现(Implementation)该阶段选择使用一种已有的,或者开发一种新的形式化语言来描述本体,即对本体进行编码操作。其中编码过程中的集成开发环境(IDE)需要至少包含下列几种功能:(1)词、语法检查器。(2)编辑器。(3)语言转换器。(4)本体浏览器。(5)搜索功能。(6)一致性、完整性、冗余性检查。6、评测(Evaluation)在本体设计、开发及使用的各个阶段,使用现有的本体评测方法对本体的设计、本体开发运行环境、本体的各种文档进行系统的评测,并给出适当的评测报告书。7、建立文档(Documentation)在本体开发的所有阶段,都需要建立文档,方便开发维护人员查阅,评测。16 第二章基于语义的信息检索与关联推荐相关技术2.2.1.4.SENSUS法1999年由美国信息科学研究所(informationsciencesinstitute,ISI)下自然语言小组开发SENSUS本体[33]时所提出的本体构建方法。SENSUS系统目前主要运用与机器翻译领域,其中包括了大概70000个以上的概念。因为SENSUS设计之初并不是针对某一个特定领域所构建,所以其涉及的概念、实例非常广泛。其整合了多个已存在本体,其中包括PENMAN和ONTOS两个基于语言学的本体,吸纳了WORDNET语义概念集,并与英语词典的中对应的词、词义进行整合。可以说SENSUS是一个庞大的本体集,在机器翻译领域有着巨大的价值。SENSUS法的关键在于,构建领域本体的时候,不用一切从头开始,使用特定的方法可以大幅度的缩减本体开发和维护的成本。SENSUS法构建本体的主要步骤如下:1、将某些有代表性的、或者专家提出的一定数量的词汇作为“种子词”。2、将这些“种子词”手动添加进SENSUS系统中。因为本体通常以树的形式向下展开,所以通常这些“种子词”是作为这棵树的叶子节点添加进去的。3、将从“种子词”到树根的所有概念的节点统计出来。4、在这条路径上,依照词典,添加领域中存在,但不在SENSUS中的概念、实例。5、在统计路径的过程中,如果发现某些节点有大量的路径通过,则表明该节点下的其余节点很有可能也是与该领域相关的,所以需要人工将这些节点找出来,防止本体出现非唯一性。2.2.1.5.七步法2001年由斯坦福大学(StanfordUniversity)校医院[34]在设计开发本体时提出的一种构建本体的方法。用该方法来构建本体的步骤如下:1、确定待构建本体所属领域及需要设计到的描述范围本体的描述可以涉及到任何领域内的任何范围,所以需要在最开始明确该所需要描述具体哪及个领域,需要描述的范围,本体设计用来解决什么问题。2、在该领域是否已有一定规模的本体存在根据软件工程的思想,如果已有该领域下的一些本体,则不用一切从头开发,可以基于现有本体进行修改,拓展等等操作以符合现有的需求,缩17 电子科技大学硕士学位论文短开发时间,减少人力物力。3、找出领域中重要的概念、实例首先挑选出领域中重要的概念,采用从上往下的策略逐层构建本体。这样可以抓住重点,不至于舍本逐末。4、确定类和类的上下级关系本体中通常包含很多类,例如“人”、“书”。首先需要确定这些类之间的关系。确定类的上下级关系通常使用如下三种方法:(1)自顶向下。从领域概念最上层,最抽象的概念开始往下逐层细化、具体化这些概念。(2)自底向上。从该领域最细化的概念开始,不断向上一层的抽象,最终抽象到该领域的顶层概念。(3)综合法,即根据设计开发人员的知识,综合的使用自顶向下,自底向上的方法来构建本体。5、定义类的属性使用面向对象(ObjectOriented,OO)中继承的思想。首先定义类中所具有的属性,这样从该类具体化下的其他子概念亦具有该概念所包含的所有属性。当然子属性需要更具自身的特点来定义自己专属的属性。子概念再派生子概念,这样迭代下去。6、定义属性定义属性的特征,其中包括属性所属的类型,属性可以取得的值等等信息。7、创建实例选择一个类,并通过该类的属性值创建一个或多个实例,实例中应该包括该类的所有属性。2.2.2.关联信息源本体库通常需要与相关信息源进行关联才能起到查询映射的作用。目前通常使用语义注释来进行关联。设计本体时需要考虑在本体中添加注释类,存储概念、实例与资源文件之间的映射关系。当然注释可以被加上一定的权值。该权值反映了文件内容与本体库中的实例之间的相关性。目前权值通常使用TF-IDF(TermFrequency–InverseDocumentFrequency)算法,通过计算实例在资源文件中出现的频率来计算。接下来给出具体公式。假设资源文件为𝑑,本体库中的某个实例为𝑖,𝑖和𝑑之间存在着一个映射关系,即𝑓(𝑖)=𝑑(2-1)18 第二章基于语义的信息检索与关联推荐相关技术令从实例𝑖到资源文件𝑑的权值为𝑤。𝑤表达了从实例𝑖到资源文件𝑑的映射强弱关系。即𝑓(𝑖)=𝑑(2-2)则权值𝑑的计算公式为公式(2-3)。𝑓𝑖,𝑑|𝐷|𝑤𝑖=∙𝑙𝑜𝑔(2-3)𝑚𝑎𝑥𝑗𝑓𝑗,𝑑𝑛𝑖其中,𝑓𝑖,𝑑是资源𝑑中实例𝑖出现的次数,实例j是资源𝑑中出现最频繁的实例,𝑚𝑎𝑥𝑗𝑓𝑗,𝑑是资源𝑑中j出现的次数。D是所有资源文件的集合,𝑛𝑖是D里所有资源文件中,可以与实例𝑖进行关联的文件的数目。2.2.3.形式化查询形式化查询方法属于结构化查询。设计形式化的查询方式能够更准确的捕获用户的查询意图,并且能够帮助用户更准确的表达查询需求。通常来说查询将被定义为如下的形式。令Q为用户的查询,则令𝑄𝑓为用户形式化的查询需求,𝑄𝑘为用户关键字查询的需求。这里显然𝑄=𝑄𝑓∪𝑄𝑘(2-4)在对形式化查询进行细分的话,形式化查询可以分成关系查询𝑄ifr及概念查询𝑄𝑖𝑓𝑐,并有如下关系𝑄𝑓=𝑄𝑖𝑓𝑟∪𝑄𝑖𝑓𝑐(2-5)其中𝑄ifr可以进行概念、实例间关系的查询。在用户使用查询的时候,如果没有定义形式化查询𝑄𝑓,则𝑄=𝑄𝑘,系统将按照关键字方式进行查询。如果没有关键词查询𝑄𝑘,则𝑄=𝑄𝑓,系统将按照结构化的方式进行查询。在保证查询准确率及查询完全率的保证下,尽可能的捕捉到用户的查询意图。2.2.4.逻辑化推理实现逻辑化推理的主要途径为描述逻辑(DescriptionLogic),属与一介谓词逻辑的范畴。其通过待描述对象的具体表现形式进行形式化的定义。其中TBOX用于描述对象的概念或者对相间的相关关系。可以将TBOX形式化的定义为{𝑥|𝑐𝑜𝑛𝑐𝑒𝑝𝑡(𝑥)}(2-6)19 电子科技大学硕士学位论文或者{𝑥,𝑦|𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛(𝑥,𝑦)}(2-7)而ABOX通常用于描述一个描述对象是否属于某个概念以及两个或多个待描述的对象是否满足一定的关系。。可以将ABOX形式化定义为:{𝑥|𝑖𝑠𝐶𝑜𝑛𝑐𝑒𝑝𝑡(𝑥)}(2-8)或者{𝑥,𝑦|{𝑥,𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛,𝑦}}(2-9)本体使用自身的特点,通过描述这两种不同的逻辑,来进行相关领域概念的知识推理。2.3本体信息检索模型信息检索用于向用户提供信息的搜索功能。其主要流程主要分为两个步骤,其一根据已有数据仓库内相关领域知识及内容,使用一定的策略,建立数据索引,方便进行数据的定位与提取。其二,通过用户提供的搜索关键词,在索引项内进行查找,并根据索引定位到匹配的数据仓库内容进行提取返回。随着检索的不断发展,专家学者们提出了很多检索模型,其中比较经典的包括布尔模型、向量空间模型、概率模型。接下来先介绍这三种传统的检索模型。2.3.1.布尔模型布尔模型[35]是一种最简单的检索模型,其将待搜索内容按照某种策略进行分割,并将用户搜索关键词进行适当的分割,并将分割后的关键词对照着待搜索内容的分割结果,进行完全匹配。因此结果有两种情况:(1)匹配成功,返回匹配的内容。(2)完全匹配失败,返回未找到。布尔模型优点在于模型简单易实现,在处理大量数据的情况下有速度上的优势。然而通过上面的讨论发现,布尔模型的缺点也是非常明显的:其仅仅进行完全匹配。这样有会大大减少检索放回的结果数,并且容易遗漏真正有用的信息。2.3.2.向量空间模型1985年由Buckley等人[36]提出了向量空间模型,并成功的运用于SMART(SystemfortheManipulationandRetrievalofText)文本检索系统中。其在20 第二章基于语义的信息检索与关联推荐相关技术布尔模型的基础上,对索引项添加了权值。首先和布尔模型一样,对原始索引到的文档𝐷进行某种策略的分割,得到一个词列表向量𝑉⃑。然后通过加权算法对所有词计算权重。其中最常用的加权算法为计算词汇在文档中的TF(TermFrequency,词频)及IDF(InverseDocumentFrequency,逆向文件频率)。若令某个词𝑤在𝐷中出现的次数为𝑛,𝐷中总词数为𝑁,总文档数为𝑆。则有公式(2-10)。𝑛𝑇𝐹=(2-10)𝑁𝑆𝐼𝐷𝐹=𝑙𝑜𝑔(2-11){|𝐷||𝑤𝜖𝐷}其中|𝐷|为出现词𝑤的文档个数。最后计算该词汇的权值如公式(2-12)。𝑤=𝑇𝐹∗𝐼𝐷𝐹(2-12)通过以上公式可以对文档中的所有词汇计算对某文档权值,得到一个权值向量𝑉(𝑑)。然后用户关键词与该向量进行对照,得到关键词的向量𝑉(𝑤)。如果文档中没有对应的词汇,则该词在用户关键词中的向量为⃑0。在得到两个向量之后,计算其余弦相似度(CosineSimilarity)。𝑉(𝑑)∗𝑉(𝑤)𝑠𝑖𝑚(𝑑,𝑤)=(2-13)|𝑉(𝑑)|∗|𝑉(𝑤)|该相似度越高,则表明文档与查询词越相关。向量空间模型依然具有一些不足,例如词列表向量中的词相互是独立的,并且无法从语义层面识别用户的搜索关键词。2.3.3.概率模型概率模型充分考虑了用户检索关键词与待检索文档之间的关联性,并用概率进行描述。概率模型会通过待检索文档的集合来估算用户找到某个需要的文档概率是多少,然后通过概率值的大小来进行排序输出。通过上面的分析可知概率模型是这三个模型中唯一一个考虑了索引和文档关系的模型。结果通过概率值排序效率优于布尔模型。2.3.4.隐含语义索引模型如上三种索引模型通常基于用户检索的关键词及待检索文档的内容这些具体的信息表现形式进行索引匹配,故而无法发现表现形式下的深层次内容。隐21 电子科技大学硕士学位论文含语义索引模型(LSI)通过对大量文档进行对比,计算文档中词汇隐含在具体表现形式下的语义关系,具有一定处理语义的作用。例如某些文档中“厕所”和“卫生间”两个词汇通常在一起使用,故而认为这两个词是在一定程度上表示一个意思。而不像传统的三个模型那样认为“厕所”和“卫生间”是两个完全不相干的词汇。LSI形式上可以看成是一种空间向量模型。他将每一个文档所包含的所有词汇建成一个词列表向量,再将文档库中的所有词列表向量整合成为一张表。其中每一个项表示某个词在某个文档中出现的频度。之后把得到的表进行奇异值分解并对结果进行n截断。取截断后的结果对应的矢量作为原文档的近似表达。然后再将用户查询进行和空间向量模型相同的处理方式处理,最后与矩阵进行对比匹配,并按照相似度的大小返回文档。如上分析LSI具有以下特点:(1)不同于空间向量模型,该模型向量中保存的内容代表的不仅仅是频度关系,同事具有隐含的语义联系。(2)由于对文档向量进行分解截断,所以可以用低维度的向量表达高纬度的文档,降低了处理的复杂性及开销。(3)相对于传统模型来说更容易进行文档的自动索引及检索。2.4关联推荐系统关键推荐系统作为传统信息检索的一个分支已经逐步受到人们的重视。在包括但不限于电子商务、在线音乐、在线新闻、社交网络、个性化搜索等诸多方面表现出其不可替代的作用。由于其能够实现的可定制功能,使得可以针对不同的用户提供个性化服务,更能够让用户从海量数据中能够更轻易的定位到自己需要的信息,提高使用体验。目前主要使用的推荐策略包括:基于用户的推荐、基于物品的推荐、关联规则推荐、协同过滤推荐等等。2.4.1.基于内容的推荐基于内容的推荐策略属于较早期的推荐策略。首先系统会使用一些属性对待描述的物品进行描述,当用户对某个物品的属性进行评价之后,系统基于用户对属性的评价会对用户的兴趣进行评估,即使用机器学习算法对用户的兴趣进行学习,学习完成之后会根据结果生成一个用户描述模型,该模型记录了用户的兴趣爱好。而在需要推荐的时候,根据评估出来的用户描述模型的内容与物品的描述内容进行对比,使用余弦算法对比相似度,将相似度高的n条内容推荐给用户。例如,通过学习发现某用户偏向于喜欢具有“美国”、“犯罪”、“惊悚”属性的电影,则系统在推荐的时候便会倾向于推荐具有这些属性的电影。22 第二章基于语义的信息检索与关联推荐相关技术在学习用户兴趣的时候通常使用机器学习的方法例如:贝叶斯分类、神经网络、决策树等等方法。基于内容的推荐策略由于不用收集其他用户的评分信息,所有没有冷启动和数据稀疏的问题,并且容易推荐出新的、不流行的内容,能够为小众兴趣的用户进行推荐,最后推荐物品可以很容易的进行解释。但是该策略通常也包含一些缺点:(1)该策略需要用物品的属性对物品进行描述,但是很多物品的特征描述难于被提取并进行有效的量化,这将导致物品的描述文件具有不准确性和不完整性。(2)用户的兴趣能够进行量化被表达。(3)无法获得其他用户的描述模型。2.4.2.关联规则推荐基于关联规则的推荐(AssociationRule-basedRecommendation)是一种基于统计的推荐策略。该策略首先要求根据一定量的用户行为记录,通过一定的数据挖掘算法挖掘出用户行为之间的关联关系,并将挖掘出来的关联关系与待推荐用户的一定行为进行匹配,匹配成功之后使用关联关系进行推荐。关联规则推荐最典型的例子是:超市通过分析顾客购买小票,发现“啤酒”和“尿布”总是被同时购买,则在一个顾客购买“啤酒”的同时,超市就将“尿布”推荐给他。通过这个例子可以清楚的看到,发现““啤酒”和“尿布”总是被同时购买”属于关联规则挖掘阶段,“一个顾客购买“啤酒””属于用户行为匹配,“将“尿布”推荐给他”属于生成推荐内容并推荐给用户。通过如上对策略的分析可以简单的总结出如下关联规则推荐的一般步骤:1、使用数据挖掘算法挖掘满足要求的关联规则。2、对某一个用户,初始化一个空的推荐列表。3、遍历该用户的购买记录,或者当前欲购买的“购物车”内容,在关联规则库中找出含有这些物品记录的关联规则。4、将由这些关联规则推荐的所有物品,去除该用户已购买的物品,剩下的物品添加到推荐列表中去。5、根据某种策略对所有推荐列表中的物品进行排序。6、从排好序的推荐列表中选取前N个物品进行推荐。使用基于关联规则的推荐算法,优点在于其推荐结果易于解释,并且随着数据挖掘算法的不断发展,关联规则的挖掘会越来越精确,并且能给用户推荐新的物品。然后该策略显而易见会存在如下几个缺点:(1)基于数据挖掘的关联规则挖掘在大数据量下需要耗费很大的计算量,并且随着新数据的不断涌入,该策略需要进行一定程度上的实时计算。(2)数据预处理,包括数据清洗、数据23 电子科技大学硕士学位论文格式化等等工作同样需要大量的计算。(3)由于需要计算大量的数据,导致该策略推荐敏感度不高,不能快速的响应变化的需求,推荐依托的数据可能需要大量的离线计算才能完成。2.4.3.协同过滤推荐协同过滤推荐算法作为现在非常流行的推荐策略,受到非常广泛的研究与使用。其核心的思想在于“与你喜欢的东西大部分相同的人,他喜欢的东西你也喜欢的概率较大”。该策略的核心步骤为:(1)收集用户对物品的评分并对评分数据进行分析,进而计算用户与用户之间,或者物品与物品之间的相似度。(2)根据相似度计算结果对用户进行集合的划分,称为K邻居集。(3)使用K邻居集中其他用户对物品的评分来预测待推荐用户对该物品的评分,进而通过评分结果来进行相关推荐。通常来说协同过滤推荐主要分为基于用户的协同过滤推荐和基于物品的协同过滤推荐两个方向。2.4.3.1.基于用户的协同过滤(User-Based)基于用户的协同过滤推荐使用非常广泛,通常亦称之为最近邻算法。该算法主要步骤为:首先收集用户对物品的评分,从而获得用户与物品的二维评分向量。其次,以用户为不同物品的评分为评价依据计算不同用户之间的相似度,选取相似度高的n个用户组成n邻居集。最后,目标用户在矩阵中,对某个物品评分的缺失项由该用户所在邻居集中的其他用户对该物品的评分为基础进行预测,进而对其进行推荐。该算法具有实现简单、推荐结果易于解释、能够推荐新物品等优势,但是缺点亦非常明显:(1)用户组的评分向量将会比较稀疏,且通常维度较大,导致需要使用大量的资源进行计算才能得到推荐结果。(2)当新用户加入的时候,由于缺少适当的数据,导致难于对其划分邻居集进而进行有效的推荐,即通常所说的冷启动问题。2.4.3.2.基于物品的协同过滤(Item-Based)与基于用户的协同过滤推荐算法相似,基于物品的协同过滤推荐算法也是依据用户与物品的二维评分向量进行推荐。但是与其不同在于,基于物品的协同过滤通常使用所有用户对某一个物品的评价为依据计算不同物品之间的相似度,并从中选取K个相似度最高的物品作为一个集合。当一个用户选择了某个集合中的物品时,系统将根据相似度在该集合中选取合适的n个物品推荐给他。24 第二章基于语义的信息检索与关联推荐相关技术该策略在实际运用过程中通常会出现如下几方面的问题:(1)用户组评分向量依然存在数据稀疏的问题。(2)随着用户评分表的不断扩大,系统性能会越来越低。(3)如果某个物品从来没有被评价过,则该物品不会被推荐。2.5本章小结本章节首先讨论了基于语义的信息检索与关联推荐体系架构,然后分别从语义推理技术、信息检索模型、关联推荐三个部分介绍了主要的相关技术及研究人员进行的各项研究。为后面的章节打下基础。25 电子科技大学硕士学位论文第三章语义处理中领域本体的构建作为语义处理的核心技术本体库,在构建本体库之前需要构造一个科学的、严谨的、有效的构建与评价本体库的方法,并在方法的指导下进行本体库的开发。鉴于种种分析出来的问题,需要依据本体库构建的基本准则,对特定领域优化构建指导方法。本章的主要工作为:1、依据现有本体库构建方法与成熟的软件工程开发模型,提出一种新的本体库构建方法,对本体的构建过程进行指导。2、使用新方法作为指导来构建本体库,并与传统的方法进行对照。3.1本体库的构建标准本体库的构建方法随着对应领域及构建团队的不同,通常表现出很强的多样性。Gruber[37]等人提出了5条标准,该标准因可用于本体库的构建及对已建立好的本体库进行评价,受到了广泛的认可。该5条标准为:(1)明确性和客观性。(2)完全性。(3)一致性。(4)可拓展性。(5)最小约束。1、明确性和客观性:该标准要求所要构建的本体必须是能够真实客观的反映将要描述的特定领域并且在描述的过程中需要做到能够明确的描述概念及相关的实体,不能出现客观的描述与模棱两可的描述。2、完全性:即对待描述的对象的定义是完整的,且能够充分的对概念、实体进行描述。3、一致性:即由其他概念或实体推导出的某个概念或实体的定义,与该概念或实体的意义应当保持一致,不能出现两个或多个结果。4、可拓展性:对已构建完成的本体库添加新的概念或实体,可以不用修改现有内容直接添加,或者在已有的内容上对新的概念或者实体进行定义。5、最小约束:对于待定义描述的对象,尽量给出最少的约束条件。下面将描述在上述5条标准下,将软件工程与构建本体的传统方法相结合,并考虑实际情况而提出的一个新的本体构建方法。并说明在使用该方法构建出来的本体库能够完全符合上述5条标准。3.2基于螺旋法的本体构建方法鉴于在实际本体开发过程中可能会遇到的种种问题,本章提出了螺旋本体法用于指导本体库的开发。螺旋本体法的主要思想在于将传统的本体库构建方法进行改良并与螺旋模26 第三章语义处理中领域本体的构建型进行融合。螺旋本体法主要步骤如图3-1。明确领域及阶段需求构建是否完Y结束成编写/修改本Y体规格说明书N撰写文档/制定下一阶段工评估结果分析并化解风作险本体评估Y本体复用本体编码N定义类及其之定义实体及其采集知识间的关系与类的关系N图3-1螺旋本体法主要步骤示意图3.2.1.明确目标明确目标阶段主要包括以下几个步骤:(1)明确领域及阶段要求。(2)编写/修改本体规格说明书。在本体开发的初始阶段,由于本体库通常是与特定领域强相关的,所以首先需要明确的是将要构建的本体库将会被运用于哪个或者哪几个具体的领域中。其次由于采用迭代的模型,所以在每次迭代的开始,需要明确该次迭代需要完成的需求。通常需求可以通过形式化、半形式化、非形式化的方式进行描述,由于本体描述语言为形式化语言,所以需要将半形式化及非形式化的需求描述转换为形式化的描述方式。在该次迭代中所涉及到的需求处理完成之后,需要根据该需求确定本次迭代中,所要描述的相关概念及实体的颗粒度,并由此确定本体迭代需要涉及到的构造范围。在领域及阶段性需求等内容分析完成之后,根据分析的内容编写新的或者27 电子科技大学硕士学位论文添加修改现有本体规格说明书。说明书要求所要描述的内容尽量完整,客观真实准确。能够真实的对待描述的概念及实体进行与领域相关的定义,不能出现定义与实际情况不符合的问题并且描述要唯一且明确。3.2.2.分析并化解风险该阶段主要依据已更新完成的本体规格说明书,对本体迭代需要完成的内容进行风险评估,通常包括评价方案、识别风险、清除风险三个步骤。本体库的设计与开发人员主要负责这个阶段。首先根据更新完成的规格说明书评估当前迭代过程将会面对的例如需求变更风险、描述概念及实例的颗粒度不满足需求的风险、由于知识采集有误、人员疏漏等原因导致的本体评价不满足上述5条标准的风险等等。设计开发人员需要根据规格说明书,对风险进行预测评估,将可能发生的意外限制在可控范围内,并积极的与客户进行沟通来尽量将风险规避掉。3.2.3.本体开发该阶段主要包括、采集知识、定义类及其之间的关系、定义实体及其与类之间的关系、本体编码、本体评估几个步骤。可以将这些步骤归纳为4个部分,依次是开发准备、本体开发及本体评估。3.2.3.1.开发准备该阶段主要为后面的开发工作做准备。其中主要包括本体复用及知识采集两个部分。在每一次本体迭代开发的开始,应该检查是否存在现有的本体库能够进行复用。在评价是否可以复用的时候,应该通过现有本体中的概念、实例、术语、术语的范围、描述对象的颗粒度等等因素进行综合的考虑,尽可能的简化本阶段的开发工作,提高本体库的整体开发进度。如果发现现有本体可以进行复用,则直接将该部分本体内容与上一次迭代完成之后的内容进行合并,并直接进入本体评估阶段。如果在本体复用阶段发现没有现成可用的本体进行使用,则需要准备开发本体迭代需要构建的本体内容。首先需要根据待构建本体的描述对象、描述范围、描述的颗粒度进行相关领域知识的采集。该阶段通常通过如下途径进行知识的获取:(1)查阅相关领域书籍。(2)上网查阅相关领域信息。(3)对相关领域专家进行采访并记录知识建议,或者邀请相关专家参与到具体的本体开发过程中。(4)查询相关领域发表的硕博士、期刊、会议等等上面的论文,特别是本体开发过程中涉及一些领域特有的、前沿的、较新的内容。28 第三章语义处理中领域本体的构建3.2.3.2.本体开发在对领域知识进行收集了解之后,开始本体的开发工作。本体开发主要涉及到定义类及其之间的关系、定义实体及其与类的关系、本体编码三个步骤。首先基于采集到的领域知识,根据该迭代阶段本体规格说明书,将领域的概念定义成类。然后在本体中定义类与类之间所有可能出现的关系。关系定义完成之后根据需要,定义领域实体,并确定实体所归属的类。当本体迭代所涉及到的概念、关系、实体按照本体规格说明书定义完成之后,将他们用图的形式表现出来。此表现形式通常为一个有向图,概念和实体为图中两种不同类型的节点,关系为连接不同节点之间的连线,其中若关系定义为一个二元运算符的话,通常连接线的箭头从运算符的左部指向右部。然后使用某一种特定的结构化本体描述语言对上述图进行编码,得到最终的该阶段本体。通常来说使用一些例如protégé之类的本体开发工具进行开发的时候,用图的表现形式进行表现与本体的编码通常是同时进行的。3.2.3.3.本体评估该次迭代下本体开发完毕之后,需要对本次构建的本体进行评估。评估阶段由客户参与完成,主要依据前面描述的5条标准对该阶段本体进行评估,即明确性和客观性、完全性、一致性、可拓展性、最小约束。本体评估在整个迭代周期中属于非常关键的一个步骤,通过客户不断参与评估能够有效的控制本体的构建方向,并能够及时的发现并纠正错误,保证后面的开发过程能过顺利有效的进行。如评估过程发现了问题,需要返回到错误的地方进行及时的修改,并且根据对本次迭代的开发情况进行评估,可以对下一次迭代计划进行适当的修改。3.2.4.撰写文档/制定下一阶段工作在该次迭代完成之后,首先对本次迭代中所构建的本体建立文档,以保证本体的可读性,在必要的时候还需要建立本体使用手册,对第三方使用该本体进行适量的指导。然后根据需求及实际情况制定下一阶段的工作计划。例如与客户进行沟通确定下个迭代需要完成的工作量,迭代中的每个过程将会采用哪些方法,对可能用到的材料进行准备,通知并对可能参与迭代过程的人员进行适当的培训。还需要根据之前客户给出的评估结果对该计划进行适当的调整以改进迭代过程,提高迭代的结果与效率。29 电子科技大学硕士学位论文3.3使用protégé构建本体本章将简单描述作者在protégé中使用螺旋本体法进行开发的过程。在进行本体开发编码的时候,如果不借助任何开发工具,纯人工进行的话,将会是一件耗时费力,且容易出错的工作。在构建完成之后还需要人工对很长的本体文本进行逐条检查,大大增加了出错,漏查的概率。所以通常在进行本体开发的时候,会借用一些本体开发工具来帮助本体设计开发人员工作。其中由斯坦福大学发开的Protégé可视化本体构建工具是众多开发工具中的佼佼者,如今已运用于很多领域。在本体描述语言上,protégé支持包括OWL(WebOntologyLanguage,网络本体语言)、RDF(ResourceDescriptionFramework,资源描述框架)等多种描述方式,并且支持在这些本体上进行可视化的创建及相关。在protégé中本体的可视化表现形式使用类似树的结构,每一个本体的最上层概念,即该树的根节点总是一个名为thing的节点,其后所有的节点均派生自该节点。在thing节点下面,根据本体库规格说明书,可以定义并在protégé中标记出相应的概念、子概念、实例、属性、关系等等内容。然后将所有的这些元素关联到一起,protégé会根据可视化下标示的内容,按照要求自动生成本体文本并进行储存,方便用户进行再利用。Protégé在使用过程中通常具有如下几个优点:(1)protégé是一个自由免费的本体开发软件,并且支持用户根据自己需求自行开发插件以实现一些系统没有的功能。(2)protégé支持多种本体的描述语言,方便用户根据自己的实际需求进行灵活的选择(3)protégé目前还在不断的更新中,现最新版本为5.0beta,用户不用担心自己使用的东西已过时。(4)protégé支持中文编码,为编辑中文本体提供了便利。使用protégé可视化本体构建工具构建本体过程如下:1、首先根据需求,新建一个本体库或者将另一个可重用的本体库添加进protégé中。如果是新建的本体,由于本体是通过本体URL进行识别的,所以需要在本体头部设置本体的URL。然后对新建的本体点击保存可以看到protégé所支持的所有可描述本体的形式,其中包括RDF、OWL、Latex等等。用户需要选择一种自己需要的形式对新的本体进行保存。新建本体及可选的本体保存形式如图3-2。30 第三章语义处理中领域本体的构建图3-2新建本体及可选的本体保存形式示意图2、其次,根据本体规则说明书中的描述,在protégé中定义类及其之类。在定义类的时候,需要根据其具体描述的概念,对类的属性进行设置。其中主要包括类的注释、类的父类、类的同义类、类包括的实例对象等等参数,设置见图3-3。图3-3类设置示意图3、类定义完成之后,需要对本体规格说明书中描述的所有实例进行设置。同定义类相似,在定义实例的时候需要根据实例的特征进行相关参数的设置,其中主要包括实例的注释、实例所属类型、实例和哪些实例表示的是同一个等等内容。实例的设置见图3-4。31 电子科技大学硕士学位论文图3-4实例设置示意图4、实例定义完成之后需要定义类与类之间,类与实例之间的各种语义、逻辑的关系。其中在定义关系的时候主要需要设置的属性为关系所属的定义域及值域。关系的定义如图3-5。图3-5关系定义示意图5、在反复的通过上述步骤,本体建立完成之后,使用protégé自带的基于产生式的推理系统,默认进行基于公理的本体库推理。通过公理的推理可以发现本体在构建过程中的逻辑错误、错误的层次关系、错误的字符串等等,用户也可以定义自己的推理规则,实现定制化的推理结果,用来进行本体库的测试。3.4螺旋本体法比较本章提出了一种基于软件工程模型的本体库构建方法。本章节将用新的本体构建方法与传统的经典算法进行比较分析,从而得出本算法的优势所在。本32 第三章语义处理中领域本体的构建章节将与传统的骨架法与七步法进行对比分析。主要分为三个部分:构建准备、本体构建、后续工作进行比较说明。1、构建准备。该阶段主要在构建本体之前进行一些准备工作,其中包括确定本体需求范围,复用本体等等内容,详细对比结果如表3-1。表3-1对比结果表骨架法七步法螺旋本体法明确本体目的及范围完整的本体目的及范完整的本体目的及范该迭代阶段涉及到的并根据需要撰写本体围分析。完整的本体围分。完整的本体规本体的目的及范围分规格说明书规格说明书格说明书析。与该迭代相关的本体规格说明书分析项目风险并尝试无无完整的基于该阶段的解除风险风险分析与风险的解除。复用现有本体无有有通过上述的分析发现,螺旋本体法在构建准备阶段与传统本体构建方法的最大不同在与在本体目的确定阶段仅仅需要确定的是当前迭代阶段中所涉及到的本体的目的及范围,这样将一份庞大的本体规格说明书分阶段的进行完成,使得构建目的更明确,更容易发现在本体规划阶段中出现的问题,例如与用户实际需求之间出现偏差等等问题。同时,螺旋本体法在构建准备阶段加入了重要的分析项目风险并尝试解除风险的阶段。通常本体库的构建是一个庞大的工程,通过这个阶段可以很好的将项目风险控制在可控范围之内,避免造成大的损失,而这是传统本体构建方法所不具备的。2、本体构建本体构建阶段与传统本体构建方法类似,在此不再赘述。3、后续工作本阶段为本体编码完成之后的后续工作阶段,其中包括本体评估,文档维护等等内容,详细对比结果如表3-2。33 电子科技大学硕士学位论文表3-2对比结果表骨架法七步法螺旋本体法本体评估整个本体构建结束之无对当前迭代内构建的后进行统一的评估本体进行评估撰写文档及指导方针整个本体构建结束之无撰写当前迭代内所涉后进行统一的撰写及到的已构建的本体进循环迭代无无在客户的参与下制定下一阶段的工作。通过上述分析发现,螺旋本体法在后续工作阶段最主要的不同点在于,只需要对本阶段所涉及到的本体进行本体的评估,并针对这部分本体撰写相关文档及指导方针。并且螺旋本体法因为使用螺旋迭代的开发方法,所以在一次迭代开发完成之后,需要用户参与总结本阶段工作,并对下一次迭代工作内容进行制定,保证了本体的构建不会偏离用户的实际需求。发现问题能够及时修改,避免由于鲁棒原理造成大的差错导致项目的失败风险,这对于一个大的项目来说是很有必要的。总结上面对比分析发现螺旋本体法主要具有如下两个优点:1、迭代的进行本体库的开发,并非一次性的或者几次开发完成,保证每个阶段的工作都能够接受用户的考察,避免出现与用户的实际需求产生偏差,造成项目失败的风险。在一个阶段工作完成之后,可以同客户一起对本阶段的工作进行总结,改正不足之处,并与用户一起制定下一次迭代的工作的目标方案与计划及相关准备工作。有利于项目的整体开发。2、每次迭代都有风险分析及风险解除阶段,很好的将项目风险控制在可控范围之内,并且能够对潜在的风险进行及早的分析,希望能从早期,从根源上解决问题。3.5本章小结本章在遵从本体库构建标准的基础上,基于第二章中对本体库构建方法的研究,提出了一种基于软件工程方法的本体库构建方法。本章亦介绍了构建本体库所使用的工具以及新方法与现有方法的对比分析。34 第四章信息检索中基于Lucene的信息索引第四章信息检索中基于Lucene的信息索引传统的搜索引擎以文件内容为基础进行全文索引。待索引的内容主要依据文件在某特定语言下的字或者词为单位进行。然而由于文件内容并不直接是本体的内容,需要进行至少一次映射才能转化成本体描述形式,所以需要通过对Lucene原有索引结构进行研究分析,并在此基础之上对Lucene的索引结构进行改进以符合本体搜索的需求。本章节主要完成以下几项工作:1、在原有Lucene索引结构的基础之上,根据基于本体的搜索特性,提出一种基于本体的索引结构,并在Lucene完成特定领域本体信息的索引建立。2、在原有Lucene评分机制上,提出一种适用于语义信息检索的文档评分算法,并验证其有效性。4.1基于本体属性的索引如上所述,传统搜索引擎中的索引通常基于待索引文档中,在某特定语言环境下的字或者词为基础进行。搜索引擎首先会对待索引文档按照不同的区块进行划分。例如将文档按照“标题”、“正文”、“描述部分”等等进行划分。接下来在不同的区域内根据自然语言分词的关键词对原文建立索引,例如“苹果”,“电脑”等文章中出现的词汇作为索引项保存到索引库中,之后将所有包含某个关键词的文档全部“链接”到这个关键词后面,形成一个链式的结构,将所有文档中所有的词全部进行如上的处理并保存到索引库之后,一个搜索引擎的索引就建立完成了。当用户在搜索引擎中输入某个查询语句之后,搜索引擎先将该搜索语句根据自然语言处理算法进行分词,并将停用词等对搜索结果几乎没有印象的词语剔除,之后根据简单的字符串匹配算法将关键词在索引库中进行搜索。找到匹配的之后,将关键词后面“链接”的文档使用评分算法进行打分,最后将文档按照分数高低展现给用户。而基于本体属性的索引基于预先构建完成的本体库进行索引。其与传统的索引结构最大的不同在于其索引的结构为本体的各个属性。由于本体具有强领域相关性,顾描述本体的各个属性也是强领域相关的,不同的领域不同的对象或许拥有不同的属性。与传统的搜索引擎相同的是,系统在接受用户查询语句之后,依次进行自然语言分词、剔除停用词步骤之后,将得到的关键词与依据本体属性构建的索引库进行比对,之后找到对应的本体并经过相关度评分算法35 电子科技大学硕士学位论文计算本体评分,最后根据评分结果将本体展现给用户。图4-1是传统索引的过程,图4-2是基于本体属性的索引过程。网络爬虫网页库网络爬虫IInntteerrnneett网络爬虫网页1索引器Title网页2Content网页n-1Link网页n-2Time图4-1传统索引过程示意图网络爬虫网络爬虫实体抽取器Internet网络爬虫网页库实体数据库本体1属性1本体2属性2索引器本体n-1属性n-1本体n-2属性n图4-2基于本体属性索引过程示意图下面的小节将首先对Lucene进行分析研究,并在此基础之上对其索引结构进行优化。4.1.1.Lucene的分析作为Apache基金会旗下的一个项目,Lucene已经帮助许许多多的企业、个36 第四章信息检索中基于Lucene的信息索引人用户创造了极大的价值。从总体上看,Lucene是一个全文检索引擎框架,框架内包括了完整的检索及索引模块。Lucene开发的目的在于其是一个简单好用的工具包,使用该工具包可以方便的构建自己的全文检索引擎,或者将Lucene集成到现有系统中实现文件的索引检索功能,因此从这个角度上看,Lucene并不是一个全文检索引擎。数据源Org.apache.lucene.queryPaser查询语句对外Org.apache.lucene.searchOrg.apache.lucene.analysis接口查询结果Org.apache.lucene.indexOrg.apache.lucene.document索引器核Org.apache.lucene.util心Org.apache.lucene.store基础结构封装索引文件图4-3Lucene系统组织及代码组织结构示意图Lunece一个很大的特点在于其开放源代码,使得全世界对其感兴趣的人都能够实际参与到项目开发完善过程之中,例如Lucene的开源社区通常比较活跃,使得以JAR包发布的Lucene能够向开发者提供优雅高效的面向对象的各种功能API。利用这些API,开发人员可以方便高效的开发自己的全文搜索引擎或者在自己的项目中添加文档的检索及搜索功能。当然能够实现这样的效果,主要原因在于Lucene源代码开源的特性、优秀的索引结构,以及良好的查询、索引引擎。Lucene全部框架使用JAVA开发完成,因此得益于JAVA跨品台的特性,Lucene几乎能够运行在任意平台之上,并且考虑到通用性,Lucene能够索引所有文本形式的文件内容,这意味着只要能转化成文本文档的数据都可以作为Lucene的索引数据来源。并且由于其优秀的面向对象设计,使得用户在任何时候,比如跨平台的时候,能够不用关心其底层的实现细节,能够将注意力放在自己需要实现的功能上去,这样一种模块化的高内聚、低耦合的设计与实现使得其便于使用、易于扩展,大大降低了用户基于其进行二次开发的各项成本。目前Lucene最新版本为5.0,并且还在不断更新中。从Lucene的组织架构上看,其主要分为三个部分:(1)基础结构封装。(2)37 电子科技大学硕士学位论文索引核心。(3)对外接口。Lucene系统组织及代码组织结构如图4-3。其中各个代码包的主要功能如表4-1。表4-1代码包主要功能表包名主要功能Org.apache.lucene.queryPaser这个包作为org.apache.lucene.search的语法解析器,实现查询关键词间的各种运算,如与、或、非等。不被系统之外实际调用。Org.apache.lucene.serach这个包提供了对在建立好的索引上进行搜索所需要的类。比如IndexSearcher和Hits,IndexSearcher定义了在指定的索引上进行搜索的方法,Hits用来保存搜索得到的结果。Org.apache.lucene.analysis这个包对文档进行自然语言分词操作。Org.apache.lucene.index这个包主要负责协助创建或更新索引。其中包括两个类:IndexWriter和IndexReader。IndexWriter用来创建索引并添加文档到索引中,IndexReader将索引中的文档进行删除操作。Org.apache.lucene.store这个包数据存储管理,主要包括一些底层的I/O操作。Org.apache.lucene.document这个包提供了一些为封装要索引的文档所需要的类。每一个文档最终被封装成了一个Document对象。Org.apache.lucene.util这个包包含一些公用的数据结构及相关公用操作。在详细了解Lucene系统组织架构之后,为了能够更深入的了解Lucene运作机理并能够深入优化,需要再来分析Lucene的数据流情况,并且对Lucene处理数据的时序进行研究。Lucene系统整体数据流如图4-4。38 第四章信息检索中基于Lucene的信息索引数据源索引文件(1)构建索引(3)(2)查询语句(1)词法分析(分词等)(2)(3)查询语句语法分析(4)查询结果(1)评分排序逻辑(2)索引查找(3)存储(1)文本流(2)词向量(3)字节流(4)查询语句流图4-4Lucene系统整体数据流示意图从图中可以看到Lucene一共有4种类型的数据流,分别是:DocumentStream、TokenStream、ByteStream、QueryObjectStream。1、DocumentStream:DocumentStream作为索引数据数据流的抽象表示与向用户输出信息的抽象表示。主要用于索引模块及交互模块。值得一提的是,DocumentStream并非使用常见的UTF-8作为编码形式,而是使用UCS-2进行编码。2、TokenStream:TokenStream为Lucene自用概念,用以抽象自然语言中“词”的概念,是Lucene在处理索引时的最小处理颗粒。3、ByteStream:ByteStream在Lucene中抽象了对文件的操作。其根据一定的固定长度(通常为8比特位长的流)对不同文件系统的文件操作进行了封装,统一以流的方式进行操作。4、QueryObjectStream:QueryObjectStream主要在进行QueryPaser时用到。其将查询语句进行一定的抽象之后,传递给查询模块进行查询。通常搜索引擎的索引步骤为先进行正排索引,在正排索引的基础之上进行倒排索引。首先搜索引擎将某个文档的内容进行自然语言分词,并将该文档所包含的字、词像一条链子一样链接到以该文档编号为头的链表上去。正向索引完成之后再扫描所有文档的字、词链表,将这些链表转化成以词为链头,所有包含该词的文档编号为链表内容的倒排表,至此索引过程结束。通过上面的描述,可以清晰的将Lucene的索引表形式抽象为图4-5的样子。39 电子科技大学硕士学位论文Web136153134175...Information1231424453321...Entity6753222342......词项倒排记录表图4-5索引表抽象示意图当然为了改善Lucene的检索效率,设计开发人员在设计Lucene的时候对传统的倒排索引结构进行了改进,Lucene实际倒排索引结构如图4-6。Document1Term1Document2Term2Segment1Field1......Segment2Field2segmentfieldSegment3...document...index图4-6Lucene倒排索引结构示意图从图中可以看到Lucene索引结构主要包含了5个层次,分别是:索引(Index)、段(Segment)、文档(Document)、域(Field)、词(Term)。1、Index:Lucene的索引文件按照文件夹进行划分,同一个文件夹下的索引文件构成一个索引。2、Segment:段是对一个索引的第一次划分,所以对于同一个索引来说,可以有多个段,段与段之间是相关独立的,在索引中添加新文档可以生成一个新的段,不同的段之间可以进行合并。3、Document:文档为索引的最基本单位,不同的文档在新加入系统时处于不同的新段中,随着段的合并,不同的文档可能会出现在相同的段中。40 第四章信息检索中基于Lucene的信息索引4、Field:通常一篇文档可能包含不同类型的信息,因此可以将一篇文档划分成不同的域。在建立索引的时候可以对它们分开建立索引。文档的不同类型信息可以是:标题、作者、正文、尾注等等信息。5、Term:词为索引的最小单位,其内容通常为文档某个域中,根据自然语言分词的结果得出的字或者词或者一个字符串。在Lucene的索引文件中还包括了倒排索引的文件,其中主要包括保存了从词(Term)到文档(Document)的映射文件、保存了包含每个词的文档ID列表、保存了每个词在包含该词的文档中的位置等等信息。4.1.2.本体索引结构在分析Lucene索引结构的基础上,由于本文索要建立的索引不是基于文档而是基于本体,顾需要对Lucene的索引结构进行改进。图显示了一个典型的本体所具有的结构抽象图4-7。名称参数型号产品...类型价格来源图4-7典型本体结构抽象图其中“产品”为本体所描述的概念或实例,其余节点为该概念或实例所具有的相关属性信息。结合上面所述Lucene索引结构中的索引,段,文档,域,词五层结构,将Lucene的索引结构改进为索引,段,概念或实例,属性,词五层结构。改进后的索引结构如图4-8。41 电子科技大学硕士学位论文本体1Term1Segment1本体2属性1Term2...Segment2...属性2fieldsegmentSegment3...document...index图4-8Lucene改进后的索引结构示意图通过对修改后的索引结构进行分析认为,显然该结构可以很好的作为基于本体的信息检索的索引结构进行使用。4.2检索结果评分由于信息量的巨大,一套好的搜索结果评分排序机制显得尤为重要。因为搜索所返回的结果数通常为十万甚至百万条的数量级,而与之对应的是通常用户只会浏览搜索结果的前几百条甚至几十条结果,所以搜索结果的排序能够在很大程度上影响用户的搜索体验,同时也影响着用户搜索的效率。也因此,好的评分排序机制显得尤为重要。4.2.1.Lucene的评分机制由于Lucene是一个完整的全文检索系统框架,所以其内部有一套自己的对于搜索结果的评分机制。Lucene通过对搜索语句进行分析,实时的计算相应结果的评分,并按照评分结果的高低对所有搜索出来的结果进行排序展现给用户。本章节首先分析Lucene内部评分公式,并在此公式基础之上进行改进,将评分高的结果尽量的靠前,提高用户的搜索效率与体验,并使之更适合本体搜索。通常Lucene内部对文档的评分公式如公式(4-1)。ℎ𝑖𝑡𝑃𝑜𝑖𝑛𝑡(𝑞,𝑑)=𝑐𝑜𝑜𝑟𝑑(𝑞,𝑑)×𝑞𝑢𝑒𝑟𝑦𝑁𝑜𝑟𝑚(𝑞)×∑(𝑡𝑓(𝑖𝑡𝑛𝑑)×𝑖𝑑𝑓(𝑡)2×𝑡.𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡()×𝑛𝑜𝑟𝑚(𝑡,𝑑))(4-1)𝑡𝑖𝑛𝑞公式(4-1)中,𝐶𝑜𝑜𝑟𝑑(𝑞,𝑑)计算思想为一篇文档内可能包含很多的查询词,当包含的查询词越多,则该文档的评分越高。𝑞𝑢𝑒𝑟𝑦𝑁𝑜𝑟𝑚(𝑞)为计算各个查询词语的方差和,使得不同词之间的分数可以进行比较,即数据的归一化。𝑡𝑓(𝑖𝑖𝑛𝑑)计算某个查询词在该文档中出现的频率大小。𝑖𝑑𝑓(𝑡)计算在全部文档42 第四章信息检索中基于Lucene的信息索引中出现某个查询词的文档数的倒数。即某个词在所有文档中出现的越少,则包含该词的文档评分越高。𝑡.𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡()表示某个词在查询中的权重,增加该项数值可以增加该词在查询中的重要性。𝑁𝑜𝑟𝑚(𝑡,𝑑)为标准化因子。主要包括3个参数:(1)文档激励因子Boost:该值越大,说明此文档越重要,(2)查询词激励因子Boost:该值越大,说明该词越重要。(3)文档长度负相关因子:文档越长,该值越小,文档越短,该值越大。其中在公式(4-1)中的𝑁𝑜𝑟𝑚(𝑡,𝑑)的计算公式为公式(4-2)𝑁𝑜𝑟𝑚(𝑡,𝑑)=𝑑.𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡()×𝑙𝑒𝑛𝑔𝑡ℎ𝑁𝑜𝑟𝑚(𝑓𝑖𝑒𝑙𝑑)×∏𝑓.𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡()(4-2)𝑓𝑖𝑛𝑑1𝐿𝑒𝑛𝑔𝑡ℎ𝑁𝑜𝑟𝑚(𝑓)=(4-3)√𝑛𝑢𝑚𝑜𝑓𝑡𝑒𝑟𝑚𝑠𝑖𝑛𝑓𝑖𝑒𝑙𝑑𝑓公式(4-2)中𝑑.𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡()为文档的激励因子。其在文档的索引阶段被写入文档的索引中。𝑓.𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡()为查询词的激励因子。表示在搜索的时候,哪些域或者词更重要。Lucene激励因子默认为1.0,在实际运用中,通过使用激励因子可以有效的标示查询语句或者文档的重要程度,能够将不同的重要程度反映到用户最终看到的搜索结果排序中。在Lucene构建索引时,可以进行人工设置激励因子,在用户进行查询时,系统也可以通过调用内部API对激励因子进行设置。4.2.2.Lucene评分算法改进通过设置不同文档、域、词的激励因子,可以使不同的重要性对最后的搜索结果排序起到影响,提高用户的搜索体验。但是由于查询语句及相关文档所涉及到的领域通常比较广,词汇量非常大,所以给权重进行人工标注带来了很大的困难,同时如何对用户的搜索语句进行实时权重标注也是一个问题。基于上述考虑作者提出了一种同时兼顾词频思想(IDF)、点击率(User)、基于经验(Exp)的自动标注权重的方法用来自动标注查询词的激励因子。TF-IDF在信息检索领域是常用的一种加权方法,主要方法为统计一个字或词在某个文档及所有文档中出现的频率。通过统计完成的频率可以用以计算某个词对于一个文档集合或者一个语料库中的文件的重要程度。通常那些在某一篇文档中出现次数多,但是在总的文件库中出现次数少的词语,认为其更具备标示一篇文档的作用,即其将具有更高的TF(词频)-IDF(逆向文件频率)值。通常TF(词频)计算公式如公式(4-4)。43 电子科技大学硕士学位论文𝑛𝑖,𝑗𝑡𝑓𝑖,𝑗=(4-4)∑𝑘𝑖𝑛𝑗𝑛𝑘,𝑗公式(4-4)中𝑛𝑖,𝑗表示某个词𝑖在文档𝑗中出现的次数。∑Kinjnk,j表示文档𝑗中所有字数和。从公式中可以看出,某一篇文档中,某个词出现越多,则该项值越大。而通常IDF(逆向文件频率)计算公式如公式(4-5)。|𝐷|𝑖𝑑𝑓𝑖=𝑙𝑜𝑔(4-5)1+|{𝑗:𝑡𝑖∈𝑑𝑗}|公式(4-5)中|𝐷|表示语料库中的文件总数。{𝑗:𝑡𝑖∈𝑑𝑗}表示包含某个词i的文件数目。为了消除该词不在语料库中导致分母为0的影响,此处给分母+1。由此TF-IDF的计算公式为公式(4-6)。𝑇𝐹𝐼𝐷𝐹𝑖,𝑗=𝑇𝐹𝑖,𝑗×𝐼𝐷𝐹𝑖,𝑗(4-6)文章所述方法使用IDF算法与传统算法公式的项意义有所区别。其中,|𝐷|表示包含某个词的本体的个数。{𝑗:𝑡𝑖∈𝑑𝑗}表示本体库中本体的总数。点击率是表征一个待搜索文件重要程度的另一个指标。通过对一段时间之内用户点击数据的统计,可以统计出在相同的搜索关键词查询下,用户更倾向于选取哪几个文档进行访问,从而将这些文档在搜索结果中的评分提高以提前其在排名中的位置。文章所描述的方法统计本体被用户实际点击的数据进行干预排序。44 第四章信息检索中基于Lucene的信息索引开始输入查询语句分词、去除停用词查询IDF、经验评分数据库,点击率统计。存在记录否设定评分为1是取出记录进行计算设定每个词的boost评分计算文档评分根据评分进行排序并输出结束图4-9查询语句的查询流程示意图基于经验加权则是依据数据源在经验上重要程度对其进行设置。本体信息的提取可以基于不同的网站、书籍、专家访谈、各类文献等等不同的数据源。本体提取完成之后可以依据经验给较权威的数据源提取的数据设置较高的权值,这也符合用户通常使用搜索引擎的习惯。用户更倾向于选择领域中比较权威的信息来源进行浏览。基于经验的加权数值范围通常在0~1之间,数值越大表明从某个数据源获取到的该本体信息更重要。45 电子科技大学硕士学位论文通过对本方法三个方面进行分析,得出如下自动标注激励因子的公式(4-7)。𝑏𝑜𝑜𝑠𝑡=𝛼×𝐼𝐷𝐹+𝛽×𝑈𝑠𝑒𝑟+𝛾×𝐸𝑥𝑝(4-7)其中为𝛼,𝛽,𝛾三项内容的影响权值,可以根据具体的实际情况进行调整,作者建议值为𝛼=50%,𝛽=40%,𝛾=10%。下节的实验亦使用这样的权重配比进行。最后,图4-9显示了整个查询语句的查询流程。4.3实验与分析本小节将使用具体的数据对上面提出的算法验证其有效性。4.3.1.实验数据来源作者使用数据来自京东及天猫网自行收集的包括手机、牛仔裤、香水三个商品种类的商品信息。首先使用网页爬虫对上述类型的商品网页进行爬取,之后使用第三章介绍的本体库构建方法,对爬取到的商品信息建立本体库,并使用本体推理系统验证本体的完整性、正确性、一致性。经过验证之后的本体信息再根据本章所提出的索引格式在Lucene中建立索引。至此数据准备完毕。其中共包括上述三类商品信息网页4000个,其中包含约70000个商品本体信息。收集到的数据经过预处理之后的典型信息格式如表4-2。表4-2典型信息格式表<项名>Levi's李维斯501系列男标准直筒水洗牛仔裤项名><定价>799元定价><天猫价>559元天猫价><折扣>0.749折扣><上市年份季节>2014年秋季上市年份季节><颜色>蓝色颜色><适用季节>四季适用季节><款式版型>合体直筒款式版型>4.3.2.评价标准评价搜索引擎通常使用该搜索引擎的准确率及召回率进行有效的评价。召回率(RecallRate)即查全率,用以评价搜索引擎检索出所有相关文档的能力。其计算思想为搜索引擎检索出的相关文档数目,与系统中所有相关文档46 第四章信息检索中基于Lucene的信息索引的数目的比值。值得一提的是,搜索引擎每次检索的结果并不一定所有都是与查询相关的,所以召回率只统计那些检索出来的文档中与查询相关的文档的数目,当然总文档库中的相关文档数目同上。在本文中,令结果中相关本体数目为𝑛𝑟,所有相关本体的数目为𝑁𝑟,则召回率的计算公式如公式(4-8)。𝑛𝑟𝑅𝑒𝑐𝑎𝑙𝑙=(4-8)𝑁𝑟查准率(Precision)用以评价搜索引擎检索结果准确度的指标。其计算思想为搜索引擎检索出的相关文档数目,与搜索引擎检索出的所有文档数目的比值。与召回率不同的是,查准率使用的数据不一定全部要与查询相关。在本文中,令结果中返回的结果数为𝑁,则查准率的计算公式如公式(4-9)。𝑛𝑟𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛=(4-9)𝑁对于一个检索系统来说,召回率与查准率通常是互逆相关的。在达到一定的阈值之后,想要提高系统的召回率就必须降低系统的查准率,反之亦然,亦即会出现召回率高时,精度低,精度高时,召回率低的现象。由于搜索引擎通常返回大量的结果,而比较靠后的结果其实对于用户来说是完全没有作用的,所以本文使用Precision@K来表征检索结果中的第K项来评价算法的有效性。Precision@K计算公式如公式(4-10)。𝑛𝑟𝑖𝑛𝑇𝑜𝑝−𝐾𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛@𝐾=(4-10)𝑘4.3.3.实验及结果在实验系统中,因为需要对查询语句进行中文自然语言分词,固此处作者使用中科院分词系统ICTCLAS对查询语句进行词切分。该系统使用C/C++开发,兼容JAVA语言,分词精度超过98%,是当前名气最大的中文分词系统。该系统用层叠隐马尔可夫模型实现,满足实验需求。为了计算系统的召回率及查准率,作者使用9个查询语句进行数据统计,具体的查询结果如表4-3。47 电子科技大学硕士学位论文表4-3查询结果示意表编码查询语句相关文档数1李维斯牛仔裤男504582李维斯牛仔裤男5013563GXG牛仔裤男2144Iphone61065三星Note426796小米4227真我27378香奈儿COCO4729CK香水596对查询结果进行统计之后,使用SimHash算法[38]来计算搜索出来的本体是否相关。首先将会对上述9个搜索语句搜索出来的相关本体结果计算其SimHash值,接下来计算实际搜索结果中所有本体的SimHash值,并将这两部分的值进行比较,如果比值大于某一个阈值,则认为两个本体为相关本体,并通过这一个数据进行评价指标计算。表4-4显示了使用上述9个查询语句下,每一个查询语句的本体召回率。通过表格可以看出,使用新的索引形式几乎可以得到很好的召回率。而通过对7号查询语句召回率偏低的分析发现,其原因在于搜索关键词搜索范围超过了上述提到的3个领域,顾夹杂了其他领域的本体,降低了召回率。表4-4召回率编号123456789对应实体583562141062679222737472596召回实体583562071002679202025462596召回率110.970.9510.950.740.981接下来作者分析了在新排序算法情况下,搜索引擎的查准率。作者分别比较了Location@10,Location@20,Location@50情况下新算法与原有Lucene算法的查准率。结果如图4-10。48 第四章信息检索中基于Lucene的信息索引图4-10查准率实验结果示意图通过图可以发现,使用了新的排序算法在一定程度上改善了原有Lucene的查准率,达到了实验的预期目标。4.3.4.实验演示本实验开发的基于本体索引的搜索引擎搜索界面如图4-11搜索主页面。用户在搜索框中输入需要查询的查询语句并点击搜索按钮,前端即向搜索引擎提交一次查询申请。图4-11搜索主页面49 电子科技大学硕士学位论文搜索引擎根据用户提交的查询语句搜索到了一个本体集合,集合内的元素根据新的评分算法进行评分及排序,例如搜索“李维斯504”之后,搜索引擎返回的结果如图4-12搜索结果页面。从图中可以看出搜索排序靠前的结果能够满足用户的需要。图4-12搜索结果页面当用户点击某个本体信息之后,页面会提示该本体下的相关属性并且还有指向这个本体的链接。本体信息如图4-13。图4-13本体信息示意图50 第四章信息检索中基于Lucene的信息索引4.4本章小结本章研究了在全文搜索引擎Lucene的基础上,针对本体库,提出了一种基于本体的索引结构,并使用大量的网页数据进行索引的构建。本章亦对现有Lucene评分排序算法进行了改进,提出了一个综合考虑了逆向文件频率、点击量及经验的自动标注权值算法,并通过实验分析说明本章提出的方法能够有效的提高现有Lucene评分排序算法,使用户能够有效的进行本体信息搜索。51 电子科技大学硕士学位论文第五章关联推荐中的协同过滤推荐推荐系统作为搜索引擎系统的补充在当今社会已显现出越来越重要的地位。其能在一定程度上弥补传统搜索引擎无法针对特定用户进行个性化服务;在海量数据中,特别当用户无法明确自己需求的时候传统搜索引擎无法很好的为用户提供服务等等弊端。协同过滤是当今使用最为广泛的推荐算法之一,但是由于其算法特征,导致其仍然存在着一些不足。本章节通过分析传统协同过滤算法,并在此基础之上基于本体对现有算法进行改进。本章节主要完成一下工作:1、分析传统协同过滤算法,对其存在的不足提出一种基于本体库的方法进行弥补,特别是在数据不足的情况下,提高其推荐准确度。2、通过实验验证改进后算法的有效性。5.1问题的提出5.1.1.协同过滤算法分析与其他推荐算法不同,协同过滤推荐算法主要依据用户对项(Item)的评分来进行相关推荐,迄今为止在业内取得了非常成功的运用[39]。而根据所要操作的对象不同,通常将协同过滤算法分为基于用户的协同过滤(User-Based)和基于项的协同过滤(Item-Based)。基于用户的协同过滤算法基于的思想为“我更倾向于与我爱好相同的人给我的推荐”,即该算法基于用户对项的评分,通过相似度算法找到与待推荐用户相似的用户,组成一个集合,并根据该集合对该待推荐用户进行相关推荐。基于用户的协同过滤算法可以很好的挖掘用户的潜在兴趣,在实际运用过程中得到了非常好的表现。然而随着用户数量的爆炸式增长,该算法的瓶颈体现在难于计算待推荐用户的邻居集合。基于项的协同过滤算法基于的思想为“我更倾向于选择与我喜欢的东西类似的东西”,即该算法基于用户对项的评分,通过相似度算法找到相似的项,组成集合,然后通过用户对相似项的评分来预测目标项的评分。从总体上来说,用户对项的评分相对稳定,所以可以进行离线的预测,且其推荐结果通常比较准确,推荐结果也容易进行解释[40]。假设待推荐项为𝑖,则与𝑖相关的邻居集合可以定义为𝑉(𝑖),并令|𝑉(𝑖)|为𝑘。则某个用户𝑢对项𝑖的预测评分𝑃由公式(5-1)计算。52 第五章关联推荐中的协同过滤推荐∑𝑗𝑖𝑛𝑆(𝑖)𝑆𝑖𝑚(𝑖,𝑗)×𝛼𝑃𝑢,𝑖=(5-1)∑𝑗𝑖𝑛𝑆(𝑖)|𝑆𝑖𝑚(𝑖,𝑗)|其中𝑆𝑖𝑚(𝑖,𝑗)表示项目𝑖与𝑗的相似性。公式的其他部分主要作用为数据的归一化,项相似度计算如图5-1。Sij12ijn-1n1RR2-R计算项目i和j的相似度sij,寻找两uRR个项目被同时评价的数据,此处共同评分用户为1,u,m-1m-1RRmR-图5-1项相似度计算示意图5.1.2.一些问题虽然运用了协同过滤算法的各个领域在实际使用过程中取得了比较令人满意的结果,但是在实际使用中逐渐出现一些问题。1、在某些情况下将导致项相似度计算不够准确,其中包括但不限于:(1)当用户-项评分矩阵处于比较稀疏的情况下,由于数据量很小,所以难于用相似性公式计算项之间的相似度,计算不准确。(2)计算公式从现实上导致推荐的内容没有考虑物品的既有属性,这类推荐方法倾向于推荐与用户已购买或者已评价的项相关类别的项,难于挖掘用户的潜在兴趣。2、在选取推荐集合时,其K值由于受到用户-项评分矩阵的影响而导致其值难以确定。3、协同过滤算法过于依赖用户对已评分项目的分数,而轻视其他用户对待推荐项的评分情况,导致评分比较草率。基于以上对基于项的协同过滤算法的研究与分析,作者结合传统的协同过滤算法与本体库现有的知识结构,提出一种基于本体库的协同过滤算法。53 电子科技大学硕士学位论文5.2基于本体的协同过滤由上所述,传统的基于物品的协同过滤算法其缺点主要源于由于项的数量特别巨大,而且随着时间的推移项的数量增长也是非常的大。而普通的用户不可能对大部分项进行评分,这将直接导致用户-项评分数组非常的稀疏,致使就算系统运行了一段时间收集了一定的数据,数组内的数据量依然不能满足计算项相似度的要求,从而降低了推荐的准确率。由此需要对协同过滤算法进行改进,以弥补该算法的不足。5.2.1.常见用户数据矩阵通常的协同过滤推荐算法使用用户-项评分矩阵作为其算法的数据支持。其中一个典型的用户-项评分矩阵结构如表5-1。表5-1典型的用户-项评分矩阵结构示意i1…it...inu1R1,1R1,tR1,n…uaRa,1?Ra,n…umRm,1Rm,tRm,n从表中可以看到,一个典型的用户-项评分矩阵通常包含如下几个内容:UID,IID,Point三项内容。各项内容的简单解释如表5-2。表5-2用户-项评分矩阵内容解释表内容解释UID系统用于唯一标识一个用户的字符串,该字符串可用于用户信息表的外键。IID系统用于唯一标示一个项的的字符串,该字符串可用于项信息表的外键Point第i行j列的Point数值代表用户i对项j的评分情况。评分可以简单的用1或者0表示喜欢或者不喜欢,也可以使用一定范围内的数值,当数值越大的时候表明该用户越喜欢项j。54 第五章关联推荐中的协同过滤推荐由该表的结构可以想象,当项的数目非常大的话,很容易造成该矩阵数据稀疏的问题,从而导致无法准确的计算项之间的相似度并继续后面的推荐操作。5.2.2.常用相似度算法在进行基于项的协同过滤算法中,计算出基于项的邻居集合是能够推荐的关键点,而要计算项的邻居集合,则需要计算项目之间的相似度,即公式(5-1)中的𝑆𝑖𝑚(𝑖,𝑗)。常用计算相似性的算法分为如下三个:1、余弦相似性。2、修正的余弦相似性。3、相关相似性。使用余弦相似性进行项之间的相似性计算时,对于某一个项来说,其对应了一个m维的向量,其中第𝑧个向量表示第𝑧个用户对该项的评分。如果令项𝑖的评分向量为𝛼,且𝛼={𝑃1𝑖,𝑃2𝑖,𝑃3𝑖,…,𝑃𝑛𝑖}项𝑗的评分向量为𝛽,且𝛽={𝑃1𝑗,𝑃2𝑗,𝑃3𝑗,…,𝑃𝑛𝑗}则项𝑖和𝑗的相似度𝑆(𝑖,𝑗)的计算公式如公式(5-2)。𝛼×𝛽𝑆(𝑖,𝑗)=𝑐𝑜𝑠(𝛼,𝛽)=(5-2)|𝛼|×|𝛽|余弦相似性算法是简单的通过计算两个向量的cos值,并根据结果比较两个向量的夹角来判断两个向量的相似性。但对于推荐系统来说,不同的用户对同一个项的评分结果往往不是标准的。这里的标准指的是有些用户偏向于给项打比较偏高的分数,而某些用户偏向于给项打比较少的分数。虽然分数不同,但表达的评分度是相同的,所以如果对所有用户的评分进行统一的计算cos值显然是不准确的,由此提出了带修正的余弦相似性算法。带修正的余弦相似度算法如公式(5-3)。∑𝑢𝑖𝑛𝑈𝑖,𝑗(𝑃𝑢𝑖−𝑃̅𝑢)×(𝑃𝑢𝑗−𝑃̅𝑢)𝑆(𝑖,𝑗)=(5-3)√∑𝑢𝑖𝑛𝑈(𝑃𝑢𝑖−𝑃̅𝑢)2×√∑𝑢𝑖𝑛𝑈(𝑃𝑢𝑗−𝑃̅𝑢)2𝑖,𝑗𝑖,𝑗公式(5-3)中𝑈𝑖,𝑗表示对项𝑖及项𝑗都评价过分数的所有用户的集合。𝑃𝑢𝑖,𝑃𝑢𝑗表示用户𝑢对项𝑖以及项𝑗所打的分数。𝑃𝑢表示用户𝑢对所有项目的评分的均值。通过使用修正过的余弦相似度,可以很好的消除由于不同用户不同的打分策略而引起的不一致性。使用相关相似性计算相似度的时候,同余弦相似度一样每个项有个评分向量,不同之处在于相关相似性使用Pearson相关系数表征两个向量之间的相似度。相关相似性计算公式如公式(5-4)。55 电子科技大学硕士学位论文∑𝑢𝑖𝑛𝑈𝑖,𝑗(𝑃𝑢𝑖−𝑃̅𝑖)×(𝑃𝑢𝑗−𝑃̅𝑗)𝑆(𝑖,𝑗)=(5-4)√∑𝑢𝑖𝑛𝑈(𝑃𝑢𝑖−𝑃̅𝑖)2×√∑𝑢𝑖𝑛𝑈(𝑃𝑢𝑗−𝑃̅𝑗)2𝑖,𝑗𝑖,𝑗公式(5-4)中𝑃𝑖表示用户𝑢对项目𝑖的评分的均值,𝑃𝑗表示用户𝑢对项目𝑗的评分的均值。5.2.3.基于本体的相似度计算通过分析发现,通过计算概念与概念之间、概念与实体之间、实体与实体之间的相似度,可以通过计算两两之间相距的距离𝑙𝑑与两两之间距离最小公共根概念之间的距离𝑙𝑟来估计两个对象的相似度。其中𝑙𝑑可以定义为在本体库中,链接两个概念或实体的端点的最短路径上,所包含的边的数目,即两个概念所构成的最短路径上的有向边的数量。当两个节点之间的最短路径上有向边的数量小,则说明两个节点之间的相似度较高。反之,则说明两个节点之间的相似度较低。而𝑙𝑟可以定义为有两个节点a,b分别表示了一个概念或者实体。从a,b点到本体库根节点的路径中,所拥有的最大重合的概念的数量。当最大重合的数量越多,则表明两个节点之间越相似。根据𝑙𝑟的计算思想以及本体的结构可以看出,两个概念或者实体之间至少包含根节点这个重合的节点,最大重合数为两个节点中高度较低的那个节点的高度。这里为了提高相似度的计算准确性,考虑到不同的关系之间有强弱的分别,在构建本体库的时候应当为每个关系定义其权值,权值可以是从0~1的值。值越大,说明这条关系越重要,在计算相似度的时候更应该考虑这条关系。由于两个节点之间的最短路径通常包括多于1条边,所以可以将边的权值定义为𝛼={𝛼1,𝛼2,𝛼3,…,𝛼𝑛}。56 第五章关联推荐中的协同过滤推荐开始输入查询语句分词、去除停用词查询用户-项评分矩阵基于矩阵计算项目相似度基于本体库计算相似度产生项邻居集合预测评分产生推荐列表结束图5-2关联推荐的推荐流程示意图通过上述的分析综合考虑𝑙𝑟,𝑙𝑑及概念间关系的强弱,提出这一部分的相似度𝑆𝑜(𝑥,𝑦)计算公式为公式(5-5)。11𝑆𝑜(𝑥,𝑦)=1−√×𝑙𝑑(𝑥,𝑦)×(5-5)𝑙𝑟(𝑥,𝑦)𝛼(𝑥,𝑦)通过公式可以发现,两个节点之间的相似度与节点间的最短路径距离成负相关,与最小路径上的边的权值成正相关,与点与根节点路劲中最大重合概念数成正相关。最后将两部分的评分公式加以结合得到本文提出的基于项的协同过滤相似性计算公式𝑆𝑖𝑚,如公式(5-6)。57 电子科技大学硕士学位论文𝑆𝑖𝑚(𝑥,𝑦)=𝛼×𝑆(𝑥,𝑦)+𝛽×𝑆𝑜(𝑥,𝑦)(5-6)其中𝑆(𝑥,𝑦)使用相关相似性计算公式,即如公式(5-7)。∑𝑢𝑖𝑛𝑈𝑥,𝑦(𝑃𝑢𝑥−𝑃̅𝑥)×(𝑃𝑢𝑦−𝑃̅𝑦)𝑆(𝑥,𝑦)=(5-7)√∑𝑢𝑖𝑛𝑈(𝑃𝑢𝑥−𝑃̅𝑥)2×√∑𝑢𝑖𝑛𝑈(𝑃𝑢𝑦−𝑃̅𝑦)2𝑥,𝑦𝑥,𝑦𝑆𝑖𝑚(𝑥,𝑦)公式中的𝛼及𝛽为两个方面的权值,可以根据项目实际情况进行自行调整,作者建议将𝛼及𝛽设置为0.6,0.4。下节的实验亦使用这样的权值分配进行。图5-2显示了关联推荐的推荐流程。5.3实验与分析本小节将使用具体的数据对上面提出的算法验证其有效性。5.3.1.实验数据来源作者使用的数据来源于由Minnestoa大学创建并维护的一个非盈利性数据集合MovieLines[41]。数据集合包含了一些电影的数据及一些用户对不同电影的评分。该数据集亦包含了一个推荐系统,其可以基于用户对某些电影的打分来预测该用户的喜好程度,并且根据预测的结果对该用户进行推荐。数据集具有大、中、小三个规模,分别适用于不同规模的系统测试,目前是推荐领域较常用的数据集合。作者选取了其100K的公开数据集进行系统测试,数据集合的各项数据指标如表5-3。表5-3数据指标表指标名称指标内容用户数943电影总数1682评分总数100000用户最多评分数752用户最少评分数20用户评分范围从1到5,其中1表示不喜欢,5表示非常喜欢评分稀疏度93.7%使用交叉验证的方法对数据集进行划分。作者使用7折交叉验证(7-fold58 第五章关联推荐中的协同过滤推荐crossvalidation)的方式分配数据。7折交叉验证即将上述数据集合,随机的平均分为7个部分,然后不重复的轮流选取其中数据子集作为测试数据集,使用其余6个数据集作为系统训练数据集,并将7次实验的结果取平均值作为最终的结果。在本次实验中选取的那一个数据集当作待推荐的数据集,其余6个作为推荐的基础数据集。还要使用本文第三章提出的方法,基于该数据集建立本体库以用于支撑算法的计算。通过分析该数据集发现所有电影分别属于如下18个类别:动作片、犯罪片、恐怖片、战争片、儿童片、科幻片、爱情片、冒险片、纪律片、音乐剧、西部片、喜剧片、悲剧片、悬疑片、动画片、戏剧片、神秘片。在建立本体库的时候使用类别进行划分,并对本体间的关系进行权值标注。5.3.2.评价标准通常评价一个推荐系统的性能可以使用准确度进行度量。准确度是一个宽广的概念,所以针对不同的运用的系统,准确度的计算方式可能会有所不同。在对评分进行预测的系统中准确度通常使用平均绝对误差(MeanAbsoluteError)进行衡量[42]。该方法亦在考察基于用户以往的评分对新项评分的预测与该用户实际给这个项打的分数之间的偏差。平均绝对误差M的计算公式为公式(5-8)。∑𝑅𝑢𝑖𝑖𝑛𝑅𝑇|𝑃𝑢𝑖−𝑅𝑢𝑖|𝑀=(5-8)|𝑅𝑇|公式(5-8)中𝑅𝑇表示测试集合。𝑃表示用户𝑢对项𝑖的预测评分。𝑅表示𝑢𝑖𝑢𝑖用户𝑢对项𝑖的实际评分。在邻居集推荐系统中的准确度通常可以使用查准率(Precision)和召回率(Recall)进行评价[43]。其中准确率在推荐系统中用以表征系统能够准确的向用户推荐项的概率,而召回率表示用户的喜好能够被系统推荐的概率[44]。对于推荐系统来说其准确率和召回率的计算如公式(5-9)和公式(5-10)。59 电子科技大学硕士学位论文图5-3实验一实验结果示意图∑𝑢𝑖𝑛𝑈𝑇|𝑅𝑢∩𝑇𝑢|𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛=(5-9)∑𝑢𝑖𝑛𝑈𝑇|𝑅𝑢|∑𝑢𝑖𝑛𝑈𝑇|𝑅𝑢∩𝑇𝑢|𝑅𝑒𝑐𝑎𝑙𝑙=(5-10)∑𝑢𝑖𝑛𝑈𝑇|𝑇𝑢|公式(5-9)公式(5-10)中𝑈𝑇表示测试集中的用户集合。𝑅表示推荐系统𝑢向用户推荐的项集合。𝑇𝑢表示测试集中被用户评分过的项集合。5.3.3.实验及结果由于评价标准中同时包含平均绝对误差、查准率及召回率,所以作者准备进行两个实验。实验一从平均绝对误差的角度进行衡量,实验二从查准率及召回率的角度进行衡量。60 第五章关联推荐中的协同过滤推荐图5-4实验二实验结果示意图图5-5实验二实验结果示意图实验一将基于上述数据,与传统的基于项的协同过滤算法及逆项目频率加权算法(IIF-IBCF)[45]进行对比从而说明本文算法的有效性。图5-3为实验结果,其中横坐标为不同的邻居集内元素的个数。通过实验结果可以看出,作者考察了10个不同的邻居项集合元素个数的结果显示,作者提出的方法在平均绝对误差上获得了更小的值,说明使用本体库对用户对项的评分进行预测可以提高推荐的准确率。实验二将基于上述数据,与传统的基于项的关联推荐算法进行召回率与查准率上的对比进而说明本文算法的有效性。61 电子科技大学硕士学位论文图5-4为查准率的结果,图5-5为召回率的结果,其中横坐标为不同长度的推荐列表,推荐列表长度设置为{2,4,6,8,10,12,16,20},该数据在邻居集合为35个元素的前提下测定的。从实验结果中可以看出,相比于传统的基于项的协同过滤算法,本体的算法在查准率及召回率上都有比较好的表现,确实提高了推荐的效果。通过分析发现,本文算法之所以可以提高推荐的效果,主要是由于其基于本体的机制,在一定程度上可以解决用户-项评分矩阵的数据稀疏问题,从而使得项之间的相似度计算更加准确,因而提高了最终的推荐质量。通过实验,实现了期望中的目标。5.4本章小结本章首先对传统的基于物品的协同过滤算法(Item-Based)进行分析与总结,提出了其算法中的不足及其原因。接下来作者基于这些不足和原因提出基于本体的协同过滤推荐算法,该算法在原有基础上解决了由于用户-项评分矩阵数据的稀疏性而导致的推荐不准确的问题。最后作者通过使用实际数据对新算法进行了有效性验证,证明了新算法可以提高数据稀疏情况下的推荐结果。62 第六章总结与展望第六章总结与展望当今是个信息快速发展的时代,互联网上的信息成爆炸式增长,为了满足人们从海量的各类信息中方便的找到自己需要的内容,搜索引擎由此而生。随着搜索引擎的不断发展,基于语义的搜索及使用关联推荐系统来增加用户搜索信息的效率与体验逐渐变成研究人员研究的热点问题。早期刚出现搜索引擎的时候,极大的方便了用户对于信息检索的需求,然而随着信息量的快速增大且大量的信息呈现非结构化的趋势,搜索引擎由于其固有的技术思想已经遇到了发展中的瓶颈。目前,传统的搜索引擎通常基于关键词进行搜索,即搜索引擎首先从互联网网页中搜集数据,之后以关键词为单位对网页信息检索索引。当用户发起一次搜索请求之后,搜索引擎仅仅通过简单的字符串匹配在索引库中寻找用户感兴趣的页面。基于字符串匹配的搜索方式无法深入的理解用户搜索的真正需求,而往往会出现南辕北辙的现象。并且用户在很多情况下需要查找的是本体信息,例如某个电影,某个人名,某个位置等等信息,而不是简单的包含这些内容的互联网页面。所以基于语义的搜索引擎逐渐受到了人们的重视。基于语义的搜索引擎在为用户提供查询的时候,不仅仅是简单的基于关键字进行匹配,而能够从语义层面抓住用户真正想要表达的搜索意愿,为用户提供更准确的查询结果。另一方面,用户有时候并不能准确的指导自己想要找的是什么东西,或者用户无法准确的描述自己需要的东西,或者更普遍的情况,用户需要系统为其推荐一些其不知道的东西,由此就需要推荐系统。作为搜索引擎的补充,推荐系统能够为用户提供个性化服务,这也是未来互联网发展的一个重点方向。随着大数据时代的到来,这样的个性化的服务显的更为用户所迫切需要。特别实在电子商务、在线音乐、在线阅读等等方面,推荐系统可以通过大数据挖掘,帮助用户发现潜在的兴趣并且有针对性的进行商品、广告的投放,这将带来巨大的效益。所以文中提到的包括基于本体的方法,本体信息的搜索、索引、排序反馈、协同过滤等等技术不仅仅用在基于语义的搜索引擎中,亦可以用在很多其他方面。因此基于语义的信息检索与关联推荐系统具有很高的理论研究价值与实际运用前景。该论文从本体库、信息检索与查询、关联推荐三个方面进行了深入的研究,并提出了一些新的方法。本文主要创新点及研究内容如下:1、基于语义的信息检索与关联推荐相关技术63 电子科技大学硕士学位论文该部分内容对现有基于本体的相关语义处理技术,常用的信息检索模型,及常用推荐算法进行了归纳与总结。在研究了语义检索与推荐系统整个架构的基础上,对每部分内容进行了深入的研究,为后续的研究工作做好了准备。2、领域本体构造算法该部分内容基于软件工程思想与现有本体构造方法提出了一种新的本体构造方法。通过对现有本体构造方法进行分析发现,由于本体库的构建通常是一个很大的工程,但是现有本体构造方法无法准确的对项目风险进行有效的评估与控制,并且用户实际参与度底,这更加造成了本体构造项目的风险性,并且不利于迭代的发现问题、解决问题。本文基于如上问题,提出了一种不断迭代并且注重风险评估、分析、解决的本体构建方法。3、基于Lucene的信息索引该部分通过对现有Lucene索引结构及文档评分算法的深入分析,提出了一种适用于本体的索引结构,并且使用Lucene对本体库进行构建索引。之后对Lucene的文档评分机制进行了改进,改进主要通过逆向文件频率(IDF)、用户点击量的统计、基于经验三个方面进行考虑提出了新的文档评分计算公式。最后通过实验证明了新方法的有效性。4、协同过滤推荐技术该部分内容首先分析了协同过滤算法的两个重要分支:基于用户的协同过滤算法(User-Based),基于项的协同过滤算法(Item-Based)并讨论算法的不足。其中重点分析了基于项的协同过滤算法推荐准确度不足的问题主要在于随着项及用户的大量增加,而绝大部分用户不会针对大部分的项进行评分,所以导致用户-项评分矩阵稀疏性很高,导致系统难于准确的对目标用户进行推荐。基于上述问题,本文在本体库的基础上提出了一种基于本体库的协同过滤算法。最后通过实验验证了该新算法的有效性。虽然作者对基于语义的信息检索与关联推荐进行了比较深入的研究,但是现阶段仍然有很多工作需要在下一阶段继续进行。进一步的工作包括:1、本文所描述的本体库构建方法通常使用人工构建或者基于现有类似维基百科之类的在线数据库进行。当需要从新构建一个本体库的时候,特别是涉及到范围特别广的时候,人工构建一个完整的本体库几乎是一件不可能的事情,所以如何能够实现自动抓取信息,并自动构建本体库是一个重要的问题。2、使用本体库解决语义的问题具有其先天性的不足,主要体现在本体库难于构建难于维护,本体建立起来之后难于修改并且不能自动的发现新产生的语义。使用本体处理语义其扩展性相对较弱,现有技术无法从根本上适应64 第六章总结与展望瞬息万变的互联网环境。接下来应该在本文方法上,考虑使用统计自然语言的方法对本体处理自然语言进行补充。这就需要语义搜索与搜素引擎进行配合,统计数据并进行相关分析,最终能够更好的处理语义的问题。3、本体提出的推荐方法着重在于解决现有推荐策略数据稀疏的问题,而通常一个好的推荐策略需要多个推荐算法混合使用才能达到比较好的效果,那么如何将该算法与其他推荐算法进行有机的结合是接下来工作的一个点。其次,推荐过程中需要频繁搜索本体库,需要进行大量的计算,接下来应该在计算量上进行改进,探索能够使用某种数据结构或者算法来提高效率。65 电子科技大学硕士学位论文致谢时光荏苒,白驹过隙,三年的研究所生涯马上就要结束了。回顾这三年来的点点滴滴,其中不乏有快乐,有汗水,有紧张激烈,也有轻松愉快,有失落,有满足,有憧憬。最重要的是有师长、朋友、家人的陪伴,与我一起度过了这难的三年时光。首先需要感谢我的导师王晓斌老师。在学术以及生活上,他是我的良师益友。王老师具有渊博的学识,敏锐的洞察力,严谨并且实事求是的作风为我做出了榜样。在平时的学习生活过程中,王老师时刻的激励我在学习的过程甚至在人生的过程中要不断进步,勇攀高峰。同时王老师也有平易近人的一面,时常教导我们要勤于锻炼身体,不仅要在学术上进步,还要学会做人,先做人,才能做学问。希望我们不管做人还是做事,一定要踏踏实实,脚踏实地。让我受益匪浅。同时要感谢实验室的屈鸿老师、陈文宇老师等等为实验室创造了优良学术氛围,优良同学关系的各位老师。感谢屈鸿的悉心教导,总是能够耐心的对待我遇到的问题,并且能够充分的信任我,不管是学习上还是生活上给予我最大的理解与支持。还要感谢计算智能实验室的小伙伴们和我的女朋友,我们一起度过了美好的三年时光,谢谢你们对我的理解、支持与照顾,有你们陪伴让我度过了此生难忘的宝贵时光。最后要感谢我的父母,是你们作为我最坚强的后盾,让我能够无后顾之忧全心进行学习,没有你们的理解与支持,或许我无法完成学业,你们给了我大的帮助。在此想对上面提到的所有人再说一句,谢谢你们。66 参考文献参考文献[1]http://www.cnnic.net.cn/hlwfzyj/jcsj/中国互联网络信息中心.[2]NECHESR.FIKESRE.GRUBERTR.etal.EnablingTechnologyforKnowledgeSharing[j].AIMagzine,1991,12(3):36-56.[3]GRUBERTR.AtranslationapproachtoportableOntologyspecifications[J].KnowledgeAcquisition,1993,5(2):199-220.[4]BORSTWN.ConstructionofEngineeringOntologiesforKnowledgeSharingandReuse[D].PhDthesis.UniversityofTwente.Enschede.1997.[5]STUDERR,BENJAMINSVR,FENSELD.Knowledgeengineeringprinciplesandmethod[j].DataandKnowledgeengineering,1998,25(1-2):161-197.[6]J.Heflin,J.A.Hendler,andS.Luke.SHOE:AblueprintfortheSemanticWeb.InD.Fensel,W.Wahlster,andH.Lieberman,editors,SpinningtheSemanticWeb:BringingtheWorldWideWebtoItsFullPotential,pp.29–63.MITPress,2003.[7]Berners-LeeT,HendlerJ.Lassila,Thesemanticweb[J],ScientificAmerican,2001,284(5):34-43.[8]杜小勇,李曼,王珊.本体学习研究综述[J].JournalofSoftware,2006,17(9):1837-1847.[9]ZhenyaZhang,EnhongChen,JinWang,XufaWang,User-focusBasedPersonalizationRecommendationforTextInformationRetrieval,LectureNotesinComputerScience:WebTechnologiesandApplications:6thAsia-PacificWebConference,APWeb2004,Hangzhou,China,April14-17,2004.Proceedings,ISBN:3-540-21371-6,pp598-607.[10]O.Corby,R.Dieng-Kuntz,andC.Faron-Zucker.QueryingtheSemanticWebwithCoresesearchengine.InProc.ECAI-2004,pp.705–709.IOSPress,2004.[11]BettinaFazzinga,ThomasLukasiewicz.SemanticsearchontheWeb.IOSPress,2010:89–96.[12]E.Oren,C.Guéret,andS.Schlobach.Anytimequeryanswer-inginRDFthroughevolutionaryalgorithms.InProc.ISWC-2008,LNCS5318,pp.98–113.Springer,2008.[13]W3C.SPARQLQueryLanguageforRDF,2008.W3CRec-ommendation(15January2008).Availableathttp://www.w3.org/TR/rdf-sparql-query/.[14]苏晓路,钱平,赵4庆龄,颜蕴,胡海燕.农业科技信息导航知识库及其智能检索系统的构建[J].情报学报,2004,23(6):677-682.67 电子科技大学硕士学位论文[15]姜华.基于本体的语义检索技术研究与实现[J].现代图书情报技术,2008,(4):39-43.[16]盛秋艳,印桂生.一种基于本体的语义检索算法[J].计算机工程与应用,2009,45(36):148:150.[17]李江华,郑剑基.基于用户行为的启发式本体搜索机制[J].计算机应用,2012,32(10):2891:2894.[18]李莎莎.面向搜索引擎的自然语言处理关键技术研究[D].国防科学技术大学,2011.DOI:10.7666/d.d202416.[19]危华明.垂直搜索引擎及其主题相关性算法研究[J].信息与电脑:理论版,2013,(4).[20]吴定峰.基于本体的语义搜索模型研究[D].中国农业科学院,2012.[21]GoldbergD,NicholsD,OkiBM,etal.Usingcollaborativefilteringtoweaveaninformationtapestry[J].CommunicationsoftheACM,1992,35(12):61-70.[22]李聪,电子商务推荐系统中协同过滤瓶颈问题研究[D].合肥:合肥工业大学2009.[23]ResnickP,IacovouN,SuchakM,etal.GroupLens:anopenarchitectureforcollaborativefilteringofnetnews[C].Proceedingsofthe1994ACMconferenceonComputersupportedcooperativework.ACM,1994:175-186.[24]BreeseJS,HeckermanD,KadieC.Empiricalanalysisofpredictivealgorithmsforcollaborativefiltering[C].ProceedingsoftheFourteenthconferenceonUncertaintyinartificialintelligence.MorganKaufmannPublishersInc.,1998:43-52.[25]ZhangJ,PuP.Arecursivepredictionalgorithmforcollaborativefilteringrecommendersystems[C].Proceedingsofthe2007ACMconferenceonRecommendersystems.ACM,2007:57-64.[26]SuX,KhoshgoftaarTM,GreinerR.AMixtureImputation-BoostedCollaborativeFilter[C].FLAIRSconference.2008:312-316.[27]YangB,LeiY,LiuD,etal.Socialcollaborativefilteringbytrust[C].ProceedingsoftheTwenty-ThirdinternationaljointconferenceonArtificialIntelligence.AAAIPress,2013:2747-2753.[28]冷亚军.协同过滤技术及其在推荐系统中的应用研究[D].合肥工业大学,2013.[29]WuML,ChangCH,LiuRZ.IntegratingContent-BasedFil-teringwithCollaborativeFilteringUsingCo-clusteringwithAug-mentedMatrices.ExpertSystemswithApplications,2014,41(6):2754-2761.[30]GrüningerM,FoxMS.MethodologyfortheDesignandEvaluationofOntologies[J].1995.[31]UscholdM,GruningerM.Ontologies:Principles,methodsandapplications[J].The68 参考文献knowledgeengineeringreview,1996,11(02):93-136.[32]Fernández-LópezM,Gómez-PérezA,JuristoN.Methontology:fromontologicalarttowardsontologicalengineering[J].1997.[33]Fernández-LópezM.Overviewofmethodologiesforbuildingontologies[J].1999.[34]NoyNF,McGuinnessDL.Ontologydevelopment101:Aguidetocreatingyourfirstontology[J].2001.[35]FrakesWB,Baeza-YatesR.InformationRetrieval:DataStructures&AlgorithmsPrenticeHall[J].EnglewoodCliffs,NJ,1992.[36]BuckleyC.ImplementationoftheSMARTinformationretrievalsystem[R].CornellUniversity,1985.[37]AUYEUNGCM,GIBBINSN,SHADBOLTN.Astudyofuserprofilegenerationfromfolksonomies.[38]MankuGS,JainA,DasSarmaA.Detectingnear-duplicatesforwebcrawling[C].Proceedingsofthe16thinternationalconferenceonWorldWideWeb.ACM,2007:141-150.[39]GoldbergD,NicholsD,OkiBM,etal.Usingcollaborativefilteringtoweaveaninformationtapestry[J].CommunicationsoftheACM,1992,35(12):61-70.[40]DeshpandeM,KarypisG.Item-basedtop-nrecommendationalgorithms[J].ACMTransactionsonInformationSystems(TOIS),2004,22(1):143-177.[41]GroupLensResearchLab.MovieLensDataSets[EB/OL].http://www.grouplens.org/node/12.[42]BreeseJS,HeckermanD,KadieC.Empiricalanalysisofpredictivealgorithmsforcollaborativefiltering[C].ProceedingsoftheFourteenthconferenceonUncertaintyinartificialintelligence.MorganKaufmannPublishersInc.,1998:43-52.[43]CremonesiP,KorenY,TurrinR.Performanceofrecommenderalgorithmsontop-nrecommendationtasks[C].ProceedingsofthefourthACMconferenceonRecommendersystems.ACM,2010:39-46.[44]刘建国,周涛,郭强.个性化推荐系统评价方法综述[J].复杂系统与复杂性科学,2009,6(3):1-10.[45]KimHN,JiAT,JoGS.Enhancedpredictionalgorithmforitem-basedcollaborativefilteringrecommendation[M].E-CommerceandWebTechnologies.SpringerBerlinHeidelberg,2006:.69
此文档下载收益归作者所有