日本語拡張モダリティ解析器 Zunda
Zundaは東北大学 乾・岡崎研究室で開発され、現在は、オープンソースで開発を継続している日本語拡張モダリティ解析器です。文中のイベント(動詞や形容詞など)に対して、その真偽判断(イベントが起こったかどうか)、仮想性(仮定の話かどうか)などを解析します。以下の解析例のような複雑な表現も正しく解析できます。
- 現在の最新版は、ver 1.6です。
- 機能表現解析機能を搭載したver 2.0を開発中です。
News
- 2015/1/13: ver 1.6 を公開しました。解析対象の事象の品詞を指定できるようになりました。
- 2014/7/21: オンラインデモサイトを公開しました。(終了しました)
- 2014/7/15: ver 1.5 を公開しました。1.0に比べて5〜7倍高速に動作します。
解析例
例えば「次郎は大阪に行ったが、太郎は東京には行かず地元に残ろうとした」という文を解析した結果を以下に示します。解析結果から、「次郎が大阪に行く」ことは実際に起こったこと(真偽判断:成立)と解析され、「太郎が東京に行く」ことは起こっていないこと(真偽判断:不成立)と解析されています。
解析結果は、解析対象文の冒頭に、#EVENTで始まる行で表示されます。続いて、「イベントの中心となる形態素の番号、態度表明者(Zundaでは解析対象外ですので全てwr:筆者となります)、時制、仮想、態度、真偽判断、価値判断が続きます。文の解析は係り受け解析器 CaboChaによって行われます。
#EVENT0 4 wr:筆者 非未来 0 叙述 成立 0 0
#EVENT1 13 wr:筆者 未来 0 叙述 不成立 0 0
#EVENT2 17 wr:筆者 未来 0 意志 高確率 ポジティブ 0
#EVENT3 20 wr:筆者 非未来 0 叙述 成立 0 0
* 0 2D 0/1 1.116804
次郎 名詞,固有名詞,人名,名,,,次郎,ジロウ,ジロー B-PERSON
は 助詞,係助詞,,,,,は,ハ,ワ O
* 1 2D 0/1 3.506051
大阪 名詞,固有名詞,地域,一般,,,大阪,オオサカ,オーサカ B-LOCATION
に 助詞,格助詞,一般,,,*,に,ニ,ニ O
* 2 7D 0/2 1.101258
行っ 動詞,自立,,,五段・カ行促音便,連用タ接続,行く,イッ,イッ O
た 助動詞,,,,特殊・タ,基本形,た,タ,タ O
が 助詞,接続助詞,,,,,が,ガ,ガ O 、 記号,読点,,,,*,、,、,、 O
* 3 7D 0/1 0.6542620
太郎 名詞,固有名詞,人名,名,,,太郎,タロウ,タロー B-PERSON
は 助詞,係助詞,,,,,は,ハ,ワ O
* 4 5D 0/2 0.1446930
東京 名詞,固有名詞,地域,一般,,,東京,トウキョウ,トーキョー B-LOCATION
に 助詞,格助詞,一般,,,,に,ニ,ニ O
は 助詞,係助詞,,,,*,は,ハ,ワ O
* 5 7D 0/1 2.081317
行か 動詞,自立,,,五段・カ行促音便,未然形,行く,イカ,イカ O
ず 助動詞,,,*,特殊・ヌ,連用ニ接続,ぬ,ズ,ズ O
* 6 7D 0/1 0.000000
地元 名詞,一般,,,,,地元,ジモト,ジモト O
に 助詞,格助詞,一般,,,*,に,ニ,ニ O
* 7 -1D 3/4 0.000000
残ろ 動詞,自立,,,五段・ラ行,未然ウ接続,残る,ノコロ,ノコロ O
う 助動詞,,,,不変化型,基本形,う,ウ,ウ O
と 助詞,格助詞,引用,,,,と,ト,ト O
し 動詞,自立,,,サ変・スル,連用形,する,シ,シ O
た 助動詞,,,*,特殊・タ,基本形,た,タ,タ O
EOS
- Zundaは修正BSDライセンスに従ったフリーソフトウェアです。ライセンスの詳細は同梱されているCOPYINGを参照してください。
- 本ソースコード中に、CDB++ (BSDライセンス)、liblinear (BSDライセンス)、tinyxml2 (zlibライセンス)のソースコードの一部を含みます。これらのライセンスについては、それぞれのCOPYINGなどを参照してください。
- 付属のモデルファイルは、おちゃも:拡張モダリティタグ付与コーパスから学習、作成されました。本ソースコード中にコーパス自体は含まれていません。
- Zundaの解析では、つつじ:日本語機能表現辞書と、[拡張モダリティ解析用手がかり表現辞書を使っています。
- 開発者ならびに東北大学は、Zundaのプログラム及び付属のモデルファイルについていかなる保証をも行うものではなく、Zundaのプログラム及び付属のモデルを使用、複製、改変、頒布により生じた損害や賠償等については、法律上の根拠を問わず一切責任を負いません。ご注意ください。
拡張モダリティ
拡張モダリティは、文中のイベントに対する書き手の判断情報です。ver.0.8では態度表明者、時制、仮想、態度、真偽判断、価値判断の6種類のタグの組み合わせで書き表されていますが、Zundaでは態度表明者以外の5つのタグについて解析します。
各タグごとのラベルは以下の通りです。 タグ体系についての詳しい情報はタグ付与コーパス作成の作業基準 version 0.8をご覧ください。
- 態度表明者: wr:筆者 のみ(解析していないため)
- 時制: 未来、非未来
- 仮想: 条件、帰結、0
- 態度: 叙述、意志、欲求、働きかけ-直接、働きかけ-間接、働きかけ-勧誘、欲求、問いかけ
- 真偽判断: 成立、不成立、不成立から成立、成立から不成立、高確率、低確率、低確率から高確率、高確率から低確率、0
- 価値判断: ポジティブ、ネガティブ、0
ダウンロードとインストール
- Zunda 1.6をダウンロード、または最新のソースコードを取得します。
./configure; make; make install
でインストールできます。--prefix
でインストール場所を変更できます。デフォルトでは/usr/local/
以下にインストールされます。- boostライブラリの位置を指定するときは、
--with-boost-include
でヘッダファイルの場所(例:~/boost_1_55_0
)と、--with-boost-lib
でライブラリファイルの場所(例:~/boost_1_55_0/stage/lib
)を指定します。通常は不要です。 --with-cabocha
でCaboChaのインストール場所(include/cabocha.h
およびlib/libcabocha.so
を含むディレクトリ)を指定できます。通常は不要です。- boostとCaboCha以外のライブラリはインストール時にリンクされます。 * システム要件 * Linux * あらかじめCaboCha (>=0.60)と、Boost Library (>=1.41)をインストールしておく必要があります。以下の環境で動作を確認しています。
- Ubuntu 12.10, gcc 4.7.2, boost 1.50
- debian 5.0, gcc 4.7.3, boost 1.50
- CentOS 6.4, gcc 4.4.7, boost 1.41
アンインストール
make uninstall
を実施するか、以下のパスにあるファイルおよびディレクトリを削除することでアンインストールできます。
- /usr/local/bin/zunda
- /usr/local/bin/zunda-train
- /usr/local/bin/zunda-fsem-train
- /usr/local/bin/zunda-conv
- /usr/local/share/zunda
Zundaの使い方
Zundaの基本的な使い方は以下の通りです。 標準入力で解析対象の文を入力すると、CaboChaによる係り受け解析を行った後、拡張モダリティ解析を行った結果(前述の解析例)を出力します。
% echo "次郎は大阪に行ったが、太郎は東京には行かず地元に残ろうとした" | zunda
複数の文を解析する場合は、一行に一文書かれたファイルを用意して、それを標準入力に入れます。または、前述の方法でechoする文字列内に改行記号を入れると、そこを文末だと判断し、複数文として解析されます。
% echo "次郎は大阪に行った。\n太郎は東京には行かず地元に残ろうとした" | zunda
#EVENT0 4 wr:筆者 非未来 0 叙述 成立 0 0
* 0 2D 0/1 2.606551
次郎 名詞,固有名詞,人名,名,,,次郎,ジロウ,ジロー B-PERSON
は 助詞,係助詞,,,,,は,ハ,ワ O
* 1 2D 0/1 0.000000
大阪 名詞,固有名詞,地域,一般,,,大阪,オオサカ,オーサカ B-LOCATION
に 助詞,格助詞,一般,,,*,に,ニ,ニ O
* 2 -1D 0/1 0.000000
行っ 動詞,自立,,,五段・カ行促音便,連用タ接続,行く,イッ,イッ O
た 助動詞,,,,特殊・タ,基本形,た,タ,タ O
。 記号,句点,,,,*,。,。,。 O
EOS
#EVENT0 5 wr:筆者 未来 0 叙述 不成立 0 0
#EVENT1 9 wr:筆者 未来 0 意志 高確率 ポジティブ 0
#EVENT2 12 wr:筆者 非未来 0 叙述 成立 0 0
* 0 4D 0/1 0.5874210
太郎 名詞,固有名詞,人名,名,,,太郎,タロウ,タロー B-PERSON
は 助詞,係助詞,,,,,は,ハ,ワ O
* 1 2D 0/2 0.1446930
東京 名詞,固有名詞,地域,一般,,,東京,トウキョウ,トーキョー B-LOCATION
に 助詞,格助詞,一般,,,,に,ニ,ニ O
は 助詞,係助詞,,,,*,は,ハ,ワ O
* 2 4D 0/1 2.081317
行か 動詞,自立,,,五段・カ行促音便,未然形,行く,イカ,イカ O
ず 助動詞,,,*,特殊・ヌ,連用ニ接続,ぬ,ズ,ズ O
* 3 4D 0/1 0.000000
地元 名詞,一般,,,,,地元,ジモト,ジモト O
に 助詞,格助詞,一般,,,*,に,ニ,ニ O
* 4 -1D 3/4 0.000000
残ろ 動詞,自立,,,五段・ラ行,未然ウ接続,残る,ノコロ,ノコロ O
う 助動詞,,,,不変化型,基本形,う,ウ,ウ O
と 助詞,格助詞,引用,,,,と,ト,ト O
し 動詞,自立,,,サ変・スル,連用形,する,シ,シ O
た 助動詞,,,*,特殊・タ,基本形,た,タ,タ O
EOS
係り受け解析結果を入力にすることもできます。その場合は、-i で入力形式を選択します。
% echo "太郎は東京に行かない" | cabocha -f 1 > test.cab % cat test.cab | zunda -i 1
#EVENT0 4 wr:筆者 未来 0 叙述 不成立 0 0
* 0 2D 0/1 0.9637040
太郎 名詞,固有名詞,人名,名,,,太郎,タロウ,タロー B-PERSON
は 助詞,係助詞,,,,,は,ハ,ワ O
* 1 2D 0/1 0.000000
東京 名詞,固有名詞,地域,一般,,,東京,トウキョウ,トーキョー B-LOCATION
に 助詞,格助詞,一般,,,*,に,ニ,ニ O
* 2 -1D 0/1 0.000000
行か 動詞,自立,,,五段・カ行促音便,未然形,行く,イカ,イカ O
ない 助動詞,,,*,特殊・ナイ,基本形,ない,ナイ,ナイ O
EOS
全てのオプションは、--help
で表示されます。
-i
で、入力テキストの形式を選択できます。解析器をいくつか挙げていますが、フォーマットに互換性があれば他のツールで解析した結果も使えます。- 0: 平文を処理します。内部でMeCab+CaboCha (IPA品詞体系) を呼び出します。デフォルトはこのモードです。
- 1: MeCab+CaboChaによって係り受け解析された形式を入力するときに使います。CaboChaは-f1オプションで解析した結果を受け付けます。
- 2: Juman+KNPによって係り受け解析された形式を入力するときに使います。KNPは-tabオプションが必要です。
- 3: MeCab+CaboCha+SynChaまたはMeCab+CaboCha+ChaPASによって述語項構造解析された形式を入力するときに使います。
- 4: Juman+KNPによって述語項構造解析された形式を入力するときに使います。
--pos
で、-i
が1または3のときに、品詞体系を指定できます。- 0: IPA/Naist-jdic の品詞体系です。デフォルトではこの品詞体系が使われます。
- 1: Juman品詞体系です。
-t
で、解析対象となるイベントの選択方式を変更できます。- 0: 品詞別に選択されます。動詞、形容詞、サ変名詞が解析されます。デフォルトはこのモードです。
- 1: 述語項構造解析器によって判断された述語を対象に解析します。このときは-iで3または4を選択し、あらかじめSynChaなどで述語項構造解析を行っておく必要があります。
--posset
で、-t=0
のときに解析対象となる品詞を指定することができます。詳しくは後述します。-m
でモデルファイルのあるディレクトリを指定できます。通常は不要です。-d
で辞書ファイルのあるディレクトリを指定できます。通常は不要です。
例えば、KNP品詞体系で解析されたCaboChaの係り受け解析結果を入力するときは、zunda -i 1 --pos 1
と指定し、JumanとKNPで解析された係り受け解析結果を入力するときは、zunda -i 2 --pos 1
と指定します。
解析対象の品詞を指定 –possetオプションの使い方
解析対象となる事象の品詞は、デフォルトでは以下の通りです。
- IPA/Naist-jdic品詞体系では、「動詞,形容詞,名詞-サ変接続,名詞-形容動詞語幹」の4種類
- Juman品詞体系では、「動詞,形容詞,名詞-サ変名詞」の3種類
--posset
オプションでこれを変更することができます。例えば、「ウナギだ」といった名詞+助動詞を解析対象としたい時は、以下のように指定します。
--posset "動詞,*|形容詞,*|名詞,サ変接続|名詞,形容動詞語幹|名詞,*:助動詞,*"
- 各品詞は、品詞と品詞細分類1を半角カンマで繋いだものです
- 品詞細分類1に半角の*を指定すると全ての細分類にマッチします
- 品詞列を指定すると、最初の品詞にマッチした語が解析されます(上記のように名詞+助動詞を指定すると、名詞のみが解析されます)
- 品詞列は
:
で区切ります - 品詞および品詞列は
|
で区切ります
以下は解析例です。
% echo "ぼくはウナギだ" | zunda --posset "動詞,|形容詞,|名詞,サ変接続|名詞,形容動詞語幹|名詞,:助動詞,"
#EVENT0 2 wr:筆者 非未来 0 叙述 成立 0 0
* 0 1D 0/1 0.000000
ぼく 名詞,代名詞,一般,,,,ぼく,ボク,ボク,, は
助詞,係助詞,,,,*,は,ハ,ワ,,
* 1 -1D 0/1 0.000000
ウナギ 名詞,一般,,,,,ウナギ,ウナギ,ウナギ,, だ
助動詞,,,*,特殊・ダ,基本形,だ,ダ,ダ,,
EOS
「名詞+助詞+助動詞」のように2つ以上の品詞列を指定することもできます。
% echo "ぼくはウナギじゃない" | zunda --posset "動詞,|形容詞,|名詞,サ変接続|名詞,形容動詞語幹|名詞,:助詞,:助動詞,*"
#EVENT0 2 wr:筆者 非未来 0 叙述 不成立 0 0
* 0 1D 0/1 0.000000
ぼく 名詞,代名詞,一般,,,,ぼく,ボク,ボク,,
は 助詞,係助詞,,,,*,は,ハ,ワ,,
* 1 -1D 0/2 0.000000
ウナギ 名詞,一般,,,,,ウナギ,ウナギ,ウナギ,,
じゃ 助詞,副助詞,,,,,じゃ,ジャ,ジャ,,
ない 助動詞,,,*,特殊・ナイ,基本形,ない,ナイ,ナイ,,
EOS
更新履歴
- ver 1.6 (2015/1/13) : –possetオプションで、解析対象の事象の品詞を指定できるようになりました。
- ver.1.5 (2014/7/15) : Juman品詞体系によるCaboCha解析結果を受け付けるために、品詞体系を指定する–posオプションを追加。解析処理をかなり高速化(5倍〜7倍)
- ver.1.0 (2013/12/25) : 公開
今後の開発予定
- PythonやRubyなどから容易に呼び出す仕組みの実装
- プログラム起動時間の短縮
参考文献
- 水野淳太, 成田和弥, 乾健太郎, 大竹清敬, 鳥澤健太郎. 拡張モダリティ解析器の試作と課題分析. ALAGIN & NLP若手の会 合同シンポジウム, September 2013. poster, 評価結果一覧,
- 松吉俊, 佐尾ちとせ, 乾健太郎 (東北大/NAIST), 松本裕治. 拡張モダリティタグ付与コーパスの設計と構築. 言語処理学会第17回年次大会論文集, pp.147-150, March 10, 2011.
- 松吉俊, 佐尾ちとせ, 乾健太郎, 松本裕治. 拡張モダリティタグ付与コーパス作成の作業基準. February 4, 2011. http://cl.naist.jp/nltools/modality/manual.pdf
- 松吉俊, 江口萌, 佐尾ちとせ, 村上浩司, 乾健太郎, 松本裕治. テキスト情報分析のための判断情報アノテーション. 電子情報通信学会論文誌, Vol.J93-D, No.6, pp.705-713, June 2010.
- Suguru Matsuyoshi, Megumi Eguchi, Chitose Sao, Koji Murakami, Kentaro Inui and Yuji Matsumoto. Annotating event mentions in text with modality, focus, and source information. In Proceedings of the Seventh International Conference on Language Resources and Evaluation (LREC), pp.1456-1463, May 2010.
- 江口萌, 松吉俊, 佐尾ちとせ, 乾健太郎, 松本裕治.モダリティ、真偽情報、価値情報を統合した拡張モダリティ解析.言語処理学会第16回年次大会論文集, pp.852-855, March 2010.