分词的自定义词库支持多实例不?

发布于 2021-11-18 06:07:49 字数 25 浏览 924 评论 11

能初始化多个分词实例不,不同实例 启用不同的词库?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

辞别 2021-11-20 00:23:46

190W词条 ComplexSeg :Done, total:32536, split:12544, cost:94 msec

190W词条 ComplexSeg :Done, total:32536, split:12544, cost:41 msec

性能和词库量关系不太大?

囚你心 2021-11-20 00:23:46

英文短语不支持

飘过的浮云 2021-11-20 00:23:44

英文短语添加到lex-main.lex的时候初始化词库出错的

不再见 2021-11-20 00:23:44

谢谢你的建议。

恩,是的。jcseg目前对于英文的处理,我只是简单的通过空格来切分,暂时没有处理标点什么的,下几个版本会修复这个问题。

至于中文的切分问题,这就和词库有关系了,jcseg的词库是使用网络词库,目前还有不少问题,我正在优化。我使用jcseg测试了很多人名日报的文章,平均准确率有97%。(这也是我优化jcseg词库的方法)。

奢望 2021-11-20 00:23:44

在lex-main.lex中加入“多线程”和“虚拟机”两个词后:切分效果有所提高:

除非|软件|本身|不能|很好|的|scale-up(e.g.|对|多线程|支持|不好|)|才有|可能|出现|这种|利用|虚拟机|scale-out|性能|更好|的|情况|这个|问题|跟|是否|是|CPU|密集型|应用|无关

想挽留 2021-11-20 00:23:26

英文短语之间有空格,那么jcseg词库会去拆分并且把空格的右边的词转换为整数,这肯定会引发format异常的,如果jcseg支持英文了,肯定会给英文另外添加一个词库分类的: 1.中英混合词库不好维护。 2.中英分词处理肯定不一样。 谢谢你的建议,jcseg的下几个版本会对英文有更好的支持。

想挽留 2021-11-20 00:22:45

初始化词库的时候

String[] aword = line.split(" ");
if ( aword.length >= 2 ) {
dic.add(t, aword[0], Integer.parseInt(aword[1]), IWord.T_CJK_WORD);

处理英文短语的时候是不正确的

蓝颜夕 2021-11-20 00:20:00

初始化词库的时候

String[] aword = line.split(" ");
if ( aword.length >= 2 ) {
dic.add(t, aword[0], Integer.parseInt(aword[1]), IWord.T_CJK_WORD);

处理英文短语的时候是不正确的

贱贱哒 2021-11-19 23:44:24

嗯,确实是可以的,试过了,不过发现有很多字符和中文组合的时候拆分是不准确的,如下:

除非软件本身不能很好的scale-up(e.g.对多线程支持不好)才有可能出现这种利用虚拟机 scale-out性能更好的情况。这个问题跟是否是CPU密集型应用无关。

除非        软件        本身        不能        很好        的        scale-up(e.g.        对        多线程        支持        不好        )        才有        可能        出现        这种        利用        虚拟        机        scale-out        性能        更好        的        情况        这个        问题        跟        是否        是        CPU        密集型        应用        无关 

归属感 2021-11-19 04:27:10

如果你是觉得词库太多了,浪费内存,可以把不要的词库删除掉,如果是觉得词库太少了,你可以自定义新建词库或者往已有的词库中添加新词

如果是想分类的使用词库,jcseg对词库进行了分类。请看上一个回复。

平生欢 2021-11-18 21:34:44

如果楼主只是为了启用不同的词库,那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添加新词库/新词

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文