LoginSignup
1
1

More than 5 years have passed since last update.

SudachiをUbuntuにインストールしてみた

Last updated at Posted at 2018-05-29

研究で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をおいて暫定解決とした.
解決方法あれば教えてほしい…

参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1