新しい形態素解析器Sudachiがリリースされていました

広告

Sudachi

形態素解析器は文章を形態素に分割するツールですが、必ずしも形態素(意味を持つ最小の単位)に分割するとは限らないので、分かち書きツールとも言われますが、ここでは形態素解析器に統一します。

形態素解析器はMeCabがとてもよくできているので、その後はあまり新しいものが出ていません。JUMAN++なんかもありましたが、MeCabから乗り換えるほどのものではないかな(私感)と思いました。そこに新しい形態素解析器が登場しました。

少し検索してみるとスライドが見つかりました。

形態素解析

なかなか意欲的な話ですが、一方でこれはMeCabの辞書をメンテすれば解決する話ではないかとも思いました。MeCabの辞書はIPADicにせよ、UniDicにせよ長い間メンテされていません。

冒頭で形態素解析器と書きましたが、実はMeCabはテキスト変換ツールです。「MeCab の辞書構造と汎用テキスト変換ツールとしての利用」には、単語にリンクを張ったり、ひらがなをカタカナに変換するサンプルがあります。また「ルー語変換を MeCab だけで実現」という例もあります。

ですから、このスライドで書かれている機能のほとんどは辞書をメンテすればできるはずです。単語の区切りの大きさにせよ、正規化にせよMeCabの辞書を工夫すればできます。MeCabは既にスタンダードですから、新しく形態素解析器を作っても普及させるのは難しいと思います。新しい形態素解析器でないとできないことならば意味はあるけど、今のところそのようには見えないかな。

JUMAN++のときも

という意見がありました。

それはともかく、まずダウンロードしてみてコンパイルしてみました。

[INFO] --- exec-maven-plugin:1.6.0:java (compile-system-dictionary) @ sudachi ---
reading the source file...Error: invalid format at line 1
[WARNING] 
java.lang.IllegalArgumentException: invalid format
	at com.worksap.nlp.sudachi.dictionary.DictionaryBuilder.buildLexicon(DictionaryBuilder.java:116)
	at com.worksap.nlp.sudachi.dictionary.DictionaryBuilder.build(DictionaryBuilder.java:91)
	at com.worksap.nlp.sudachi.dictionary.DictionaryBuilder.main(DictionaryBuilder.java:432)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:282)
	at java.lang.Thread.run(Thread.java:748)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

辞書のビルドができません(2017年9月1日現在)。辞書のフォーマットが不正らしいけど、確かに辞書がありません。辞書の代わりに短いテキストが入っているのみです。

GitHubページによりますと This repository is over its data quota. Purchase more data packs to restore access. というissueがありますので、辞書が大きすぎて置けないようです。辞書のサイズは本来なら493MBあるよう。これはIPADicやUniDicよりは大きいけど、NEologdよりは小さそうです。

ソースコードを少し見てみました。Kuromojiのカスタムかと思いましたが、どうもスクラッチで書いたようです。まだ一部しか見ていないですが。

色々と否定的なことを書きましたが、新しいツールが登場したのは嬉しいことで、少しコードや辞書の中身を見てみようと思います。