本科毕业论文 搜索引擎F - 图文(2)

2019-05-18 18:27

论文1 正文 引用1 引用2 评论 源论文 评论 引用 句子1 句子2 句子3 句子4 ...... 评论 基于影响的概括 引用 论文2 正文 引用1 引用2 图表 1 论文检索和挖掘系统框架

1.2工作内容

1.2.1抓取所需要的论文数据

要进行论文搜索,首先需要一批实验数据,我是从portal.acm.org上抓取下来的。之所以选择从这上面抓取,是因为我们不仅需要论文的pdf文档,还需要从中自动提取摘要、引用等信息,而这本身就应该是一个挺复杂的算法了,而且不是我们工作的目的,而上述网站已经人工的将论文的摘要、引用信息提取了出来,并且对于每一个引用还有相应的链接,因此会节省我们抓取数据所要花费的工作量。最终我们将抓取的数据存储在BerkeleyDB中。

1.2.2获得一篇论文的评价并较好的显示出来

我们这个系统的主要工作是通过别的论文对原论文的评论,来获得一些不能直接从原论文中获得的信息,因此,最基础的,就是如何获得这些评论。关于这一点,我们通过上面的数据收集工作,会获得一个论文之间的引用图,然后通过引用的倒置,能够获得引用一篇论文的所有文章,然后,通过一个算法,可以从这些文章中提取出对原文进行评价的句子。最终,为了便于使用者观看,还需要对这些句子进行一些整理,进行排序、整理成一个段落出来。

2

1.2.3获得一篇论文基于影响的总结段落

在获得对原文进行评论的句子之后,将原文划分成一个一个的句子,我们利用了KL-divergence算法(参看[Croft, et al.,2009]的7.3节),对这些句子进行打分,这里分数的高低,代表了原文中每一个句子影响程度的高低,显然,影响越大的句子,在别的文章中提及的越多,其分数就越高。最后,我们取一定数量得分最高的句子,组成一个段落,这个段落是对原文的一个概括,而且会获摘要所不能获得的一些信息。

1.2.4基于PARADISE平台搭建搜索平台

我们基于PARADISE搜索引擎平台搭建成了一个关于pdf的全文搜索系统。 PARADISE由预处理,建立索引,检索,前台四部分组成。由于我们的数据是论文,并且已经转化为了txt文本格式,预处理这一部就略去了,需要继承一个建立索引的类,并且修改一些前台的接口就可以了,这样就搭建成了一个论文搜索系统。这一过程也体现出了PARADISE的可扩展性及易用性,PARADISE中的每一个组件都是可以通过继承一个自定义的新类来完成的,其中包括预处理、索引、检索、语言模型、排序、压缩等等所有的模块都可以自己选择或者自己重新定义来完成。

1.3实验的意义

我们在读一篇论文之前,一般能简单的看到它的摘要、作者等信息。而在读完一篇论文之后,我们能获得什么信息呢?主要有以下几种:

1) 这篇文章做了什么事情,这可以从摘要中获得。

2) 这篇文章中涉及到的核心算法,这个只有在细致的读完了这篇文章之后才能理解,应该是没法依靠辅助来获得的。

3) 这篇文章哪些部分比较重要,哪些部分比较好,哪些部分需要改正,我

们可以从哪些方向进行扩展。

对于第三点,如果完全自己理解,可能会比较困难,而且对读者自己的要求也比较高,可能要读了很多这方面的背景知识、后续论文等等才可能获得,而通过我们做的这个系统,就可以帮助大家更简单的获得一些从文章中不能直接获得的信息。

一般来说,作者如果想从自己的角度归纳本文的大体内容,通过阅读摘要,我们可以看到作者写这篇文章大体做了什么。但是文章中很有可能有一些作者没有发现,或者作者当前没有重视但是以后被别人发掘出来很重要的意义。通过将那些对文章进行引用的句子,与本文建模,对原文中的句子进行排序,从而获得文章中一些有特殊意义,影响较大的句子,这样,我们可以获得文章中最重要的

3

信息,而这些重要信息和摘要的区别就是,它们不是作者提出来的,而是别的作者在读了这篇文章以及其他的文章,经过很多思考之后,总结出来的这篇文章最重要的地方。

此外,别的文章中对原文进行评论的句子[Nakev, et al.,2004],本身就是很重要的信息,可以让我们知道原文都做了哪些后续工作,或者哪些部分比较好,哪些部分需要改正。

