中文分词和二元分词综合对比
为了测试中文分词和二元分词的差异,现将初步的测试数据做了对比。关于二元分词可以参考
车东
先生的相关文章。
采用中文分词每 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) |
|
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 出现的次数 |
|
|
<shapetype id="_x0000_t75"><stroke></stroke><formulas><f></f><f></f><f></f><f></f><f></f><f></f><f></f><f></f><f></f><f></f><f></f><f></f></formulas><path></path><lock v:ext="edit" aspectratio="t"><img width="231" hspace="5" height="424" align="baseline" src="http://www.cnblogs.com/images/cnblogs_com/tianchunfeng/15983/o_image001.png" alt=""></lock></shapetype> |