自然语言处理基于java实现(3) 之 信息检索

本文档详细介绍了如何使用Java实现信息检索,包括在小文档集合199801.txt中创建索引文件,以及构建位置索引文件的过程。内容涵盖了分段编号、分词、索引数据结构的设计与实现。
摘要由CSDN通过智能技术生成

一. 题目如下
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 = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值