中文分词和二元分词综合对比

2019-02-14 10:39:16 浏览数 (1)

中文分词和二元分词综合对比

    为了测试中文分词和二元分词的差异,现将初步的测试数据做了对比。关于二元分词可以参考车东先生的相关文章。

采用中文分词每1M产生1.55M的索引文件,膨胀率1.55;每1M用时大约10秒;采用二元分词每1M产生2.21M的索引文件,膨胀率2.21;每1M用时大约7秒;

从搜索结果来看,两者可以大致相同数量的搜索结果(显示结果根据相关度排列顺序不同)。

对文本进行中文分词的目的是要提高文档检索的相关性,由于相关性的算法(如下图)涉及到很多因素,所以对二元切分和中文分词切分显示结果到底谁更相关(人理解的意义相关?),还无法得出结论。

相关度算法:

score(q,d) =

Σ

tf(t in d) * idf(t) * getBoost(t.field in d) * lengthNorm(t.field in d)

* coord(q,d) * queryNorm(q)

t in q

但有一点可以肯定,采用中文分词多花的解析中文时间可以带来丰厚的回报:索引文件和Term数量的大大减少。

可参考本文最后表格的图片对比。图中的数据是出现频率第100至120个Term情况,二元分词产生了大量的没有意义的Term。

数据源大小(M)

索引大小

膨胀率

Term个数

每兆Term个数

所用时间(秒)

秒/M

中文

14.20

22.50

1.584

76473.00

5385.42

105

7.394

二元

14.20

31.50

2.218

384488.00

27076.62

87

6.126

中文

4.73

7.54

1.594

84895.00

17948.20

50

10.570

二元

4.73

11.00

2.325

238064.00

50330.66

35

7.399

中文分词

二元分词

索引源大小

14.2M

14.2M

索引源内容

论坛某天全部发言

论坛某天全部发言

建立索引用时

105秒

87秒

索引文件大小

22.5M

31.5M

生成的Term数

76473

384488   (5.02倍)

文档数

6802

6802

搜索:XX

236 (搜索结果(条))

235(搜索结果(条))

XX

361

361

XX

769

768

XX

50

50

XX

41

41

XX

3

3

XX

0

0

最常出现的词:

Rank = 查询Text出现的次数

作者:lhelper 我要去桂林

0 人点赞