倒排序索引实验
倒排序索引实验,无意义,无价值,纯粹为了理清思路
ReverseOrderIndex.rar 测试代码下载
class Word 为主要被索引的词,
其中
public IList<string> FileList; 该词所在的文件列表
public IList<TF> Degree; 该词在对应的文件中出现的次数以及位置索引
public IList<int> Position;该词在文件中出现的位置
public IList<int> Number; 该词在对应的文件中出现的次数
整个流程思路:
1.对测试用的文本文件进行分词,(分词可使用网上免费的分词组件,修改class Segment即可)
2.统计词频,
3.将词相关信息加入到索引中(通过文件保存Dictionary中的数据)。
为简单起见全部使用Dictionary 实现,鄙视自己一下 -_-!!
4.通过文件保存Dictionary中的数据。作为持久化索引
5.读出被保存的索引,放到Dictionary中
6.之后变得简单了。。。
引用一下:Lucene 2.1研究:倒排序基本常识
下面是信息检索研究中常用的几个相关量:
继续把这些东西都计算出来.
数学其实没有想象中难,也没有想象中的简单 -_-!!
ReverseOrderIndex.rar 测试代码下载
class Word 为主要被索引的词,
其中
public IList<string> FileList; 该词所在的文件列表
public IList<TF> Degree; 该词在对应的文件中出现的次数以及位置索引
public IList<int> Position;该词在文件中出现的位置
public IList<int> Number; 该词在对应的文件中出现的次数
整个流程思路:
1.对测试用的文本文件进行分词,(分词可使用网上免费的分词组件,修改class Segment即可)
2.统计词频,
3.将词相关信息加入到索引中(通过文件保存Dictionary中的数据)。
为简单起见全部使用Dictionary 实现,鄙视自己一下 -_-!!
4.通过文件保存Dictionary中的数据。作为持久化索引
5.读出被保存的索引,放到Dictionary中
6.之后变得简单了。。。
引用一下:Lucene 2.1研究:倒排序基本常识
下面是信息检索研究中常用的几个相关量:
N:文档集合的大小
M:词项集合的大小
Sj=|PL(tj)|:词项tj所涉及文档的个数
DF(tj)=sj/N:词项tj的文档频率
IDF(tj)=-logDF(tj):倒置文档频率;其值越小表示出现的频率越高
fi,j:第j个词项tj在第i个文档di中出现的次数
TN= fi,j:系统所有文档分解后包含词项的总量(包括重复,即一个多重集(multi-set))
TF(tj)=( fi,j)/TN:词项tj在文档中出现的频度(词频)
ITF(tj)=logTF(tj):倒置词频;越小表示出现的频率越高
继续把这些东西都计算出来.
数学其实没有想象中难,也没有想象中的简单 -_-!!