简单来说,我们这个系统的意义,就是通过数据挖掘的方法,获得一些直接从原论文很难发现的信息,并且结合PARADISE系统,以搜索引擎的方式呈现出来,便于大家检索查找。

4

第2章 数据的收集

我们这个系统的目的是为了方便读者理解论文,因此除了需要基本的论文的pdf格式,还需要提取发表期刊、作者、摘要、被引用次数,引用文章这些信息。其中,发表期刊、作者以及被引用次数是用来在后面获得comment以及impact-based summary进行排序的时候加权用的,显而易见,较好的期刊,较有名的作者,引用次数较高的文章,它做出的评价应该要重要一些(当然,这里只是预留着为以后的扩展用,而我们的系统实际上并没有用到作者的知名度信息)。当然,其中最重要的是提取引用的信息。我们的目标是通过获得每篇文章所引用过的文章,建立一个映射表,然后将映射表倒置过来,从而获得每篇文章被哪些文章引用过。

2.1如何提取数据

首先,是如何提取文章的摘要等各种信息了。本来我是准备直接从文章中提取的,随着工作的深入,发现这样做有很多的缺点,首先,从paper中提取各种信息就是一个很繁重的工作,这本身就可以当做一个毕业设计来做了,会消耗大量的时间,但却不一定能够达到工作的目的;其次,最重要的是,在每一篇文章里,reference是以(作者,文章名,发表期刊,年份)的形式表现出来的,例如: G. Luecke, H. Chen, J. Coyle, J. Hoekstra, M. Kraeva,and Y. Zou. MPI-CHECK: A tool for checking Fortran90 MPI programs. Concurrency and Computation:Practice and Experience, 15:93–100, 2003. 而我们存储每篇文章的时候,是以期刊作为文件夹,以文章标题作文文件名来存储的,例如这篇论文,以下面的形式存储的。 pdf/Concurrency_and_Computation:Practice_and_Experience/MPI-CHECK:_A_tool_for_checking_Fortran90_MPI_programs. 因此,我们需要从上面的那句话中提取会议名以及文章名,才能获得文章之间的引用关系,建立一个FromTo表。这之中即使是相差一个空格都不行,会直接导致整个系统的失败。

于是,我们想出了一个简单的办法。可以看到,在portal.acm.org上,每

5

一篇论文的格式都是规整的,从上面可以很容易的提取出摘要、文章名、期刊等信息,可以下载到pdf版的文件;更重要的是,对于论文的引用信息,在该网页上给出了一个超链接,点击之后就可以进入引用的文章的信息。因此,可以利用递归的方法,进入引用的文章,从中提取出会议名以及文章名,这样,每篇文章的引用就可以形成上面的格式,并且是完全正确的,方便我们建立引用映射表。 接着,要设定递归的种子以及递归的层数。因为我们的实验所需要的数据最好是在一个领域里面的相同方向的论文,并且需要引用关系较紧密的,以便于后续的工作,因此,这里采用WWW会议的文章作为种子,对于每一篇文章递归三层。如果递归四层,就会太多了。假设一篇文章有十个引用,那么递归四层,就会导致每从WWW会议中抓取一篇文章,就需要抓取1000篇相应的其他文章,这个数量实在是太大了;如果递归两层,就会导致每篇文章只能抓取其引用的文章,这样引用的层次较浅,很有可能导致最后引用倒置时,每一篇文章只被一两篇文章引用,这样不利于我们的实验。

最后,我们需要将pdf转化为txt格式,这是利用Linux自带的pdf2txt工具来实现的。这个工具不支持对文件夹的递归操作,因此,我用python写了一个脚本,通过递归操作,可以将一个sourceDir里面的所有pdf文件递归转化为txt文件,并按照原来的相对路径存在destDir里面。

2.2数据抓取的过程

确定好抓取数据的大体方法,下面开始正式抓取数据。所用的工具比较简单,就是利用Linux下的wget工具,下载网页并进行分析。另外我们这里利用了第三方库boost::regex,这种正则表达式非常适合从网页中进行模式匹配并且提取出数据。有了前面的两项工具,我们只需要分析好网页的模式,尽量正确的提取数据既可以了。需要注意的是,由于网页并不是完全规整的,因此,有时候,对于同一个数据,往往要写多种匹配的公式才可以,这其中,最麻烦的当属提取引用部分了(我们不仅要提取引用,还要提取这个引用对应得url,从而递归进入提取它的论文名)。

以提取作者信息为例:


本科毕业论文 搜索引擎F - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第2章 MCS-51单片机结构及原理题解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: