LoginSignup
18
14

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-10-16
  • 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
    
  • 動きました 表記揺れも修正できているようです

終わり

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

参考

18
14
2

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
18
14