采用的用户的自定义分词,每个分词走自己的自定义词典。
在首次加载和二次加载 分词器给出的词性不一致。 对于英文字符会出现这样的错误。
分词文本
第一次分词结果
{
"tokens": [
{
"token": "xx",
"start_offset": 0,
"end_offset": 2,
"type": "en",
"position": 0
},
{
"token": ",",
"start_offset": 2,
"end_offset": 3,
"type": "w",
"position": 1
},
{
"token": "dasdasdasd",
"start_offset": 3,
"end_offset": 13,
"type": "en",
"position": 2
},
{
"token": ",",
"start_offset": 13,
"end_offset": 14,
"type": "w",
"position": 3
},
{
"token": "小米",
"start_offset": 14,
"end_offset": 16,
"type": "userDefine",
"position": 4
},
{
"token": ",",
"start_offset": 16,
"end_offset": 17,
"type": "w",
"position": 5
},
{
"token": "ofo",
"start_offset": 17,
"end_offset": 20,
"type": "userDefine",
"position": 6
},
{
"token": ",",
"start_offset": 20,
"end_offset": 21,
"type": "w",
"position": 7
},
{
"token": "企查ofj",
"start_offset": 21,
"end_offset": 26,
"type": "userDefine",
"position": 8
}
]
}
第二次分词结果
{
"tokens": [
{
"token": "xx",
"start_offset": 0,
"end_offset": 2,
"type": "userDefine",
"position": 0
},
{
"token": ",",
"start_offset": 2,
"end_offset": 3,
"type": "w",
"position": 1
},
{
"token": "dasdasdasd",
"start_offset": 3,
"end_offset": 13,
"type": "userDefine",
"position": 2
},
{
"token": ",",
"start_offset": 13,
"end_offset": 14,
"type": "w",
"position": 3
},
{
"token": "小米",
"start_offset": 14,
"end_offset": 16,
"type": "userDefine",
"position": 4
},
{
"token": ",",
"start_offset": 16,
"end_offset": 17,
"type": "w",
"position": 5
},
{
"token": "ofo",
"start_offset": 17,
"end_offset": 20,
"type": "userDefine",
"position": 6
},
{
"token": ",",
"start_offset": 20,
"end_offset": 21,
"type": "w",
"position": 7
},
{
"token": "企查ofj",
"start_offset": 21,
"end_offset": 26,
"type": "userDefine",
"position": 8
}
]
}
直接将英文的词性en 改变为了用户自定义了。 默认词典没有指定词性和词频,不知道ansj 分词针对这种情况是否做了特殊处理,有没有什么懒加载模式,直接改变了原有的词性。
在首次加载和二次加载 分词器给出的词性不一致。 对于英文字符会出现这样的错误。
分词文本
第一次分词结果
{
"tokens": [
{
"token": "xx",
"start_offset": 0,
"end_offset": 2,
"type": "en",
"position": 0
},
{
"token": ",",
"start_offset": 2,
"end_offset": 3,
"type": "w",
"position": 1
},
{
"token": "dasdasdasd",
"start_offset": 3,
"end_offset": 13,
"type": "en",
"position": 2
},
{
"token": ",",
"start_offset": 13,
"end_offset": 14,
"type": "w",
"position": 3
},
{
"token": "小米",
"start_offset": 14,
"end_offset": 16,
"type": "userDefine",
"position": 4
},
{
"token": ",",
"start_offset": 16,
"end_offset": 17,
"type": "w",
"position": 5
},
{
"token": "ofo",
"start_offset": 17,
"end_offset": 20,
"type": "userDefine",
"position": 6
},
{
"token": ",",
"start_offset": 20,
"end_offset": 21,
"type": "w",
"position": 7
},
{
"token": "企查ofj",
"start_offset": 21,
"end_offset": 26,
"type": "userDefine",
"position": 8
}
]
}
第二次分词结果
{
"tokens": [
{
"token": "xx",
"start_offset": 0,
"end_offset": 2,
"type": "userDefine",
"position": 0
},
{
"token": ",",
"start_offset": 2,
"end_offset": 3,
"type": "w",
"position": 1
},
{
"token": "dasdasdasd",
"start_offset": 3,
"end_offset": 13,
"type": "userDefine",
"position": 2
},
{
"token": ",",
"start_offset": 13,
"end_offset": 14,
"type": "w",
"position": 3
},
{
"token": "小米",
"start_offset": 14,
"end_offset": 16,
"type": "userDefine",
"position": 4
},
{
"token": ",",
"start_offset": 16,
"end_offset": 17,
"type": "w",
"position": 5
},
{
"token": "ofo",
"start_offset": 17,
"end_offset": 20,
"type": "userDefine",
"position": 6
},
{
"token": ",",
"start_offset": 20,
"end_offset": 21,
"type": "w",
"position": 7
},
{
"token": "企查ofj",
"start_offset": 21,
"end_offset": 26,
"type": "userDefine",
"position": 8
}
]
}
直接将英文的词性en 改变为了用户自定义了。 默认词典没有指定词性和词频,不知道ansj 分词针对这种情况是否做了特殊处理,有没有什么懒加载模式,直接改变了原有的词性。
2 个回复
rochy - rochy_he
赞同来自:
请参考下面两处的源码:
https://github.com/NLPchina/an ... 23L27
https://github.com/NLPchina/an ... 23L87
PythonLee - 90后IT男
赞同来自: