分词的资料不太好找,只有KaiFu Lee在MSRA带着Guo姓小弟做的一些列paper和中科院I3S组的分词程序。
关键字提取是无先验信息的,篇幅也很短效,但是功能还是满意了。基本流程是聚类后,算条件概率,思想来自中华民国某大学的Paper。
起初的实现的模型,大概在1000汉字每秒的处理能力;
折腾了一天,提升到12000汉子每秒。
主要改进如下
1. Using Dictionary Types:
Python的字典类型是基于Hash的,即使更换为C Plusplus的map性能也不可能有太大的提高,我也懒得自己在写个专用的HashDictionary;
2. Beware about encode/decode
这个东东profile了很久才发现,
前阵子听说SICP要改成用python教授我还挺不屑的,用它写了点东西后发现好像不是这么一回事:譬如信号处理的Stream模型在python还是被支持的很完善的。
btw,
今天我负责修改的新类别搜索遭遇性能瓶颈,下班前一直在跟;
期间更换了更强健的哈希算法、设置了更大的桶规模,使时延下降了5%,但是仍然不可接受。
最后跟进到数据上,发现应该被致零的保留16bit字段,呈现出随机分布的非零值,直接导致类别数量远超过设计规模;
查到推送端,发现有一个int64未被初始化,想必该是这个原因了,明天去公司就见分晓;
这个故事告诉我们说,栈里面的垃圾数据,也是很好的随机数生成器。

