Kuromoji 补全分词过滤器

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
    }
  ]
}