Kuromoji 补全分词过滤器 #
Kuromoji 补全(kuromoji_completion
)分词过滤器用于对日语中的片假名单词进行词干提取,片假名单词常常用于表示外来词或借词。这个过滤器在自动补全或建议查询中特别有用,在这些查询中,对片假名单词的部分匹配可以扩展为包含它们的完整形式。
要使用此分词过滤器,你必须首先在所有节点上安装 analysis-kuromoji
插件,方法是运行 bin/easysearch-plugin install analysis-kuromoji
,然后重新启动集群。
参考样例 #
以下示例请求创建了一个名为 kuromoji_sample
的新索引,并配置了一个带有 Kuromoji 补全过滤器的分词器:
PUT kuromoji_sample
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "kuromoji_tokenizer",
"filter": [
"my_katakana_stemmer"
]
}
},
"filter": {
"my_katakana_stemmer": {
"type": "kuromoji_completion"
}
}
}
}
}
}
产生的词元 #
使用以下请求,通过输入翻译为“使用电脑”的文本,来查看使用该分词器生成的词元。
POST /kuromoji_sample/_analyze
{
"analyzer": "my_analyzer",
"text": "コンピューターを使う"
}
返回内容包含产生的词元
{
"tokens": [
{
"token": "コンピューター", // 原片假名单词“computer”(在日语中用片假名表示的话,比如 コンピューター )。
"start_offset": 0,
"end_offset": 7,
"type": "word",
"position": 0
},
{
"token": "konpyuーtaー", // “コンピューター” 的罗马字拼写(罗马音)版本是 “konpyūtā”。
"start_offset": 0,
"end_offset": 7,
"type": "word",
"position": 0
},
{
"token": "konnpyuーtaー", // “コンピューター” 的另一种可能的罗马字拼写版本可能是 “kompyuuta”。这种差异可能是由于不同的罗马字转写系统
"start_offset": 0,
"end_offset": 7,
"type": "word",
"position": 0
},
{
"token": "を", // 一个日语助词,“wo” 或 “o”
"start_offset": 7,
"end_offset": 8,
"type": "word",
"position": 1
},
{
"token": "wo", // 助词「を」(通常发音为“o”)的罗马字拼写形式。
"start_offset": 7,
"end_offset": 8,
"type": "word",
"position": 1
},
{
"token": "o", // 另一种罗马字转写版本。
"start_offset": 7,
"end_offset": 8,
"type": "word",
"position": 1
},
{
"token": "使う", // 日语中表示 “使用” 的动词
"start_offset": 8,
"end_offset": 10,
"type": "word",
"position": 2
},
{
"token": "tukau", // “使う”(つかう)的罗马字版本是 “tsukau”。
"start_offset": 8,
"end_offset": 10,
"type": "word",
"position": 2
},
{
"token": "tsukau", // “使う”的另一种罗马字转写形式,其中“つ”的写法在语音上更为准确。
"start_offset": 8,
"end_offset": 10,
"type": "word",
"position": 2
}
]
}