Help us understand the problem. What is going on with this article?

日本語形態素解析器SudachiをMacにインストールしてみた

More than 1 year has passed since last update.
  • WorksApplicationsさんがSudachiという日本語形態素解析器を公開しているのでタイトルの通りMacにインストールしてみました
  • 日本語形態素解析器とは日本語の文章や文字列から名詞や形容詞を抽出するものです
  • 他に有名なものにMeCabやkuromojiなどがあります
    • MeCabと比べると正規化が出来るとのことです(詳しい対応表はGitHubのREADMEをご参照ください)
  • 今回は自分の持っている環境であるMacにインストールしましたが、Javaで書かれているためbrewインストールの部分を変更すればWindowsでも可能かと思います

環境

  • macOS Sierra
  • RAM 16GB

Sudachiのインストール

  1. Javaのインストール

    • Mavenで管理されているリポジトリであるためJavaが必要になります
    • もうすでに入っている方は次に進んでください
    • 公式からjdkの最新版のdmgをダウンロードしてインストールしました
    $ java -version
    java version "1.8.0_144"
    
  2. Git LFSのインストール

  3. Mavenのインストール

    • brew install mavenが楽でいいかと思います
    $ brew install maven
    $ mvn -version
    Apache Maven 3.5.0
    
  4. Sudachiのコードをクローンして辞書をビルドする

    • GitHubのソースコードをクローンしてきて辞書をビルドします
    • 今回はSudachiのREADMEに書いてある通りビルドしたいと思います
    • 辞書をダウンロードするので有線でやった方がいいと思います(無線でやったら20分かかった)
    $ git clone https://github.com/WorksApplications/Sudachi.git
    $ cd Sudachi/
    $ mvn package
    
  • このときGit LFSがインストールされていない場合は辞書がダウンロードされていないため、ビルドがコケます
    • その場合はまず、git lfs pullをやったあとmvn packageをすることでビルド可能です
  1. 作成されたjarファイルを実行
  2. targetフォルダーを確認するとsudachi-0.1-SNAPSHOT.jarができていますので早速実行

    $ java -jar target/sudachi-0.1-SNAPSHOT.jar
    Exception in thread "main" java.io.FileNotFoundException: system.dic 
    (No such file or directory)
    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:91)
    at com.worksap.nlp.sudachi.JapaneseDictionary.<init>(JapaneseDictionary.java:56)
    at com.worksap.nlp.sudachi.JapaneseDictionary.<init>(JapaneseDictionary.java:48)
    at com.worksap.nlp.sudachi.DictionaryFactory.create(DictionaryFactory.java:34)
    at com.worksap.nlp.sudachi.SudachiCommandLine.main(SudachiCommandLine.java:155)
    
  • エラー、どうやらsystem.dicというファイルがみつからないようです

    • @matsuda_vla さんご教示いただきありがとうございました
    • sudachi-0.1-SNAPSHOT.jarと同階層にできるsudachi-0.1-SNAPSHOT-executable.zipsudachi-0.1-SNAPSHOT-executable.tar.bz2を解凍することで必要なファイルが含まれていました
    • unzipしてそのディレクトリに入って実行してみます
    $ unzip sudachi-0.1-SNAPSHOT-executable.zip
    Archive:  sudachi-0.1-SNAPSHOT-executable.zip
    creating: sudachi-0.1-SNAPSHOT/
    inflating: sudachi-0.1-SNAPSHOT/LICENSE-2.0.txt
    creating: sudachi-0.1-SNAPSHOT/licenses/
    inflating: sudachi-0.1-SNAPSHOT/licenses/javax.json-1.1.txt
    inflating: sudachi-0.1-SNAPSHOT/README.md
    inflating: sudachi-0.1-SNAPSHOT/javax.json-1.1.jar
    inflating: sudachi-0.1-SNAPSHOT/sudachi-0.1-SNAPSHOT.jar
    inflating: sudachi-0.1-SNAPSHOT/system.dic
    inflating: sudachi-0.1-SNAPSHOT/char.def
    inflating: sudachi-0.1-SNAPSHOT/unk.def
    
    $ cd sudachi-0.1-SNAPSHOT
    $ ls
    LICENSE-2.0.txt  char.def            licenses                  system.dic
    README.md        javax.json-1.1.jar  sudachi-0.1-SNAPSHOT.jar  unk.def
    $ java -jar sudachi-0.1-SNAPSHOT.jar
    コミュニケーション
    コミュニケーション 名詞,普通名詞,サ変可能,*,*,*  コミュニケーション
    EOS
    コミニケーション
    コミニケーション    名詞,普通名詞,サ変可能,*,*,*  コミュニケーション
    EOS
    シュミレーション
    シュミレーション    名詞,普通名詞,サ変可能,*,*,*  シミュレーション
    EOS
    シミュレーション
    シミュレーション    名詞,普通名詞,サ変可能,*,*,*  シミュレーション
    EOS
    
  • 動きました 表記揺れも修正できているようです

終わり

  • インストールの手順について間違っている場合やもっとこうした方がいい情報は教えていただきたいです

参考

ichiren1
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした