Edited at

日本語形態素解析器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



  • 動きました 表記揺れも修正できているようです



終わり


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


参考