2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

以前、形態素解析器 Sudachi の辞書バイナリからコメントや作成日などのヘッダ情報をダンプする方法を紹介しました。今回は辞書バイナリから収録されている語の情報を (おおむね) 出力する方法を紹介します。

収録語のダンプ

収録されている語の情報を出力するためには DictionaryPrinter をつかいます。

$ java -cp sudachi-0.6.3.jar:jdartsclone-1.2.0.jar com.worksap.nlp.sudachi.dictionary.DictionaryPrinter system_core.dic
 ,5967,5967,10, ,空白,*,*,*,*,*,キゴウ, ,*,A,*,*,*
!,5970,5970,1055,!,補助記号,句点,*,*,*,*,キゴウ,!,*,A,*,*,*
#,5969,5969,2588,#,補助記号,一般,*,*,*,*,キゴウ,#,*,A,*,*,*
$,5969,5969,2784,$,補助記号,一般,*,*,*,*,キゴウ,$,*,A,*,*,*
%,5969,5969,3197,%,補助記号,一般,*,*,*,*,キゴウ,%,*,A,*,*,*
&,5969,5969,2098,&,補助記号,一般,*,*,*,*,アンド,&,*,A,*,*,*
*,5969,5969,4462,*,補助記号,一般,*,*,*,*,キゴウ,*,*,A,*,*,*
+,5969,5969,2072,+,補助記号,一般,*,*,*,*,キゴウ,+,*,A,*,*,*
.,-1,-1,0,.,名詞,普通名詞,一般,*,*,*,コンマ,コンマ,*,A,*,*,*
...

ユーザー辞書の場合は以下のようにユーザー辞書を作成したときのシステム辞書を指定する必要があります1

$ java -cp sudachi-0.6.3.jar:jdartsclone-1.2.0.jar com.worksap.nlp.sudachi.dictionary.DictionaryPrinter -s system_core.dic user.dic

辞書ソースとの相違

出力された情報はおおむね辞書ソースにちかいものですが、何点かちがいがあります。

見出し (TRIE 用) が正規化されていない

つかっていないカラムの話その1で説明した0カラム目と4カラム目の話ですが、このツールの出力は両方4カラム目になっています。辞書構造上0カラム目の情報はダブル配列で実装された TRIE 中にしかなく、キーを再現するには TRIE を葉からたどる必要があり取り出すのが面倒だからです。

分割情報が ID 表記になっている

内部的には ID で保持されているのでそれをそのまま出力しています。v1.0 以降では構成語情報表記が必須になる予定なので、そのうち直します。

同義語グループ ID が出力されていない

同義語グループ ID が導入される前につくったツールなので追随させるのをわすれていました。そのうち直します。

まとめ

Sudachi の辞書バイナリは DictionaryPrinter をつかって中身をみることができます。辞書作成時のソースとは一部ことなるところもありますが、辞書の中身を確認したり、元ソースをなくしてしまったときの復元などにご利用ください。

ではよい Sudachi life を。

  1. ユーザー辞書はシステム品詞の情報をもっていないため。

2
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?