スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - | - | - |

elasticsearch-analysis-kuromojiでユーザ辞書の利用方法

なんか、とても久しぶりにイベント参加メモ以外の投稿です。
elastic searchのMLを見てたら、KuromojiのAnalyzerを使うときにユーザ辞書使うのどうするの?という投稿を見かけました。

Kuromojiのユーザ辞書にもちょうど興味があったり、elasticsearchもちょっとずつ触りたかったのでちょっと試してみました。(返信もしてみましたが、テキトーな英語です。。。)

elasticsearch-kuromoji-pluginのインストールなどはElasticSearch で kuromoji を使う (ES 0.90.Beta1 + kuromoji 1.2.0篇)
を参考にしてください。
私もこちらに記述のある組み合わせ(elasticsearch-0.90.0Beta1 + elasticsearch-analysis-kuromoji/1.2.0)を利用しました。
KuromojiのAnalyzerはデフォルトで「kuromoji」として登録済みですが、こちらはユーザ辞書の指定がありません。
ということで、「kuromoji_user_dict」というユーザ辞書指定をしたtokenizerと、それと使う「my_analyzer」というanalyzerを登録したIndexを作成します。
定義する前に、「userdict_ja.txt」を用意して、elasticsearch-0.90.0Beta1/config/ディレクトリに配置しておきます。
(以下のサンプルでは、SOLE_HOME/example/solr/collection1/conf/lang/userdict_ja.txtをコピーして使いました)
$ curl -XPUT 'http://localhost:9200/kuromoji_sample/' -d'
{
    "index":{
        "analysis":{
            "tokenizer" : {
                "kuromoji_user_dict" : {
                   "type":"kuromoji_tokenizer",
                   "user_dictionary":"userdict_ja.txt"
                }
            },
            "analyzer" : {
                "my_analyzer" : {
                    "type" : "custom",
                    "tokenizer" : "kuromoji_user_dict"
                }
            }
            
        }
    }
}
'
「user_dictionary」というのがユーザ辞書の定義ファイルになります。
注意点としては、6行目で指定した名前「kuromoji_user_dict」を14行目の「tokenizer」に指定しないとちゃんと動かないという点でしょうか。

上記で指定したAnalyzerを利用して「朝青龍」という単語をを解析してみます。
$ curl -XGET 'http://localhost:9200/kuromoji_sample/_analyze?analyzer=my_analyzer&pretty' -d '朝青龍'
{
 "tokens" : [ {
   "token" : "朝青龍",
   "start_offset" : 0,
   "end_offset" : 3,
   "type" : "word",
   "position" : 1
 } ]
「朝青龍」という単語がユーザ辞書に登録されているので、1単語として出力されます。
ちなみに、デフォルトの「kuromoji」のanalyzerを指定すると以下の様な出力です。
$ curl -XGET 'http://localhost:9200/kuromoji_sample/_analyze?analyzer=kuromoji&pretty' -d '朝青龍'
{
 "tokens" : [ {
   "token" : "朝",
   "start_offset" : 0,
   "end_offset" : 1,
   "type" : "word",
   "position" : 1
 }, {
   "token" : "青龍",
   "start_offset" : 1,
   "end_offset" : 3,
   "type" : "word",
   "position" : 2
 } ]
とまぁ、こんなかんじです。
ユーザ辞書を書き換えたあとは「close/open」しないと読み込めないのかなぁ?そのへんはまたあとで調べようかな。

ちなみ、以下のページを参考にさせてもらいました。
elasticsearch kuromoji plugin - natural days
ElasticSearch で kuromoji を使う (ES 0.90.Beta1 + kuromoji 1.2.0篇)
johtani | elasticsearch | 16:43 | comments(0) | trackbacks(0) | - | - |
1/1PAGES | |

11
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
PR
RECOMMEND
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus) (JUGEMレビュー »)
大谷 純,阿部 慎一朗,大須賀 稔,北野 太郎,鈴木 教嗣,平賀 一昭
Solr 4系に対応した改訂版を出しました!興味ある方はぜひ。
RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
RECOMMEND
RECENT COMMENT
  • ポモドーロ回してます。(ポモドーロテクニック入門読みました)
    おーたに (05/07)
  • Lucene 4.3.0のChangesにあるChanges in backwards compatibility policyが気になったので訳してみた。
    おーたに (04/26)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/04)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    m_nori (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    ho4kawa (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    まろか (09/03)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    おーたに (08/07)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    moco (08/07)
RECENT TRACKBACK
MOBILE
qrcode
OTHERS