lucene-gosenのUniDic対応(Jugemより移植)

Posted by johtani on Monday, June 18, 2012

目次

Issue 32で上がってきたlucee-gosenのUniDic対応の最初のパッチを書いたので、ブログに残しておきます。

###UniDicとは___ UniDicとは、日本語テキストを単語に分割し,形態論情報を付与するための電子化辞書です。 UniDicの詳細や特長についてはHPを御覧ください。

残念ながら、UniDicは利用者登録をして、利用規約に従うと利用が可能となります。 ですので、lucene-gosenでは、Ipadicやnaist-chasenの辞書とは異なり自動で辞書をダウンロードする機能はありません。

###利用手順___ 以下が、Unidicの辞書を利用したjarファイルの作成方法となります。

1. lucene-gosenをダウンロードし、パッチを当てる lucene-gosenのリポジトリからソースをエクスポートし、パッチをダウンロードし、パッチを適用します。 コマンドは以下のとおりです。


svn co . lucene-gosen-trunk-readonly
cd lucene-gosen-trunk-readonly
patch -p0 > ...patch

(パッチに関しては今後正式版をリリースされたら手順からは必要なくなります。)

2. Unidic辞書生成のためのディレクトリを作成「$GOSEN_HOME/dictionary/unidic」


mkdir dictionary/unidic

3. 対象となるUnidicの辞書のソースファイルをダウンロード 利用者登録をし、利用規約に同意の上、以下のファイルをダウンロードします。 「/」に添ってダウンロードページから遷移してダウンロードしてください。


1.3.12個別ファイル/unidic-chasen/unidic-chasen1312src.tar.gz

4. ダウンロードしたtar.gzファイルを「dictionary/unidic/」にコピー


cp .. lucene-gosen-trunk-readonly/dictionary/unidic/

5. Antを実行してjarファイルの作成


ant -Ddictype=unidic

成功すれば、lucene-gosen-trunk-readonly/dist/lucene-gosen-2.1-dev-unidic.jarファイルが生成されます。 あとは、通常通り、SolrやLuceneで利用することが可能です。

以上がjarファイルの作成手順となります。

###制約事項(2012/06/18現在)___ 現在(2012/06/18)時点で公開しているパッチは、以下の制約が存在します。

  • COMPOUNDエントリー未対応
  • 品詞情報(発音)の内容の制限

COMPOUNDエントリー未対応 Unidicの辞書のエントリーの中に1件だけ、COMPOUNDと呼ばれるエントリーが1件だけ存在します。 別々の単語を組み合わせて1単語として扱うことができるようになっているようです。 lucene-gosenでは、残念ながら、このような辞書の形式には対応していません。 1件しか存在しないデータでもあることを鑑みて、今回の辞書構築処理では、スキップするようにしました。

品詞情報(発音)の内容の制限 lucene-gosenの実装上、単語の読みのバリエーション数と発音のバリエーション数には以下の制限が存在します。


「読み」バリエーション数  < 「発音」バリエーション数

「読み」に対応する形で、「発音」がlucene-gosenでは品詞情報としてデータ登録されています。 UniDicのデータには上記制約を満たさないデータが5件ほど存在します。 現在、これら5件のデータについて、「読み」に対応した「発音」データには空文字が表示されるようになっています。

まだ、簡単に動作確認をしただけです。UniDicを利用していて問題など有りましたら連絡、Issueへのアップをしていただけると助かります。


comments powered by Disqus