gpt4 book ai didi

elasticsearch - Elasticsearch 字符组中包含哪些字符(空格、字母、数字、标点符号、符号)?

转载 作者:行者123 更新时间:2023-12-02 22:10:52 30 4
gpt4 key购买 nike

我正在尝试使用字符组标记器构建基于空格和标点符号的标记器。我发现至少有 5 predefined character groups :whitespace , letter , digit , punctuation , symbol .

所以,我尝试了以下标记器:

tokenizer": {
"my_tokenizer": {
"type": "char_group",
"tokenize_on_chars":["whitespace", "punctuation"]
}
}

然后,我意识到 @符号包含在 punctuation 中我需要作为文本一部分的字符组(例如捕获 Twitter 屏幕名称)。我不知道为什么 @被认为是标点符号,但我的猜测是它可以在电子邮件地址中看到?例如 email@example.com .

无论如何,我自己结束了添加它们:
tokenizer": {
"my_tokenizer": {
"type": "char_group",
"tokenize_on_chars":["whitespace", "\n", ".", ",", ";", ":", "\"", "`", "]", "[", ")", "(", "!", "?", "/", "\\", "–"]
}
},


然而,该列表看起来相当随意且不是很优雅。 我在哪里可以找到 Elasticsearch 中不同字符组的定义 ? (或者,是否有更优雅的方式根据 standard 英语和德语标点符号列表来分隔标记?)。

最佳答案

您可以查看此源代码:

https://github.com/elastic/elasticsearch/blob/237650e9c054149fd08213b38a81a3666c1868e5/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CharMatcher.java
java.lang.Character类负责定义常量,例如:

Character.MODIFIER_SYMBOL : ` ^
Character.DASH_PUNCTUATION : -
Character.MATH_SYMBOL : = ~ + | < >
Character.OTHER_PUNCTUATION : !@#%&*;':",./?
Character.START_PUNCTUATION : ( [ {
Character.END_PUNCTUATION : ) ] }

关于elasticsearch - Elasticsearch 字符组中包含哪些字符(空格、字母、数字、标点符号、符号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59442984/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com