一. 题目如下
1、在小文档集合(199801.txt)中建立一个索引文件:每一行是一条term,每个term后面跟着一个索引记录表,包括:文档频率、文档序号(对文档序号进行排序);整个索引对term进行排序。
考虑:Term如何定义?
2、基于上述小文档集(199801.txt) ,建立一个位置索引文件。
199801.txt文档集截图:
索引文件结果效果如下图:
索引文件表结构:
词 出现次数 包含该词的段落个数 段落x… 段落x…中出现词次数
比如图中:”一代” 出现28次 包含该词的段落有21个,其中第3段出现一次,第108段出现两次
二. 实现目标
1. 分段编号,分词
2. 构建索引的数据结构
3. 构建索引
三. 实现步骤
1.段落编号,仔细观察,文档已经给我们分好段了
2.分词,不多解释了,有疑问,请看第一篇自然语言处理基于java实现(1) 之 中文分词
3.索引数据结构
1)词条,何为词条?
如上图中”一代”,那一行数据就为一条词条
词条数据结构如下
/**
*词条
*/
public class Term implements Comparable<Term>{
//单词
private String word;
//包含该单词的文档个数
private int ndoc;
//单词出现的次数
private int freq;
//单词对应的文档的次数
// 文档id 单词次数
private Map<Integer,Integer> map =