kuromoji_tokenizer
编辑kuromoji_tokenizer
编辑
kuromoji_tokenizer
接受以下设置
-
mode
-
分词模式决定了分词器如何处理复合词和未知词。可以设置为
-
normal
-
正常分词,不对复合词进行分解。示例输出
関西国際空港 アブラカダブラ
-
search
-
面向搜索的分词。这包括对长名词进行分解的过程,还包括将完整的复合词作为同义词。示例输出
関西, 関西国際空港, 国際, 空港 アブラカダブラ
-
extended
-
扩展模式输出未知词的单字。示例输出
関西, 関西国際空港, 国際, 空港 ア, ブ, ラ, カ, ダ, ブ, ラ
-
-
discard_punctuation
- 是否应从输出中丢弃标点符号。默认为
true
。 -
user_dictionary
-
Kuromoji 分词器默认使用 MeCab-IPADIC 词典。可以将
user_dictionary
附加到默认词典。词典应采用以下 CSV 格式<text>,<token 1> ... <token n>,<reading 1> ... <reading n>,<part-of-speech tag>
作为如何使用用户词典的演示,将以下词典保存到 $ES_HOME/config/userdict_ja.txt
東京スカイツリー,東京 スカイツリー,トウキョウ スカイツリー,カスタム名詞
您也可以使用 user_dictionary_rules
选项直接在分词器定义中内联规则
PUT kuromoji_sample { "settings": { "index": { "analysis": { "tokenizer": { "kuromoji_user_dict": { "type": "kuromoji_tokenizer", "mode": "extended", "user_dictionary_rules": ["東京スカイツリー,東京 スカイツリー,トウキョウ スカイツリー,カスタム名詞"] } }, "analyzer": { "my_analyzer": { "type": "custom", "tokenizer": "kuromoji_user_dict" } } } } } }
-
nbest_cost
/nbest_examples
-
可以使用额外的专家用户参数
nbest_cost
和nbest_examples
来包含根据统计模型最有可能出现的其他词。如果同时使用这两个参数,则应用两者中的较大值。-
nbest_cost
nbest_cost
参数指定了额外的 Viterbi 成本。KuromojiTokenizer 将包含 Viterbi 路径中所有与最佳路径的 nbest_cost 值相差无几的词。-
nbest_examples
nbest_examples
可用于根据示例查找nbest_cost
值。例如,值 /箱根山-箱根/成田空港-成田/ 表示在文本中,箱根山和成田空港,我们希望成本能够给出箱根和成田。
-
然后创建如下分析器
PUT kuromoji_sample { "settings": { "index": { "analysis": { "tokenizer": { "kuromoji_user_dict": { "type": "kuromoji_tokenizer", "mode": "extended", "discard_punctuation": "false", "user_dictionary": "userdict_ja.txt" } }, "analyzer": { "my_analyzer": { "type": "custom", "tokenizer": "kuromoji_user_dict" } } } } } } GET kuromoji_sample/_analyze { "analyzer": "my_analyzer", "text": "東京スカイツリー" }
以上 analyze
请求返回以下内容
{ "tokens" : [ { "token" : "東京", "start_offset" : 0, "end_offset" : 2, "type" : "word", "position" : 0 }, { "token" : "スカイツリー", "start_offset" : 2, "end_offset" : 8, "type" : "word", "position" : 1 } ] }
-
discard_compound_token
-
在
search
模式下,是否应从输出中丢弃原始复合词。默认为false
。在search
或extended
模式下,并将此选项设置为true
时的示例输出関西, 国際, 空港
如果文本包含全角字符,则 kuromoji_tokenizer
分词器可能会生成意外的词。为避免这种情况,请将 icu_normalizer
字符过滤器 添加到您的分析器。请参阅 规范化全角字符。