




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于科技文献的专家发现系统设计与实现哈尔滨工业大学本科毕业设计(论文)摘 要如今已经跨入了21世纪,知识已经在人类社会中取得了主导位置,掌握一定的专业技能,具有一定的专业经验的人才已经成为社会各界组织,企业的重要财富。 专家则是各个领域的领导者。如何快速有效的利用专家资源已经成为了一个企业、组织或个人能否快速发展的重要因素。专家发现系统则应运而生。专家发现,是一种对实体的检索。它的结果是得到擅长与查询主题相关领域的专家,它的数据依据则有很多种,包括:专家发表过的文献,参加过的调研活动,工作过的部门,社会经历以及与其他专家的社交关系等等。本文设计并实现了一个基于科技文献的专家发现系统。本系统使用了DBLP上的文献数据,构建了专家描述文件,利用信息检索的方法发现候选专家,根据候选专家与查询主题相关的论文数量来对专家进行排序。用户可以通过输入查询主题,点击查询按钮而得到候选专家,并且可以查看每位专家的文献。经由与tangjie的数据集对比,本专家发现系统有较为不错的准确率以及召回率。本文还依据谷歌的专家H-index,人工对发现结果进行评价,候选专家的排序结果基本同H-index升降趋势相同。专家发现的结果比较令人满意。本文专家发现系统的平均等待时间较为合理,用户等待时间也在可承受范围之内。关键词:专家发现;信息检索;相似度计算;专家排序 AbstractThe knowledge already has achieved a leading position in the human society in the 21 century. Talents who master certain professional skills have become the important wealth of the organizations and enterprises , Experts are leaders in various fields. How to fast and efficiently make use of the expert resources has become an important factor that can lead to organization or individual rapid development. So, expert finding appeared . Experts finding is a kind of retrieval of entities. Its result is experts that are good at the query field, its data base has a lot of kinds, including: experts published literature, the research activities, experience in some department, social experiences and social relationships with other experts and so on.This paper designs and realizes a experts finding system based on science and technology literature. The system uses the literature on the DBLP data ,and constructs the expert description file, finds candidate experts by using the method of information retrieval, depending on the amount of the experts paper related to the query ,the system sorts experts. Users can input query subject , click the query button and get the candidate experts, and can also view the document of each expert.Through compared with standard data sets,the expert finding system has a relatively good accuracy and recall rate. This article is also based on Googles expert H - index, artificially evaluate the findings, the ranking results of candidate experts with H -index fluctuation trend is similar. Experts finding system results are satisfactory. the systems average wait time is relatively reasonable, the users waiting time also in an acceptable range.Keywords: expert finding, information retrieval, similarity calculation, expert sortingII目 录摘 要IAbstractII第1章 绪 论1.1 课题背景及研究的目的和意义31.2 专家发现的研究现状31.3 本文的主要研究内容51.4 本章小结6第2章 专家发现系统的总体设计2.1系统结构设计以及工作安排72.2 文献数据采集与分析92.2.1文献数据采集92.2.2 dblp数据的分析92.3 专家描述文件构建102.4 信息检索102.5 结果统计以及排序方法112.6 UI界面的设计112.7 评价方法122.8 系统实现的语言环境122.9 本章小结13第三章 专家发现系统的具体实现3.1 数据采集143.2 数据处理与解析143.3 文献索引的设计与创建163.3.1 document的设计163.3.2 文献索引的建立173.4 根据查询主题检索文献索引183.5 统计查询结果与候选专家的排序193.6 专家发现系统的UI的设计与实现213.7 本章小结23第4章 专家发现系统的结果分析4.1 本文专家发现系统的测试结果244.2 数据集大小对候选专家表的影响264.3 专家发现排序方法对候选专家表的影响274.4 本文测试的不完善之处274.5 本章小结27结论29参考文献30致谢312第1章 绪 论1.1 课题背景及研究的目的和意义如今已经跨入了21世纪,知识已经在人类社会中取得了主导位置,掌握一定的专业技能,具有一定的专业经验的人才已经成为社会各界组织,企业的重要财富,专家则是各个领域的领导者。如何快速有效的利用专家资源已经成为了一个企业、组织或个人能否快速发展的重要因素。专家发现系统则应运而生。专家发现,是一种对实体的检索。它的结果是得到擅长与查询主题相关领域的专家,它的数据依据则有很多种,包括:专家发表过的文献,参加过的调研活动,工作过的部门,社会经历以及与其他专家的社交关系等等。本文旨在于能够为学生,教师,研究人员等群体提供一个用户易用的专家发现系统,使用户能够快速的找到查询领域的专家,以便于用户可以进行学习和学术交流。并且用户还可以找到候选专家的相关文献名,作为相关的学习资料。1.2 专家发现的研究现状专家发现的任务是,给出一个查询主题,通过专家发现系统得到与查询主题相关的专家。而专家发现的研究则面临着以下几个问题:(1) 如何通过专家文献以及活动(所在单位,参加过的科研项目,重大会议等)来识别出相关查询主题的专家。(2) 如何确定候选专家在查询主题领域的知识水平。(3) 除了专家的文献以及相关活动,如何通过其他指标对专家发现的结果进行改进优化。国际文本检索会议TREC(Text Retrieval Conferences)于2005年组织建立了一系列专家发现的讨论,国内外很多高校研究机构也纷纷加入了其中,近年来也出现了一些国际重要学术会议对专家发现进行了讨论研究。逐渐形成了两种基本方法,一种是以文档为个体单位,统计其中的参与专家作为数据依据;另一种方法是以专家作为个体单位,通过统计候选专家的活动(文献,研究工作等),作为数据依据,而最终得到一个依据关联程度排序的候选专家结果表。除此之外出现了许多依据其他相关数据对专家发现结果进行改进和优化的方法。如面向用户的专家发现方法,拓展查询的专家发现方法,基于社交网络的专家发现方法等等。这些方法不仅会将论文,著作以及研究工作这些直接相关的数据作为依据,还会将如地理位置,工作单位,同事关系,邮件关系,合著关系等数据作为依据将专家发现的结果进行优化和改进1。专家发现的两种基本方法如下:1) 基于专家描述文件的专家发现方法一个人是不是某领域的专家,最直接的判断方法是,这个人是否从事过一些相关主题的研究工作,是否撰写过相关的研究论文,是否出过相关书籍,做过相关领域的导师,或是他所在的部门是否为相关领域部门,他在本部门的地位等等,这些专家的个人信息较为直接的表明了此人是否为相关领域的专家。基于专家描述文件的专家发现方法是将专家的个人信息统计到一个描述文件中,再根据信息检索的知识,对查询主题在专家描述文件中进行检索,描述文件与查询主题的检索相似度越高,则此人越可能是该领域的专家2。2)基于文档的专家发现方法基于文档的专家发现方法则与基于专家描述文件的专家发现方法的检索对象不同,基于专家描述文件的方法的检索对象可以说是一个专家,而基于文档的专家发现方法则可以说是对某篇文献,或是某项研究工作进行检索,若这篇文献或研究工作与查询主题相关,则统计参与的人员3。其中专家参与相关领域的研究工作,或是文献越多,则专家越有可能是相关领域的专家。当给定一个查询主题,首先找到与查询主题相关的文档,然后在文档中统计参与其中的专家,根据每个文档的权值以及专家出现的次数对候选专家进行排序,从而得到专家发现结果表。在专家发现的两种基本方法基础上,又有很多人根据不同需求或是为了让结果更准确通过加入其它的一些数据依据对专家发现的结果进行改进。简要介绍如下几种方法。1)面向用户的专家发现方法本方法主要是为了提高用户体验而进行的专家发现的优化4。一个正常的使用者能否达到最佳使用体验主要考虑一下两方面:一个是使用者联系候选专家的难易程度,另一个是候选专家与使用者的相对专业知识水平。使用者联系专家的难易程度,是以如地理位置,候选专家与使用者之间直接或间接关系等相关数据作为依据,优化候选专家的排序表。候选专家与使用者的相对专业知识水平,指的是专家的知识掌握程度比使用者高出多少,将专家发表的文献,参与的项目或是知名程度作为数据依据,来优化候选专家列表。如此则能得到用户最需要的候选专家。2)在组合管理系统中基于目的的专家发现方法在一个管理系统中,通常一个人的地位可以作为专家发现的一个重要指标,地位越高,管理的人越多,那么这个人越有可能是这个领域的专家5。这种专家发现方法具有一定的目的性,将组合管理系统的所属关系作为数据依据,总管、总管手下的职员数目,以及职员所属哪个总管等数据都将作为数据依据,对候选专家结果表进行优化。3)基于社交网络的专家发现方法通常情况下,如果一个人的好朋友群体是一个专家群体,那么这个人则有更大的可能也是专家6。而两个人是否具有比较亲密的关系,在社交网络中有直接的体现。本方法将候选专家的社交网络关系作为一个专家的评级因素。如师生关系,同事关系以及合著关系等等。与其他专家合作的关系越多,或是熟识公认的候选专家等则应加上相应权值,因为其有更大的可能性也是该查询领域的候选专家。基于社交网络的专家发现方法,在一定程度上对专家发现的结果起到了优化的作用。4) 基于电子邮件的专家发现这种专家发现方法通常都是在企业内部,由于企业内部电子邮件的信息通常都是公开的,数据易于取得,并且企业内部的公开电子邮件包含了许多专家的擅长领域的信息,而且电子邮件的格式规整,易于处理,通常,邮件的交流内容若多是某一学术方面的邮件,则这个人可能是这方面领域的专家,因此电子邮件信息在有公开电子邮件信息的场合应用于专家发现系统,将会带来很好的优化7。1.3 本文的主要研究内容本文主要设计并实现了一个基于专家文献的专家发现系统,具体内容包括:(1) 专家发现系统的数据集采集,本文采用dblp上的文献xml数据库。dblp拥有较为全面的文献资料。为本文专家发现系统提供充实的数据集。(2) 对dblp数据库的xml文件进行大文件解析。采用sax方法逐条解析变换成本文专家发现系统易于使用的数据格式,并归纳到一个文件中。(3) 利用检索方法建立索引,设计易于专家发现系统查询的索引格式,建立索引时,根据每个文献的作者数量动态的形成每一条目的领域个数,包括标题域,多个作者域,以及作者数量域。(4) 对查询主题在索引中进行查询。利用lucene中的查询方法,查询相关主题的document。(5) 对专家发现查询结果进行统计排序。统计时利用hash表的原理,遇到与key值相同的值则value值增加,并将文献名称添加到另一个与本表同步的hash表的value值最后,形成专家的描述文件。再利用list结构的特性对专家结果进行排序。从而得到一个候选专家表。(6) UI界面的设计实现。用户可输入查询主题,点击查询按钮,系统将返回相应的候选专家列表。用户也可通过输入候选专家序号查看该候选专家的描述文件。(7) 分析实验结果。与tangjie的实验数据进行对比,得到其准确率以及召回率,并且人工查询候选专家的H-index,作为候选专家排序结果的分析依据。还将统计系统运行时间,查看不同数据集大小,不同算法对候选专家表准确性以及系统运行时间的影响。1.4 本章小结专家发现方法的研究在目前的学术界已经引起广泛关注,并逐渐形成了两种基本方法即:基于文档的专家发现方法以及基于专家描述文件的专家发现方法。在此基础上,根据不同需求,发展出许多可优化专家发现结果的方法如:面向用户的专家发现方法、在组合管理系统中的专家发现方法以及基于社交网络的专家发现方法。本文将实现一个基于文献的专家发现系统,利用dblp上的文献数据库,解析该数据库文件并提取出系统所需数据,建立索引,在索引中对查询主题进行检索,处理专家发现检索结果数据,得到候选专家排序列表。最后设计实现一个用户使用的UI界面,并对专家发现结果进行评估。第2章 专家发现系统的总体设计2.1系统结构设计以及工作安排实现一个专家发现系统有如下几个条件:(1) 一个数据量足够大,易于处理的一个专家活动或文献的数据源,作为专家发现系统的数据依据。(2) 一个快速有效的检索方法,用来检索庞大的数据源中的数据。(3) 一个适用于本系统的数据统计方法。(4) 一个合适的排序算法。(5) 合理的UI界面。本文专家发现系统设计了如下几个部分:(1) 解析数据。(2) 建立文献索引。(3) 检索查询主题。(4) 统计检索结果并实现排序算法。(5) UI界面。本文的基于文献的专家发现系统结构如图2-1。专家发现系统的实现工作主要分为以下几个步骤:(1) 数据采集,得到合适的数据源。(2) 数据处理,将采集到的数据处理为系统可用的数据。(3) 实现对数据的检索。(4) 对检索结果进行统计排序得到候选专家列表。(5) 设计与实现UI界面。(6) 对系统结果进行评价。图2-2为本文专家发现系统的工作流图。图2-1: 专家发现系统的结构图图2-2: 专家发现系统实现的工作流程图2.2 文献数据采集与分析2.2.1文献数据采集符合本文系统的数据源应该有如下三个特点:(1) 每一条数据都包含了两个部分,即文献名和作者。(2) 数据量必须足够大,保证专家发现结果的准确性。(3) 数据格式易于处理。本文采用的是dblp网站上的数据库。其中包含许多书目信息,主要是计算机科学的期刊或文献,也包含了许多计算机科学家的主页链接等,符合本文对数据内容的要求。dblp的数据论文数有超过230多万篇,搜集了近乎所有计算机相关领域的文献,期刊等资料,符合本文对数据量的要求。dblp数据哭格式为标准xml文件的数据格式,且每条数据都有文献名以及作者姓名,数据内容符合本专家发现系统要求,数据较为格式化易于解析处理。2.2.2 dblp数据的分析本文的基于文献的专家发现系统是基于java语言环境进行开发的,java中有两类基本方法可以对xml文档进行解析8,方法如下:(1) DOM方法DOM是W3C指定的一套规范标准,核心是按照树形结构处理数据,DOM解析器在读入xml文件时会建立一个结构与xml文件相同的“树”,树的节点和xml各标记对应,通过操作此“树”来处理xml文件。所以当xml文件很大时,DOM方法也会建立一个很大的“树”,占用大量内存,效率高,易于使用。(2) SAX方法SAX的解析器核心是事件处理机制。当解析器发现一个标记时,会把此数据封装为一个标记的事件,把这个报告于事件处理器,然后事件处理器调用相应接口来处理数据。SAX方法是逐个标记处理,占用内存小,适合大xml文件处理。dblp的xml文件的数据空间为1.16GB,属于超大的xml文件,利用DOM方法内存不足,所以本文采用SAX方法对dblp的xml数据库文件进行解析。解析时,提取出文献名称以及作者姓名两部分数据,以一定的格式写到文档中,易于创建索引。2.3 专家描述文件构建专家发现系统的结果不仅要得到候选专家的排序列表,也要得到候选专家的一些相关信息,如所著的相关文献。也就是要为每位专家构建一个描述文件,这个描述文件包含了相应专家的一些信息。用户在得到候选专家排名列表后需要查看相应专家的描述文件,以更进一步得到候选专家信息。本文采用dblp数据库,里面包含了文献以及专家姓名,专家描述文件则包含了该专家的所有相关文献名。专家描述文件的构建过程则是伴随着检索过程同步进行,当检索到一篇相关查询主题的文献时,查看其中专家姓名,将本文献名添加到相应专家的描述文件中。构建专家描述文件的过程如图2-3: 图2-3: 专家描述文件构建过程2.4 信息检索本系统的信息检索部分有如下几个要求:(1) 性能高,检索效率高。(2) 可以让数据按条目搜索。(3) 拥有全面的查询功能,模糊搜索,分组查询等。本系统选用的是Lucene3.6.2全文搜索引擎,作为系统开发的检索工具。Lucene是一个开放源代码的全文检索工具包,由阿帕奇软件基金会jakarta项目组成立的一个子项目。它不是一个全文检索引擎的架构,提供了索引引擎以及查询引擎,和一些文本分析引擎。Lucene是一个比较成熟的免费开源工具。具有如下几个优势:(1) 索引文件可以跨平台使用。(2) 能够针对不同文件建立小的文件索引,提升索引的速度,然后再合并到原来的索引中。(3) 具有面向对象的系统结构,易于学习以及功能拓展。(4) 具有强大的查询引擎,实现了模糊查询,布尔操作,分组查询等待功能。本文专家发现系统利用lucene进行信息检索,首先设计索引格式,选择分词方法,利用lucene中的索引引擎对处理好的数据建立索引,用户输入查询词时,利用lucene查询引擎对文献名进行查询9,10。2.5 结果统计以及排序方法本文专家发现系统信息检索的结果是一条条文献数据,包括文献名以及作者名。本系统要统计的数据是每位专家在检索结果中出现的次数,此数据是与专家描述文件同时统计的,流程也类似。根据结果统计的需求,本系统采用一种基于哈希表的hashmap数据结构来统计数据。Hashmap具有三点优势,一方面数据有key以及value两个域,另一方面当向其中put进一组数据时,若其key值已经存在hashmap中,则value值采取替换机制。最后,hashmap能够快速有效的通过key值找到其value值。其特点很适合本文专家发现系统的数据统计工作11。本文的排序工作任务是将hashmap中的数据,根据其value值的大小进行排序。Hashmap难于排序,于是本文将hashmap中的数据存入了一个双向链表中,在双向链表中进行逐个元素比较排序。最后排序好的双向链表则是本系统的候选专家排名结果表。2.6 UI界面的设计UI指的是用户界面,User和Interface。也就是程序与用户之间的交流平台。良好的UI能够完整体现系统提供给用户的功能,以及用户易于使用12。在本文基于文献的专家发现系统中,UI界面应支持用户可输入查询主题,点击查询按钮,返回专家发现候选专家结果表。用户输入专家序号,点击按钮返回该专家的相关文献名。UI界面应尽量整洁,易用,并且UI界面应该能够承受用户的一些错误操作,防止系统崩溃。本文为专家发现系统设计的UI界面包含一个主窗口,在主窗口中,有两个文本输入域用于获取用户的输入,两个按钮触发用户的查询动作以及一个文本输出域给用户输出系统的结果。如图(2-4)所示,其中用户可以在文本输入域1输入查询主题,通过点击按钮1进行检索文本输入域1处的查询主题,然后在结果输出域打印出候选专家排名结果表,文本输入域2输入返回结果的专家序号,通过点击按钮2,结果输出域打印出相应专家的描述文件。按钮2文本输入域2按钮1文本输入域1结果一并在结果输出域输出。结果输出域图2-4: UI设计简图2.7 评价方法本文将对系统的查询时间以及结果准确性两个性能指标进行评价。结果准确性将依据tangjie与jingzhang发布的实验数据结果 /lab-datasets/expertfinding/进行结果对比,计算本专家发现系统的准确率和召回率。并手动查询本系统候选专家表的H-index数据,评价其排名正确性。本文将会对检索方法,排序方法以及数据集大小这些因素来测试其对结果的影响13。2.8 系统实现的语言环境本文专家发现系统实现的语言环境,选择java程序设计语言。本文系统需要设计实现一个图形界面,java语言编写图形界面简单易用,在检索部分,lucene有针对于java语言的开源检索引擎,并且java中类与函数库较为全面,对于一些特殊的数据结构,java中已有了较好的实现。Java语言为面向对象的程序设计语言,对于编写系统可以进行很好的结构化编写。2.9 本章小结本文专家发现系统分为三个大模块,解析数据,为数据建立索引以及客户端的UI界面模块。其中客户端模块包含两个子模块,分别为对查询主题在创建好的索引上检索以及结果统计及排序,数据采用dblp上面的文献数据作为依据,数据解析则采用SAX方法进行解析,信息检索部分利用开源检索引擎Lucene3.6.2实现,进行数据统计时,统计专家姓名以及专家出现在查询结果的次数,并随之生成专家的描述文件。将统计结果按照专家出现的次数进行排序。最终用户通过简单的UI界面使用本系统进行专家发现。本文将对基于文献的专家发现系统准确性,以及系统运行效率进行评估。依据本文的设计要求,本文实现的专家发现系统最终选择了java程序设计语言作为语言环境。第三章 专家发现系统的具体实现3.1 数据采集本文采用dblp上的文献数据,每个文献包含文献名称,作者名称,发表时间,发表地点等具体信息。Dblp数据搜集了近乎所有计算机领域的重要会议,科研活动的学术文献,文献数据库较新而且非常全面,非常适合作为专家发现系统开发的数据依据。数据集相关信息如下。数据下载地址:http:/dblp.uni-trier.de/xml/dblp.xml数据文件名:dblp.xml数据大小:1.12GB相关描述:其中包含2337664个文献记录。3.2 数据处理与解析本系统需要将dblp.xml中的数据中的文献姓名及作者姓名提取出来,作为建立索引的数据依据。所以本系统首先要解析dblp.xml文件。XML文档即可扩展标记语言。可以用于标记电子文件,使其具有结构性的标记语言,可用来标记数据,定义数据类型等,xml文档结构规整易于解析。对于解析xml文档的方法,基于JAVA语言解析XML文档的基本方法有两种:DOM方法和SAX方法。DOM方法,将XML文档一次性加载到内存,访问效率高,允许随机访问。SAX方法,边读边解析,访问效率低,顺序访问。本文使用1.12G的dblp.xml数据,运用SAX方法进行解析,将xml数据库中的文献名称以及作者提取出来,按照下文中的格式输出到txt文档中。运用SAX方法继承DefaultHandler类,各个接口函数的触发条件,如表3-1所示:表3-1: 接口函数说明接口名接口执行位置startDocument();解析文档开始时执行的代码段startElement();元素开始时执行的代码段endElement();元素结束时执行的代码段endDocument();解析文档结束开始时执行的代码段characters();获取元素之间的值时执行的代码段对于输出格式,有下面这些需求。能够区分开专家与文献,以及其著作关系。添加的符号要尽量少,节省空间,且可以减少建立索引的时间。易于建立索引时读文件流的读取。针对需求本文的专家发现系统设计了如下输出格式:(1) 按行输出,每一行都是作者名或文献名;(2) 文献的第一个作者的行首用符号-标记;(3) 文献名行首用+标记;上文输出格式有如下优点。节省空间,每条数据仅多出两个标记字符。数据为按行输出,再进行读取时易于处理。能够无差错的区分开文献名称以及作者名称,并且可准确表示出文献与作者之间的关系。本文在解析dblp.xml时,将接口函数进行重写,在每个接口函数中实现的功能如表(3-2)所示:表3-2: 各接口函数功能接口名接口内完成的功能startDocument建立了一个FileWriter用于将我提取后的数据写入文件。startElement判断element的名称,遇到title和author时,分别向dblp.txt输出+,-endElement判断element的名称,遇到title和author时,输出”rt”。endDocument将FileWriter关闭。characters判断element的名称,遇到title和author时,输出其中的value值。经sax方法解析后,提取出了dblp.xml的文献名以及作者名的数据,解析结果的样例如下。输入的数据样例:E. F. CoddFurther Normalization of the Data Base Relational Model.IBM Research Report, San Jose , CaliforniaRJ909August1971ibmTR/rj909.pdfdb/labs/ibm/RJ909.html输出数据:-E. F. Codd+Further Normalization of the Data Base Relational Model.3.3 文献索引的设计与创建本文利用lucene3.6.2的索引引擎建立索引,这种建立索引的方法,是按照一个个document来存储的,在每个document中可以含有多个域,本文的每一条document则为一条文献记录。最后在添加到索引文件中。lucene3.6.2的索引引擎效率很高,索引格式较为灵活,以下是文献索引的设计与创建具体方法。3.3.1 document的设计本文基于文献的专家发现系统,数据统计阶段需要将作者区分开,所以每一个作者都需要一个域进行存储,进行查询时,只需根据本条document,找到作者相应的field即可得到一个独立的作者名,易于处理,而为了便于作者数据统计,还需要一个域来存储该篇文献的作者数量,在进行作者统计时,将作者数量作为一个阈值,保证所有作者都被统计到,而且本文的document格式,field的数量与文献的作者数量直接相关,大大节省了空间,为建立索引以及后文查询索引的过程,提高了效率。所以document的各个field(域)应包括文献名,作者1,作者2,作者3作者个数,格式以及field的参数设置如表(3-3),其中表格中参数设置的两个参数分别表示存储该域的内容以及将该域进行分词,则检索过程可以对该域进行分词检索。表3-3: document的结构设计field描述参数设置Title文献标题存储 可分词搜索1第一作者存储 可分词搜索2第二作者存储 可分词搜索3第三作者存储 可分词搜索authornum作者数量存储 可分词搜索3.3.2 文献索引的建立本文建立索引的数据依据是上文dblp.xml数据解析的结果数据。其格式为文献的第一个作者的行首用符号-标记;文献名行首用+标记;每一行为文献名或一个作者名。所以索引的创建过程如下:(1) 创建存放索引目录directory以及读文件bufferedreader类。(2) 创建配置管理类IndexWriterConfig。(3) 使用索引目录和配置管理器类创建索引。(4) 按行读dblp.txt,根据标记符(+,-)确定数据类型(title或author),并读取出值,统计authornum,把它们写到index中,直到把输出文件读取完毕,索引也创建完成。创建索引子模块的程序流程图如图(3-1)。图3-1: 创建索引子模块的程序流程图3.4 根据查询主题检索文献索引本文检索索引的工作,同结果统计与排序和UI设计在同一个模块中。即用户使用的客户端子模块。在用户进行点击查询按钮时,本模块开始运行。其中检索部分利用Lucene3.6.2检索引擎进行检索索引中document的title域,将所有与查询主题相关的title都检索出来,若存在空格,设置检索模块以且的方式进行分词检索,检索过程主要有如下流程:(1) 创建FSDirectory类打开index文件夹。(2) 创建IndexReader类,读取index。(3) 创建IndexSearcher类的搜索器。(4) 创建Queryparser分词查询类,指定规则为standardanalyzer(version.lucene_36)。(5) 输入查询内容queryword。(6) 设置检索引擎参数以AND方式进行检索。(7) 基于queryparser创建query类,查询queryword,返回最符合要求的结果。(8) 查询结束。对于查询主题的检索结果示例如下:输入: machine learning输出:title: 0 Machine Learning.title: 1 On Machine Learning.title: 2 From Machine Learning to Machine Reasoningtitle: 3 Machine Learning, Machine Vision, and the Brain.title: 4 Machine Learning for Classifying Learning Objects.title: 5 Perceptual Learning and Abstraction in Machine Learning.title: 6 From Machine Learning to Child Learning.title: 7 Machine Learning and Software Engineering.title: 8 Varieties of Justification in Machine Learning.title: 9 Genomic profiling by machine learning.title: 10 Problems of Machine Learning.title: 11 On-line Algorithms in Machine Learning.title: 12 Machine Learning and Relevance Feedback.title: 13 A distributed machine learning framework.title: 14 Machine Learning of Temporal Relations.title: 15 Machine Learning in Infrastructure Security.3.5 统计查询结果与候选专家的排序本文统计的数据有专家姓名,专家所著相关文章的数量,专家所著相关文章的文献名。在结果测试阶段,本文还会对第一作者加入权值2,其余作者的权值为1,统计每位作者的权值进行排序。本文的专家发现系统结果统计与候选专家排序实现的主要流程如下:(1) 将每一条的docsi中的”1”,”2”field中的值存入到一个TreeMap中。value值加1替换原来的结果。(TreeMap中节点有两个元素key,value)(2) 申请一个list的数据结构,将TreeMap中的所有值push进list中。(3) 将list中的value值运用冒泡排序算法进行排序。(4) 输出排好序的list中的专家名称以及专家所著相关文献数量。对第一作者加入权值的排序算法与上文类似,只需判断document的域名,若为1,则TreeMap中在原有value值上加2.依据文献数量统计候选专家并排序结果样例如下:输入: machine learningGuang-Bin Huang: has article number: 35Ivan Bratko: has article number: 23Pat Langley: has article number: 18Ji-Bo Wang: has article number: 16Thomas G. Dietterich: has article number: 16Floriana Esposito: has article number: 14Dar-Li Yang: has article number: 11Wen-Hung Kuo: has article number: 11Chin-Chia Wu: has article number: 13Matjaz Kukar: has article number: 11输出:检索文献索引、数据统计以及排序算法实现的流程图见图(3-2)。图3-2:检索文献索引、数据统计以及排序算法实现的流程图3.6 专家发现系统的UI的设计与实现UI设计即指的是用户界面的设计,其中应该能为用户完整的提供本系统给用户的功能。本文专家发现系统,用户输入查询主题并点击查询按钮时,系统返回专家发现的候选专家结果表给用户,用户输入专家序号并点击确定按钮时,系统返回专家的描述文件。本文专家发现系统包含一个主窗口,两个按钮,两个文本输入域,一个文本输出域。本文的专家系统UI界面结果如图(3-3)。图3-3: 专家发现系统的UI界面整个界面为一个主窗口。区域1为用户输入查询主题的文本框,当用户输入查询主题后,点击区域2处的搜索按钮,则专家发现系统将进行查询文献索引,统计结果并排序得到专家发现的候选专家结果表在区域5返回给用户。当用户在区域3输入专家序号后(如0),点击区域四处的确定按钮,系统将在区域5返回给用户专家的描述信息(图3-4)。当区域3内容为空用户点击区域4的确定按钮时,则区域5处打印候选专家表。在点击区域2出的搜索按钮以及区域4处的确定按钮时,5个区域都无法操作区域2的搜索按钮actionPerformed接口实现了如下工作过程:(1) 将两个按钮锁定,禁止点击。(2) 获取区域一文本域的字符串queryword。(3) 建立检索引擎读入文献索引文件,并对queryword进行检索。(4) 统计专家文献数量并排序,得到专家描述文件,得到专家发现候选专家结果表。(5) 将结果表打印在区域5的文本框中。(6) 将2个按钮解锁。区域4 的确定按钮actionPerformed接口实现如下工作过程:(1) 锁定两个按钮。(2) 获取区域3处的字符串number并将其转化为int型。(3) 若区域3处文本框是数字且未超过得到的候选专家数量,依据number在list中找到专家姓名author。若区域3处为空或不在合法范围内打印候选专家排名表并解锁按钮。(4) 根据author作为key值,在描述文件数据中找到相应的描述文件。(5) 打印该专家描述文件。(6) 解锁按钮。图3-4:0号用户的专家描述文件查询3.7 本章小结本章详述了专家发现系统的具体实现,包括数据采集;数据处理与解析;文献索引的设计与创建;根据查询主题检索文献索引;统计查询结果与候选专家的排序以及UI界面的设计与实现。本文实现的专家发现系统利用dblp的文献数据库,解析其xml文件得到数据库中的文献名以及作者数据,利用Lucene3.6.2的索引引擎建立索引,索引中包含了文献名、作者1、作者2作者数量几个field。进行查询操作时,利用Lucene 3.6.2中的检索引擎进行检索,得到与查询主题相关的document索引条。统计结果时,利用hashmap的key值存在则替换value值的特点,统计候选专家的相关文献数量以及构建该专家的描述文件。再将此数据push进一个双向链表list中,利用冒泡排序的算法,对结果排序,得到专家发现的候选专家结果排名表。最后设计了一个UI界面供用户使用本系统的专家发现及查询专家描述文件的功能。第4章 专家发现系统的结果分析4.1 本文专家发现系统的测试结果本文选用了tangjie和jingzhang在2007年8月的实验结果作为本文专家发现系统的对比集。该对比集从尽可能多的来源搜集了相关主题以及人物名单。并随即选择了13个主题创建了13个候选专家的名单。这个数据集常常被用作专家发现的标准数据。本文将采用其中的三个主题即:machine learning、planning以及information extraction。通过计算召回率,来测试本系统专家发现的结果性能。本文会对数据集大小以及排序方法对专家发现结果的影响进行评估。对于排序算法,除了前文介绍的依据候选专家文献数量排序算法,考虑到第一作者通常在文献中具有最总要的位置,所以改进的算法将第一作者加入了权值2,其余的作者权值为1,统计权值后,按照权值将候选专家进行排序。本文专家发现的结果分析有如下3个指标:(1) 依据tangjie的实验数据作为对比集计算召回率。(2) 手动查询候选专家H-index对专家排名进行评估。(3) 专家发现的系统运行时间。召回率为P,s本文专家发现系统结果命中对比集中专家的数量,w为对比集中专家的总数量。其中,专家发现的结果集大小应与对比集结果大小保持一致。召回率计算公式如公式(4-1): (4-1) 本文将对数据集大小对专家发现结果的影响以及专家发现的排序方法对结果进行影响进行性能分析。样例一数据集大小:2337664篇文献排序方法:将文献中的第一作者赋予权值2,其余作者的权值为1.统计后排序。样例二数据集大小:895156篇文献排序方法:将文献中的第一作者赋予权值2,其余作者权值为1.统计后排序。样例三数据集大小:2337664篇文献排序方法:按照候选专家的文献数量进行排序。测试一输入: machine learning测试二输入: planning测试三输入: information extraction这里我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厨房员工劳务合同与厨房承包合同10篇
- 初步设计及概算招标代理合同范本8篇
- 2025版分期付款买卖合同10篇
- 2025年用电设备改造工程合同7篇
- 买卖合同正规采购合同5篇
- 北京市预拌混凝土购买合同范本
- 旧房拆墙改造方案范本
- 浙江长征职业技术学院《生命应急救护》2023-2024学年第一学期期末试卷
- 沈阳工程学院《温病学研究进展》2023-2024学年第二学期期末试卷
- 咖啡行业指数分析报告
- 旅游资源同步练习(区一等奖)
- 大学生创业计划书word文档(三篇)
- 平移和旋转的应用
- 小学书法兴趣小组活动方案及小学书法兴趣小组活动记录
- 和面机设计说明书毕业设计
- JJG 8-1991水准标尺
- GB/T 4857.17-2017包装运输包装件基本试验第17部分:编制性能试验大纲的通用规则
- 直流汇流箱知识培训
- 综合工业废水处理PACT工艺
- GA/T 16.31-2017道路交通管理信息代码第31部分:交通违法行为类别代码
- 焊工(中级工)技能鉴定考核评分表
评论
0/150
提交评论