论文格式
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 轻化工程 德语论文 工程管理 文化产业管理 信息计算科学 电气自动化 历史论文
机械设计 电子通信 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 电视制片管理 材料科学工程 汉语言文学 免费获取
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 应用物理 电子信息工程 服装设计工程 教育技术学 论文降重
通信工程 电子机电 印刷工程 土木工程 交通工程 食品科学 艺术设计 新闻专业 信息管理 给水排水工程 化学工程工艺 推广赚积分 付款方式
  • 首页 |
  • 毕业论文 |
  • 论文格式 |
  • 个人简历 |
  • 工作总结 |
  • 入党申请书 |
  • 求职信 |
  • 入团申请书 |
  • 工作计划 |
  • 免费论文 |
  • 现成论文 |
  • 论文同学网 |
搜索 高级搜索

当前位置:论文格式网 -> 免费论文 -> 其他论文

基于PARADISE平台的论文检索系统(二)

本论文在其他论文栏目,由论文格式网整理,转载请注明来源www.lwgsw.com,更多论文,请点论文格式范文查看
 我们知道,国外的PHD学生在第一年的学习之后都是要通过QE考试的,考试的形式一般是先读几十篇论文,然后根据这些论文的内容进行答辩。这时候,他们往往很想知道别人是如何评价这篇论文的,这篇论文有什么优点和缺点,有什么后续的研究等等。这就像我们准备去一个地方旅游,不仅需要该景点本身的介绍(有点类似于摘要),往往更想知道去过这个地方的人都是如何评价这些地方的。通过对这篇论文的评价,我们可以从更专业并且更加广阔的角度获得这篇论文的一些信息,并且可以知道在这篇论文工作之后可以做哪些事情。
 基于上面的观点,我们就准备做出这样一个知识提取系统,通过这个系统,可以自动获得别人对这篇论文的评价[Nanba and Okumura,1999 ],以及论文中的一些较有影响力的信息,从而帮助人们更好的理解这篇论文。整体流程如图表 1所示。
 在 [Mei and Zhai,2008]中,作者利用KL-divergence算法建立了一个模型,生成了一篇论文基于影响的概括,但是它并没有强调评论的重要性(这里的评论,是指别的作者对它引用的一篇文章的评论),它只讲评论当成一个中间状态,当成一个求得基于影响的概括的手段。实际上,这些评论和最终经过KL算法形成的概括是同等重要的,有时候,它甚至比后者更加清晰易懂。本文相对于[Mei and Zhai,2008]的优点是,赋予评论以及概括同等重要的意义,并且形成了一个实际的系统供人使用,而不仅仅是用于研究。
 
1.2工作内容
1.2.1抓取所需要的论文数据
 要进行论文搜索,首先需要一批实验数据,我是从portal.acm.org上抓取下来的。之所以选择从这上面抓取,是因为我们不仅需要论文的pdf文档,还需要从中自动提取摘要、引用等信息,而这本身就应该是一个挺复杂的算法了,而且不是我们工作的目的,而上述网站已经人工的将论文的摘要、引用信息提取了出来,并且对于每一个引用还有相应的链接,因此会节省我们抓取数据所要花费的工作量。最终我们将抓取的数据存储在BerkeleyDB中。
1.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实验的意义
 我们在读一篇论文之前,一般能简单的看到它的摘要、作者等信息。而在读完一篇论文之后,我们能获得什么信息呢?主要有以下几种:
