2.2生成索引
Lemur Toolkit建立对XML文档建立索引的过程,和其它检索系统很相似,主要分为文档的解析,去除stopword和取词根,统计tf,存入硬盘。过程如图一所示。
这部分是把XML文档拆分成对应的单词和元素结点的集合,生成的结构体为TokenizedDocument。其中单词是存在向量terms中,对应的位置是通过在XML文档的偏移量表示的,存储于结构体TermExtent中,元素结点的位置是通过位于元素结点前的单词的数量表示的,存储于结构体TagEvent中。
如对于下面的文档一;元素结点的begin和end值由表一表示。
文档一
<note>
<to>Tove</to> 表一
|
元素结点 |
begin |
end |
|
note |
0 |
8 |
|
to |
0 |
1 |
|
from |
1 |
2 |
|
title |
2 |
3 |
|
body |
3 |
8 |
<from>Jani</from>
<title>Reminder</title>
<body>
Don't forget me this weekend!
</body>
</note>
这部分主要是对上步中的TokenizedDocument中的元素结点集合,统计元素结点之间的父子关系。这种父子关系是存在结构体TagExtern中parent字段的。并将一个元素结点的开始和结束部分合并成。如对于文档一中的<note>和</note>,在TokenizedDocument中只保留一个元素结点note,而不是分别保留<note>和</note>两个元素结点。
这一部分,主要对ParsedDocument中的单词进行一些附加操作,如表二所示,主是是去掉没用的符号,转换编码,去掉stopword,取词根等操作。
表二
|
URLTextAnnotator |
URL重写,以方便保存 |
|
NormalizationTransformation |
去掉标点符号 |
|
UTF8CaseNormalizationTransformation |
统一字符编码,转换为UTF8 |
|
StopperTransformation |
去掉如a,an,the,等stopword |
|
StemmerTransformation |
把单词转化成对应的词根 |
Memory Index是要检索的XML文档的汇总,如图二所示。主要包括四部分信息:全局统计信息、单词的信息,元素结点的信息,XML文档的信息。全局统计信息主要包括已统计的XML文档的编号的最小值,目前正在使用的编号值,已统计的文档总数,XML文档集中不重复的单词的个数等;单词的信息包括单词的内容,分配的编号,单词所在的文档,单词在所有的文档的出现的次数,单词在指定的元素结点中的个数等;元素结点的信息主要包括元素结点的名字,元素结点的类型,元素结点的数量,包含该元素结点的XML文档的数量等;XML文档的信息主要包括文档编号,文档长度,文档中不重复的单词的个数,文档的偏移位置等。
1万+

被折叠的 条评论
为什么被折叠?



