把CRF模块移植至Windows下,并修改成Unicode模式
1.修改成Windows下不难,而且所幸nlpbamboo所用linux特有函数不多,
例如mmap
本想共享,不过nlpbamboo的那位大大一直联系不上,罢了。
2.unicode
linux下用的是utf-8处理汉字,windows下非unicode是用gb2312
折腾了一会,训练词典不成功,后来发现是double array的问题
1.我自己写的double array,base值都是-1,而darts的确是节点值-1
-value_[siblings[i].left]-1
所以每次分词时都会查询诸如"U00:A/B"的值,如查询全为-1,那么就完全退化为2-gram,二元切分
2.unicode训练double array 会占用更大的内存
结果大约多了20M(107M)
crf的速度确实是比较慢,无论训练和分词
分词的速度<200k/s
切了几个词
"长春市长春药店"和"长春市长春节致辞"都切得可以
不过"烟酒店"就不对了
input sentence
华南理工大学在五山路
华南理工大学 在 五山路
clearinput sentence
长春市长春药店
长春市 长春 药店
clearinput sentence
长春市长春节致辞
长春 市长 春节 致辞
clearinput sentence
乒乓球拍卖完了
乒乓球 拍卖 完 了
clearinput sentence
研究生会采取行动
研究生 会 采取 行动
clearinput sentence
烟酒店
烟 酒店