能初始化多个分词实例不,不同实例 启用不同的词库?
190W词条 ComplexSeg :Done, total:32536, split:12544, cost:94 msec
190W词条 ComplexSeg :Done, total:32536, split:12544, cost:41 msec
性能和词库量关系不太大?
英文短语不支持
英文短语添加到lex-main.lex的时候初始化词库出错的
谢谢你的建议。
恩,是的。jcseg目前对于英文的处理,我只是简单的通过空格来切分,暂时没有处理标点什么的,下几个版本会修复这个问题。
至于中文的切分问题,这就和词库有关系了,jcseg的词库是使用网络词库,目前还有不少问题,我正在优化。我使用jcseg测试了很多人名日报的文章,平均准确率有97%。(这也是我优化jcseg词库的方法)。
在lex-main.lex中加入“多线程”和“虚拟机”两个词后:切分效果有所提高:
除非|软件|本身|不能|很好|的|scale-up(e.g.|对|多线程|支持|不好|)|才有|可能|出现|这种|利用|虚拟机|scale-out|性能|更好|的|情况|这个|问题|跟|是否|是|CPU|密集型|应用|无关
英文短语之间有空格,那么jcseg词库会去拆分并且把空格的右边的词转换为整数,这肯定会引发format异常的,如果jcseg支持英文了,肯定会给英文另外添加一个词库分类的: 1.中英混合词库不好维护。 2.中英分词处理肯定不一样。 谢谢你的建议,jcseg的下几个版本会对英文有更好的支持。
初始化词库的时候
String[] aword = line.split(" ");if ( aword.length >= 2 ) {dic.add(t, aword[0], Integer.parseInt(aword[1]), IWord.T_CJK_WORD);} 处理英文短语的时候是不正确的
嗯,确实是可以的,试过了,不过发现有很多字符和中文组合的时候拆分是不准确的,如下:
除非软件本身不能很好的scale-up(e.g.对多线程支持不好)才有可能出现这种利用虚拟机 scale-out性能更好的情况。这个问题跟是否是CPU密集型应用无关。
除非 软件 本身 不能 很好 的 scale-up(e.g. 对 多线程 支持 不好 ) 才有 可能 出现 这种 利用 虚拟 机 scale-out 性能 更好 的 情况 这个 问题 跟 是否 是 CPU 密集型 应用 无关
如果你是觉得词库太多了,浪费内存,可以把不要的词库删除掉,如果是觉得词库太少了,你可以自定义新建词库或者往已有的词库中添加新词。
如果是想分类的使用词库,jcseg对词库进行了分类。请看上一个回复。
如果楼主只是为了启用不同的词库,那jcseg完全可以满足,jcseg对词库进行了分类。
例如:Dictionary类中的查询方法:
@Override public boolean match(int t, String key) { if ( t < 0 || t >= ILexicon.T_LEN ) return false; return dics[t].containsKey(key); }
前面需要指定词库的类别,不同类别的词库是采用不同的Hash存储的,词库类别定义在com.webssky.jcseg.core.ILexicon类中。
例如查看:中英混合词中是否有B超:
dic.match( ILexicon.MIXED_WORD, "B超" );
查看“陈”是否为姓式:
dic.match( ILexicon.CN_LNAME, "陈" );
如果你是觉得词库多了,浪费内存直接删除不要的词库就可以了。如果你是觉得词库太少了,可以自己新建词库,或者往已有的词库添加新词。
楼主可以看看:wikiJcseg 如何给jcseg添加新词库/新词
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(11)
190W词条 ComplexSeg :Done, total:32536, split:12544, cost:94 msec
190W词条 ComplexSeg :Done, total:32536, split:12544, cost:41 msec
性能和词库量关系不太大?
英文短语不支持
英文短语添加到lex-main.lex的时候初始化词库出错的
谢谢你的建议。
恩,是的。jcseg目前对于英文的处理,我只是简单的通过空格来切分,暂时没有处理标点什么的,下几个版本会修复这个问题。
至于中文的切分问题,这就和词库有关系了,jcseg的词库是使用网络词库,目前还有不少问题,我正在优化。我使用jcseg测试了很多人名日报的文章,平均准确率有97%。(这也是我优化jcseg词库的方法)。
在lex-main.lex中加入“多线程”和“虚拟机”两个词后:切分效果有所提高:
除非|软件|本身|不能|很好|的|scale-up(e.g.|对|多线程|支持|不好|)|才有|可能|出现|这种|利用|虚拟机|scale-out|性能|更好|的|情况|这个|问题|跟|是否|是|CPU|密集型|应用|无关
英文短语之间有空格,那么jcseg词库会去拆分并且把空格的右边的词转换为整数,这肯定会引发format异常的,如果jcseg支持英文了,肯定会给英文另外添加一个词库分类的: 1.中英混合词库不好维护。 2.中英分词处理肯定不一样。 谢谢你的建议,jcseg的下几个版本会对英文有更好的支持。
初始化词库的时候
String[] aword = line.split(" ");
if ( aword.length >= 2 ) {
dic.add(t, aword[0], Integer.parseInt(aword[1]), IWord.T_CJK_WORD);
}
处理英文短语的时候是不正确的
初始化词库的时候
String[] aword = line.split(" ");
if ( aword.length >= 2 ) {
dic.add(t, aword[0], Integer.parseInt(aword[1]), IWord.T_CJK_WORD);
}
处理英文短语的时候是不正确的
嗯,确实是可以的,试过了,不过发现有很多字符和中文组合的时候拆分是不准确的,如下:
除非软件本身不能很好的scale-up(e.g.对多线程支持不好)才有可能出现这种利用虚拟机 scale-out性能更好的情况。这个问题跟是否是CPU密集型应用无关。
除非 软件 本身 不能 很好 的 scale-up(e.g. 对 多线程 支持 不好 ) 才有 可能 出现 这种 利用 虚拟 机 scale-out 性能 更好 的 情况 这个 问题 跟 是否 是 CPU 密集型 应用 无关
如果你是觉得词库太多了,浪费内存,可以把不要的词库删除掉,如果是觉得词库太少了,你可以自定义新建词库或者往已有的词库中添加新词。
如果是想分类的使用词库,jcseg对词库进行了分类。请看上一个回复。
如果楼主只是为了启用不同的词库,那jcseg完全可以满足,jcseg对词库进行了分类。
例如:Dictionary类中的查询方法:
@Override
public boolean match(int t, String key) {
if ( t < 0 || t >= ILexicon.T_LEN ) return false;
return dics[t].containsKey(key);
}
前面需要指定词库的类别,不同类别的词库是采用不同的Hash存储的,词库类别定义在com.webssky.jcseg.core.ILexicon类中。
例如查看:中英混合词中是否有B超:
dic.match( ILexicon.MIXED_WORD, "B超" );
查看“陈”是否为姓式:
dic.match( ILexicon.CN_LNAME, "陈" );
如果你是觉得词库多了,浪费内存直接删除不要的词库就可以了。如果你是觉得词库太少了,可以自己新建词库,或者往已有的词库添加新词。
楼主可以看看:wikiJcseg 如何给jcseg添加新词库/新词