Lemur Toolkit是一个新兴的实验系统。它由卡耐基-梅隆大学(CMU)开发,在2001年公布了第一个公开的版本,目前最新版本是4.6。其特点是在检索中引入了语言模型,更重要的是,它不仅是一个完整的检索系统,而且是以工具包的形式提供的。各功能模块都有良好的封装,并提供清晰的源代码和丰富的文档说明,研究者使用它搭建自己的实验系统易如反掌。
Lemur Toolkit的设计目标是促进和帮助在文本信息检索和语言模型方面的研究,包括特定目标检索、分布式检索、跨语言检索、文摘系统、信息过滤和文本分类等各方面技术的研究。工具包支持对大规模文本数据建立索引,对文档和查询构建简单的语言模型,同时实现了基于语言模型的检索系统。整个系统用C和C++语言实现,可在Unix和Windows系统下运行。
Lemur Toolkit支持XML检索,以下分析Lemur Toolkit的结构时,是针对XML检索和查询部分。
参数文件
Lemur在windos下建立索引, 是在命令行下运行以下命令:
IndriBuildIndex.exe parameter file
Lemur是根据指定的配置文件parameter file来对XML文档集建立索引的。parameter file是一个包含建立索引时必要信息的XML文件。一个参数文件的样例如下:
<parameters>
<index>F:/xmltest/index</index>
<corpus>
<path>F:/xmltest/testdoc</path>
<class>xml</class>
</corpus>
<memory>128m</memory>
<stemmer>
<name>krovetz</name>
</stemmer>
<stopper>
<word>a</word>
<word>an</word>
<word>the</word>
</stopper>
<field>
<name>title</name>
</field>
<field>
<name>author</name>
</field>
</parameters>
Index:表示创建后的索引存放的目录,示例的配置文件表示把索引存放在索引存放在F:/xmltest/index目录下面。
Corpus:表示要创建索引的XML文档集。示例的配置文件表示把F:/xmltest/testdoc目录下的XML文档集建立索引;class表示文档集的类型,Lemur支持html、txt、xml、pdf等类型。
Memory:使用128M的内存建立Memory Index(Memory Index参见2.2.5节),Lemur在把XML文档解析后,建立的索引先放在内存的Memory Index,当Memory Index耗尽后,就把Memory Index存放的部分索引保存到硬盘上,之后清空Memory Index存放余下的XML文档建立的索引,当索引完整个XML文档集之后,把硬盘上的所有部分索引归并,形成一个最终的索引。
Stemmer:表示取词根的方法,Lemur支持Krovetz和Porter 这两种方法。
Stopper:表示stopper word的列表。
Field:在文档集中要索引的元素结点,没指定的不建立索引。示例的配置文件表示只对XML文档集中title或author的元素结点建立索引。并后的这样在处理比较大型的文档集时非常不方便,因为不能预先知道文档集中元素结点的名字,所以系统默认的建索引方式有待改进。
Lemur在windos下执行查询, 是在命令行下运行以下命令:
IndriRunQuery.exe parameter file
Lemur是根据指定的配置文件parameter file来执行查询的。一个配置文件的样例如下:
<parameters>
<index>d:/test/index</index>
<memory>128m</memory>
<query>
<number>2</number>
<type>nexi</type>
<text>//artilcle[about(., microkernel operating systems)]</text>
</query>
</parameters>
Index:表示要查询的索引,也就是Lemur在创建索引时,索引存放的目录;
Memory:在查询过程中使用的内存的大小;
Query:其中number只标识不同查询的查询,type表明查询语句的类型,Lemur支持inquery和nexi,text表示具体的查询语句。