这篇文章做了什么事情,这可以从摘要中获得。
这篇文章中涉及到的核心算法,这个只有在细致的读完了这篇文章之后才能理解,应该是没法依靠辅助来获得的。
这篇文章哪些部分比较重要,哪些部分比较好,哪些部分需要改正,我们可以从哪些方向进行扩展。
 对于第三点,如果完全自己理解,可能会比较困难,而且对读者自己的要求也比较高,可能要读了很多这方面的背景知识、后续论文等等才可能获得,而通过我们做的这个系统,就可以帮助大家更简单的获得一些从文章中不能直接获得的信息。
 一般来说,作者如果想从自己的角度归纳本文的大体内容,通过阅读摘要,我们可以看到作者写这篇文章大体做了什么。但是文章中很有可能有一些作者没有发现,或者作者当前没有重视但是以后被别人发掘出来很重要的意义。通过将那些对文章进行引用的句子,与本文建模,对原文中的句子进行排序,从而获得文章中一些有特殊意义,影响较大的句子,这样,我们可以获得文章中最重要的信息,而这些重要信息和摘要的区别就是,它们不是作者提出来的,而是别的作者在读了这篇文章以及其他的文章,经过很多思考之后,总结出来的这篇文章最重要的地方。
 此外,别的文章中对原文进行评论的句子[Nakev, et al.,2004],本身就是很重要的信息,可以让我们知道原文都做了哪些后续工作,或者哪些部分比较好,哪些部分需要改正。
 简单来说,我们这个系统的意义,就是通过数据挖掘的方法,获得一些直接从原论文很难发现的信息,并且结合PARADISE系统,以搜索引擎的方式呈现出来,便于大家检索查找。
 

第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上,每一篇论文的格式都是规整的,从上面可以很容易的提取出摘要、文章名、期刊等信息,可以下载到pdf版的文件;更重要的是,对于论文的引用信息,在该网页上给出了一个超链接,点击之后就可以进入引用的文章的信息。因此,可以利用递归的方法,进入引用的文章,从中提取出会议名以及文章名,这样,每篇文章的引用就可以形成上面的格式,并且是完全正确的,方便我们建立引用映射表。
  接着,要设定递归的种子以及递归的层数。因为我们的实验所需要的数据最好是在一个领域里面的相同方向的论文,并且需要引用关系较紧密的,以便于后续的工作,因此,这里采用WWW会议的文章作为种子,对于每一篇文章递归三层。如果递归四层,就会太多了。假设一篇文章有十个引用,那么递归四层,就会导致每从WWW会议中抓取一篇文章,就需要抓取1000篇相应的其他文章,这个数量实在是太大了;如果递归两层,就会导致每篇文章只能抓取其引用的文章,这样引用的层次较浅,很有可能导致最后引用倒置时,每一篇文章只被一两篇文章引用,这样不利于我们的实验。
 最后,我们需要将pdf转化为txt格式,这是利用Linux自带的pdf2txt工具来实现的。这个工具不支持对文件夹的递归操作,因此,我用python写了一个脚本,通过递归操作,可以将一个sourceDir里面的所有pdf文件递归转化为txt文件,并按照原来的相对路径存在destDir里面。
2.2数据抓取的过程
 确定好抓取数据的大体方法,下面开始正式抓取数据。所用的工具比较简单,就是利用Linux下的wget工具,下载网页并进行分析。另外我们这里利用了第三方库boost::regex,这种正则表达式非常适合从网页中进行模式匹配并且提取出数据。有了前面的两项工具,我们只需要分析好网页的模式,尽量正确的提取数据既可以了。需要注意的是,由于网页并不是完全规整的,因此,有时候,对于同一个数据,往往要写多种匹配的公式才可以,这其中,最麻烦的当属提取引用部分了(我们不仅要提取引用,还要提取这个引用对应得url,从而递归进入提取它的论文名)。
 以提取作者信息为例:
<a href="author_page.cfm?id=81100472691&coll=portal&dl=ACM&trk=0&CFID=23904299&CFTOKEN=88670161" target="_self">Yong Yu</a>
我们需要从上面的公式中提取出作者名,需要以下几步:
利用boost regex公式写一个正则表达式匹配上面的文本
boost::regex ePaperAuthors(
"<td class=\"small-text\">\\s*<a href=\"[^\"]*?author[^\"]*\" target=\"_self\">([^<>]*?)</a>\\s*</td>"
,boost::regex::normal |boost::regbase::icase);
其中引号中的内容为匹配的正则表达式,注意其中的一对小括号,其中的内容就是我们需要提取的信息
利用split函数,将结果存入list里面
list<string> authors;
boost::regex_split(std::back_inserter(authors), content, ePaperAuthors);
这样,文章中所有匹配上面正则表达式的字符串,其中的作者信息(即上面括号中的内容),都会存在authors这个容器里面
 还需要注意的一点就是,由于网页的不规整性,所以要排除一些错误的情况。还有一些文章,确实没有摘要、引用或者其他信息(这些文章多出现在引用链的顶层,主要是一些书籍等参考资料,所以也比较正常),遇到这些情况我们就不抓取下来了。
