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

2019-05-18 18:27

5.2修改索引部分

对于本次的文献检索部分,只需要继承一个索引部分的类就可以了,具体代

码如下(这里只贴出最关键的两端代码,中间还省略了一些代码),其中黄色背景的是需要我们修改的部分。 void main(){ Analyzer* analyzer = new NaiveAnalyzer(); compressorFactory = new PForDeltaCompressorFactory(); IndexWriter * writer = new IndexWriter(fsdir, analyzer, compressorFactory); writer->setMergeThreshold(mergesize); PDFParser parser; if (begin != 0) { while (begin > 0) { parser.hasNext(); begin--;}} int doc_id = 1; Timer t; while (parser.hasNext()) { shared_ptr parser.getContent(); addDocument(pContent, writer, doc_id); if (num >= 0 && doc_id >= num) { break;}} } 在上面的这段代码中,可以看出,首先建立了一个分析模块,然后选择压缩方式为pfordata,然后建立一个IndexWriter,这个是建立索引的类。而我们需要做的事情,就是:

(1) 重写一个Parser类,这里的名称为PDFParser,这个parser需要有

hasNext,getContent这两个函数即可。 (2) 重写一个Content类,里面存有所需要建立索引的document的内容,由上面的getContent类返回。

(3) 重写addDocument函数,如下,其中关键部分用黄色背景标注。 int addDocument(shared_ptr pContent, IndexWriter* pWriter, int & doc_id) { pContent = 17

paradise::index::document::Document document; shared_ptr Field::TextStatistics(\Content\ shared_ptr field_content = field_content_data(new FieldData(pContent->getContentToken())); field_content.get()->setFieldData(field_content_data); document.addField(field_content, NONSTATIC); shared_ptr field_ID = Field::Keywords(\Url\ shared_ptr field_ID_data(new FieldData(PDFFunction::Int2Str(pContent->getID()))); field_ID->setFieldData(field_ID_data); document.addField(field_ID, NONSTATIC); ? document.setDocId(doc_id); pWriter->addDocument(document); doc_id++; } 上面的代码中,首先建立一个Content域,内容为我们的文献全文形成的字符串。然后建立了一个url域。其中,url域及其重要,是必须有的一个域,而且必须名为Url。我们知道,所谓倒排索引,是指对一系列文本的内容建立索引,通过这些内容,可以获得这些文本的ID号,就如网页搜索一样,我们通过那些网页的内容,搜索到网页的url。这里我们将文献的文本内容存在BDB中的,因此需要获得每个文章的ID号。

PARADISE系统的设置是,在我们开启一个搜索服务时,一个请求发向服务器端之后,服务器端会将搜索到得结果的url列表返回给前端,这个url列表必须是来自上面的Url域。因为PARADISE主要是针对网页搜索的,所以称这个域为Url,实际上应该叫DocumentID更确切一点。

5.3修改前台部分

PARADISE的前台部分也设计的很好,特别是摘要算法已经完成测试。因此对于前台部分,只需要修改一点,就是提供一个候选摘要的数据库。我们知道,不可能对整篇文章进行摘要算法,那样会耗费大量的时间,最终会导致前端所耗费的时间比后端检索所花费的时间还多,这显然是用户无法接受的。因此,前台部分唯一需要修改的部分,就是给定一个ID号,获得它的摘要。这里,我们利用了前面获得的metadata.dpt文件,里面存有一篇论文的摘要,获得摘要段落之后,对其利用摘要算法,可以获取较好的效果。

18

另外,我们这个系统不是简单的一个论文检索系统,检索只是方便使用的工具,更重要的,它是一个知识提取系统,因此,还需要自己编写一些界面用来显示知识,这些就不再赘述。

5.4系统示意图 5.4.1主界面

19

5.4.2搜索结果界面

20

5.4.3评论界面

21


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

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

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

马上注册会员

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