Sudachiと私
はじめまして。自然言語処理エンジニアのまっちゃんです。秋も深まりサンマの美味しい季節になりました。サンマといえば塩焼き。塩焼きといえば美味しいお醤油。あと私はすだちが欠かせません。今日はそのすだちの産地、徳島にあるワークスアプリケーションズの研究所で開発している形態素解析器Sudachiの使い方をご紹介します。
Sudachiは、語句を適切な長さで抽出することができることが特徴です。解析速度はkuromojiに匹敵し、neologd譲りの豊富な語彙を備えた辞書に加えて、neologdが抱える語句の過剰な纏め上げや広すぎる固有名詞解釈などの問題の解消を目指しているようです。こちらに取り組みの解説資料があります。
https://www.slideshare.net/WorksApplications/ss-78025845
更新:正式に公開されて解説も揃ってきましたね。@soramiさんのこちらの解説はとてもわかり易いです。
Elasticsearchのための新しい形態素解析器 「Sudachi」
コンパイル済みのアーカイブも公開されるようになりました。
https://oss.sonatype.org/content/repositories/snapshots/com/worksap/nlp/
ということで、下記は既に役に立たない情報です。何かのトラブルシューティングの助けになれば。
今のところは開発者向けにgithubでソースを公開している段階ですので、Elasticsearchで使用するためには一手間必要です。きっとそのうちyum等で楽々インストールできるようになると期待しています。
@Deprecated おおまかな手順
Elasticsearchで必要なのはanalysis_sudachiというpluginです。
このpluginを作るためにまずSudachi本体をビルドする必要があります。
analysis_sudachiはclone先ディレクトリ(以下ではSudachi/)配下のelasticsearchでビルドします。
- githubからLFSを有効にしてclone https://github.com/WorksApplications/Sudachi
- Sudachi/pom.xml に対して mvn package を実行
- Sudachi/target/sudachi-0.1-SNAPSHOT-executable.zip 等が作成されていれば成功
- Sudachi/elasticsearch/pom.xmlを編集
- surefire plugin削除
- worksのartifact削除
- elasticsearch系のartifactのversionを適宜変更
- Sudachi/elasticsearch/src/main/extras/plugin-descriptor.propertiesを編集
- 3と同様にelasticsearchのversionを適宜変更
- Sudachi/src/main/java/をSudachi/elasticsearch/src/main/java/にコピー
- worksのartifactがないのでこのステップが必要です
- Sudachi/elasticsearch/src/test/を削除
- testがうまく通らないようですが問題ないはず
- Sudachi/elasticsearch/pom.xml に対して mvn package を実行
- Sudachi/elasticsearch/target/releases/analysis-sudachi-1.0.0-SNAPSHOT.zip をElasticsearchサーバに転送
- Elasticsearchサーバで次を実行してpluginをインストール
- sudo elasticsearch-plugin install file:///your_path/analysis-sudachi-1.0.0-SNAPSHOT.zip
- インストールに成功すると analysis_sudachi というanalyzerを使用できるようになります
以上、今日のところはざっくりした流れだけご紹介しました。また次回、詳細に説明していきます。