2.3数据的存储及解析
  在将数据从网页下载下来之后,需要存储起来。首先,对于pdf的格式,只能存在文件系统里,按正常的方式存储。对于其他的信息,这里选择存储在Berkeley DB(简记为BDB)里面。BDB是一种轻量级的数据库,Mysql等数据库底层就是利用BDB来完成的。它的优点是可移动性,不用像Mysql那样搭建服务器,而且读取数据时较快。对于每一篇文章的基本信息metadata,按照表格 1中的形式存入BDB中:
表格 1
Key int64_t的一个整数
Value 字符流,存储元数据信息,按如下格式:
**************************************************name
**************************************************source
**************************************************abstract
**************************************************citationCount
**************************************************authors
**************************************************references
**************************************************referenceName
**************************************************url

 获得这些基本信息之后,我们还要根据这些元信息,陆续建立一些BDB文件,用于存储其他信息,如表格 2:
表格 2
文件名 Key Value
content.dpt int64_t的整数,论文ID 这篇论文的全部文本内容
fromto.dpt int64_t的整数,论文ID 用于存储一篇论文所引用的所有文章
tofrom.dpt int64_t的整数,论文ID 用于存储一篇论文被哪些文章所引用
comment.dpt int64_t的整数,论文ID 存储最终要显示在页面上的文章的评价
summary.dpt int64_t的整数,论文ID 存储最终要显示在页面上的基于影响的文章的概括

 其中content.dpt是通过将pdf格式转化为txt之后获得的。fromto.dpt是对整个论文的引用关系图进行解析获得的,从上面的元数据中,我们可以获得每篇论文所引用的论文的名称,这样,我们可以通过这些名称,来获得这个论文所引用的所有论文的ID号,并且存储到数据库中。获得fromto.dpt之后,对其进行倒置,就可以获得tofrom.dpt的内容
 这里之所以选择BDB进行存储,是因为它有以下这些优点:
嵌入式(Embedded):它直接链接到应用程序中,与应用程序运行于同样的地址空间中,因此,无论是在网络上不同计算机之间还是在同一台计算机的不同进程之间,数据库操作并不要求进程间通讯。
BDB为多种编程语言提供了API接口,其中包括C、C++、Java、Perl、Tcl、Python和PHP,所有的数据库操作都在程序库内部发生。对于我们这个系统,后台程序是由C++完成,而前台程序是由Python完成,他们都会共同访问一些文件,通过存储在BDB进行存储,就解决了不同语言之间兼容的问题。
轻便灵活(Portable):它可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下。它并不需要搭建一个数据库服务器,以用户、服务器形式访问数据库,而是以函数调用的形式。一旦BDB被链接到应用程序中,终端用户一般根本感觉不到有一个数据库系统存在。这样提高了我们的系统的实用性,当用户需要自己搭建一个我们的论文系统时,不用再去搭建数据库服务器,进行各种繁琐的配置。

第3章 生成评论集

首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6


相关论文
上一篇:试论嘉兴市的电子化政府建设 下一篇:永不停歇的永远――谈铁凝的创作..
Tags:基于 PARADISE 平台 论文 检索 系统 【收藏】 【返回顶部】
人力资源论文
金融论文
会计论文
财务论文
法律论文
物流论文
工商管理论文
其他论文
保险学免费论文
财政学免费论文
工程管理免费论文
经济学免费论文
市场营销免费论文
投资学免费论文
信息管理免费论文
行政管理免费论文
财务会计论文格式
数学教育论文格式
数学与应用数学论文
物流论文格式范文
财务管理论文格式
营销论文格式范文
人力资源论文格式
电子商务毕业论文
法律专业毕业论文
工商管理毕业论文
汉语言文学论文
计算机毕业论文
教育管理毕业论文
现代教育技术论文
小学教育毕业论文
心理学毕业论文
学前教育毕业论文
中文系文学论文
最新文章
热门文章
计算机论文
推荐文章

本站部分文章来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:349991040@qq.com

论文格式网(www.lwgsw.com--论文格式网拼音首字母组合)提供其他论文毕业论文格式,论文格式范文,毕业论文范文

Copyright@ 2010-2018 LWGSW.com 论文格式网 版权所有