sphinx中文分词mmseg的一个bug
来源:互联网 发布:南宁鸡村网络 编辑:程序博客网 时间:2024/05/16 05:38
mmthunk.h文件里class ChunkQueue的getToken方法在应用分词规则3的时候有一个 bug,问题代码如下:
//apply rule 3
u4 remains_r3[256];
u4* k_ptr_r3 = remains_r3;
avg_length = 1024*64; //an unreachable avg
for(size_t i = 0; i<k_ptr-remains; i++){
float avg = m_chunks[remains[i]].get_avg();
if(avg < avg_length) {
avg_length = avg;
k_ptr_r3 = remains_r3;
*k_ptr_r3 = (u4)i;
k_ptr_r3++;
}else
if(avg == avg_length){
*k_ptr_r3 = (u4)i;
k_ptr_r3++;
}
}
其中的红色代码部分是有问题的,引用的下标不正确,会导致分词结果错误,改成如下即可:
//apply rule 3
u4 remains_r3[256];
u4* k_ptr_r3 = remains_r3;
avg_length = 1024*64; //an unreachable avg
for(size_t i = 0; i<k_ptr-remains; i++){
float avg = m_chunks[remains[i]].get_avg();
if(avg < avg_length) {
avg_length = avg;
k_ptr_r3 = remains_r3;
*k_ptr_r3 = (u4)remains[i];
k_ptr_r3++;
}else
if(avg == avg_length){
*k_ptr_r3 = (u4)remains[i];
k_ptr_r3++;
}
}
假设有一个中文词典里有以下5个词语,可以测试出上面的bug:
酒店
管理
软件
酒店管理
管理软件
bug代码分出的词语为:
酒/x
店/x
管理软件/x
修改后的代码分出的词语为:
酒店/x
管理软件/x
- sphinx中文分词mmseg的一个bug
- sphinx mmseg mysql 中文分词
- linux 下sphinx的中文分词包mmseg安装
- Mysql+sphinx+mmseg中文分词(ubuntu)
- Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词
- Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词
- Sphinx中文分词Coreseek+Mmseg安装配置和示例
- coreseek sphinx+mmseg 斯分克斯 + 中文分词安装
- mmseg中文分词软件包
- MMSEG 中文分词算法
- MMSeg中文分词算法
- MMSEG中文分词算法
- MMSeg中文分词算法
- MMSeg中文分词算法
- MMSEG 中文分词算法
- mmseg 中文分词
- 在Linux下安装Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词
- 高性能搜索引擎sphinx源码解析之中文分词和mmseg
- CSS学习文档、CSS背景图片的定位background-position的问题
- 3列布局左右自适应中间固定
- 婚姻是实力的较量。 恋爱是双方的博弈。
- 100109 阶段总结
- singleton C++ 的多种实现
- sphinx中文分词mmseg的一个bug
- ...
- VML初始教程
- 数据挖掘中易犯的10个错误
- Skype - 更新 - 4.0.4.121
- 什么是MTU
- 大学生活小结--大二上
- 委托示例代码(1)
- jquery里iframe自适应高度