倒排序索引实验

倒排序索引实验,无意义,无价值,纯粹为了理清思路

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=|PLtj|:词项tj所涉及文档的个数

DFtj=sj/N:词项tj的文档频率

IDFtj=-logDFtj):倒置文档频率;其值越小表示出现的频率越高

fi,j:第j个词项tj在第i个文档di中出现的次数

TN= fi,j:系统所有文档分解后包含词项的总量(包括重复,即一个多重集(multi-set))

TFtj= fij/TN:词项tj在文档中出现的频度(词频)

ITFtj=logTFtj):倒置词频;越小表示出现的频率越高



继续把这些东西都计算出来.
数学其实没有想象中难,也没有想象中的简单 -_-!!
posted @ 2007-08-04 00:12  T.t.T!Ck.¢#  阅读(1688)  评论(0编辑  收藏  举报