The current repo belongs to Paused status, and some functions are restricted. For details, please refer to the description of repo status
461 Star 1.6K Fork 476

GVP狮子的魂 / jcseg
Paused

 / 详情

jcseg 2.5.0版本NLP模式下分词异常

Done
Opened this issue  
2019-12-26 16:46

输入图片说明
小和9月发生位置错位,并且分词后的startposition和endposition的问题

Comments (14)

panry created任务

solr的版本为7.4.0,CDH 6.3.0

jcseg~tokenzier:NLP>> 2019.10.27 小九月
分词结果:
2019-10-27[0,10]/t/datetime.ymd 9月[12,2]/q/datetime.m 小[11,1]/f/null
Done, total:14, tokens:3, in 0.00000sec

jcseg测试程序得到的结果也是非正常的,jcseg-core的问题,我这边看下!

狮子的魂 added
 
NLP
label
狮子的魂 added
 
日期组合
label
狮子的魂 added
 
BUG
label

还有《新闻联播后晚间天气预报》今天2019年12月3日的分词,solr分词直接报异常,无法分词。
输入图片说明
输入图片说明

测试来看可能和日期有关

@panry 搜索别用NLP分词,使用jcseg_most和complex结合。NLP我起初是用于做语义分析的。

jcseg~tokenzier:NLP>> jcseg~tokenzier:NLP>> 今天2019年12月3日的分词
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 7
	at org.lionsoul.jcseg.segmenter.NLPSeg.getNextTimeMergedWord(NLPSeg.java:272)
jcseg~tokenzier:NLP>> 今天是2019年12月3日的分词
分词结果:
今天[0,2]/t/datetime.d 是[2,1]/a/null 2019年 12月 3日[3,12]/t/datetime.ymd 的[13,1]/u/null 分词[14,2]/v/null
Done, total:16, tokens:5, in 0.00000sec

NLP分词里面有很多日期的拆分和组合逻辑,这个逻辑有问题,“今天”直接和date组合,没处理好,我回头看下!

用2.6.0版本的complex也报了一堆错,就改用nlp了。

@panry 2.6.0是目前为gitee的搜索特意改造的版本,现在索引了亿级别的数据了,目前我没发现任何异常,NLP不适合做搜索,效果会很差,有问题可以提交issue把你的出错的文本贴出来。

好的,我试试看其他的模式

充分的利用jcseg的搜索功能可以参考:https://elasticsearch.cn/slides/227#page=1

还有一个是关于同义词的BUG的,在2.4.0版本中发现,不知道后续版本是否解决,就是互为同义词的情况下比如说中文和国语互为同义词,分词的时候国语会出现多次,并且offset不一样导致solr报错。
输入图片说明

该BUG实在complex模式下产生的

这个建议使用 2.6.0,2.5.0之前的版本都有问题。

Gitee的同义词效果:
https://gitee.com/search?utf8=%E2%9C%93&type=&fork_filter=on&q=%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D

https://gitee.com/search?utf8=%E2%9C%93&type=&fork_filter=on&q=%E5%9B%BD%E8%AF%AD%E5%88%86%E8%AF%8D

中文和国语互为同义词,会相互追加同义词条的。

狮子的魂 changed issue state from 待办的 to 进行中

@panry 感谢反馈,刚才给了一个提交,已经修复了,使用最新的master代码即可。

jcseg~tokenzier:NLP>> 2019.10.27 小九月
分词结果:
2019-10-27[0,10]/t/datetime.ymd 小[11,1]/f/null 9月[12,2]/q/datetime.m
Done, total:14, tokens:3, in 0.00210sec
jcseg~tokenzier:NLP>> 今天2019年12月3日
分词结果:
2019年 12月 今天[0,12]/t/datetime.ymd 3日[10,2]/q/datetime.d
Done, total:12, tokens:2, in 0.00210sec

正如你看到的,“今天2019年12月3日”结果会被重组成一个日期,而且语法比较挑选输入的原始内容,不适合检索,NLP的目的是便于进行实体提取,词性分析,语义理解等工作。

狮子的魂 changed issue state from 进行中 to 已完成

Sign in to comment

Status
Assignees
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
参与者(2)
5187 lionsoul 1578914315
Java
1
https://gitee.com/lionsoul/jcseg.git
git@gitee.com:lionsoul/jcseg.git
lionsoul
jcseg
jcseg

Search

102255 3a0e046c 1850385 102255 7aaa926c 1850385