研究でSudachiを使うことになり, Ubuntuにインストールすることになったのでその時のメモ書きです。
環境
OS : Ubuntu 16.04.4 LTS
日時 : 2018/05/29
手順
1. java1.8系のインストールと切り替え
java のバージョンを確認
$ java -version
1.7系なら1.8系をインストール後, 以下のコマンドでバージョン切り替え
$ sudo update-alternatives --config java
※1.8系にしてなかった場合
後述のmvn package
の実行時に以下のような文章を含むエラーがでました。
無効なターゲットリリース:1.8 - > [ヘルプ1]
2. git lfsのインストール
git lfsはGitで大きいサイズのファイルのversion管理を行うための仕組み
公式のDebianの部分を実行していく
sudoなどは適宜つける
$ echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/wheezy-backports-main.list
$curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
$ sudo apt-get install git-lfs
$ git lfs install
3. Mavenのインストール
java用のプロジェクト管理ツールらしい
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get maven
4. Sudachiのクローンとビルド
$ git clone https://github.com/WorksApplications/Sudachi.git
$ cd Sudachi/
$ mvn package
5. Sudachiの実行
※今後のjarファイルやjsonファイルへのパスは自分のカレントディレクトリからのpathに読み替えてください
この資料の作業時のディレクトリはSudachi/target
target/
にあるsudachi-0.1.1-SNAPSHOT.jar
を実行
しかしエラー
$java -jar sudachi-0.1.1-SNAPSHOT.jar
Exception in thread "main" java.io.FileNotFoundException: system_core.dic (そのようなファイルやディレクトリはありません)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.worksap.nlp.sudachi.JapaneseDictionary.readSystemDictionary(JapaneseDictionary.java:106)
at com.worksap.nlp.sudachi.JapaneseDictionary.<init>(JapaneseDictionary.java:71)
at com.worksap.nlp.sudachi.JapaneseDictionary.<init>(JapaneseDictionary.java:56)
at com.worksap.nlp.sudachi.DictionaryFactory.create(DictionaryFactory.java:44)
at com.worksap.nlp.sudachi.SudachiCommandLine.main(SudachiCommandLine.java:135)
system_core.dic
、つまりDictionaryファイルがないと言われいるので以下を解凍
(fullも使いたいなら解凍しておいたほうがいいかも)
$unzip target/sudachi-0.1.1-SNAPSHOT-dictionary-core.zip(.tar.bz)
これで実行可能に
-m C
のオプションでSudachiの特徴でもある固有表現の抽出も可能に
$ java -jar sudachi-0.1.1-SNAPSHOT.jar -m C
機能性食品
機能性食品 名詞,普通名詞,一般,*,*,* 機能性食品
EOS
さっぽろテレビ塔
さっぽろ 名詞,固有名詞,地名,一般,*,* さっぽろ
テレビ塔 名詞,普通名詞,一般,*,*,* テレビ塔
EOS
6. フル辞書の選択
上記のようにコア辞書の使用ではさっぽろテレビ塔
のような語を固有表現としてとれません.
このような語を固有表現として抽出するためには以下のようにフル辞書を指定する必要があります.
java -jar sudachi-0.1.1-SNAPSHOT.jar -m C -r ../src/main/resources/sudachi_fulldict.json
さっぽろテレビ塔
さっぽろテレビ塔 名詞,固有名詞,一般,*,*,* さっぽろテレビ塔
EOS
※-r
で指定するjsonファイルはsudachi.jsonがコア辞書, sudachi_fulldict.jsonがフル辞書
追記
system_full.dic
がないと怒られた.
Exception in thread "main" java.io.FileNotFoundException: system_full.dic (そのようなファイルやディレクトリはありません)
設定を見に行くとsudachi.json
という設定ファイルあたりで指定してそうだったけどここを変えるのもなんだかなぁ と思ったのでとりあえず放置
実行場所にsystem_full.dic
をおいて暫定解決とした.
解決方法あれば教えてほしい…
参考文献