lexrefine: 文法精製ツール

English version

lexicon の thresholding や lexical rule による expansion を行なうツー ルです.

lexrefine [オプション] ルールモジュール 元lexicon 元template 新lexicon 新template
ルールモジュールlexical rule が定義されたモジュール
元lexicon入力の lexicon
元template入力の template database
新lexicon精製された lexicon
新template精製された template
オプション
-wf 閾値単語頻度の閾値 (デフォルト: 1)
-tf 閾値テンプレート頻度の閾値 (デフォルト: 0)
-uwf 閾値未知語とみなす単語の閾値 (デフォルト: 1)
-utf 閾値未知語のテンプレートとして採用する閾値 (デフォルト: 0)
-vデバッグ用メッセージを表示する
-vvデバッグ用メッセージをたくさん表示する
-vvvデバッグ用メッセージをたくさんたくさん表示する

lexrefineは,以下の作業をします.

まず,閾値(-tf の値)以下の頻度のテンプレートを削除します.

さらに,残ったテンプレートに lexical rule を適用し,inflected word の エントリを offline で作ることもできます.既存のテンプレートに lexical rule を適用するには,"mayz/lexrefine.lil" で定義されている以下のインタ フェースを実装して下さい.

expand_lexical_template(+$InTemplateName, +$InTemplate, +$Freq, -$LexRules, -$NewTemplate)
$InTemplateName入力テンプレートの名前
$InTemplate入力のテンプレート
$Freqテンプレートの観測回数
$LexRules適用された lexical rule のリスト
$NewTemplate新しいテンプレート
lexeme のテンプレートに lexical rule を適用し,新し いテンプレートを生成します.
新しいテンプレートは,入力テンプレートの lexeme 名と lexical rule のリ ストの組み合わせをキーとして,テンプレートのデータベースに登録されます. 新しく作られたテンプレートの出現回数は,それを作る元となったテンプレー トの出現回数と同じに扱われます.

ここで新たに作ったテンプレートを lexicon で使うためには,以下のインタ フェースを実装します.

expand_lexicon(+$InKey, +$TemplateName, -$NewKey)
$InKey入力単語のキー
$TemplateNameテンプレートの名前 (lex_template 型)
$NewKey新しいキー
$InKey の辞書項目から expand したテンプレート $TemplateName を登録すべきキー $NewKey を返します.例えば,他動詞原形 のテンプレートから受身形のテンプレートを作った場合,原形の love のエン トリに他動詞原形が登録されている時,過去分詞形の loved のエントリに受 身形のテンプレートを登録します.

次に,lexicon の各エントリについて,その単語(正確には, reduce_lexical_template/5 の第3引数で与えられるキー)の頻度が閾値(-wf の値) 以下の場合はそのエントリを削除します.それ以外の単語のエントリは 辞書に残されますが,削除されたテンプレートは自動的に辞書から取り除かれ ます.

また,頻度が -uwf の値以下の単語は,未知語とみなされ,その単語に割り当 てられているテンプレートは未知語のエントリに追加されます.未知語のエン トリのキーは,"mayz/lexrefine.lil" で定義されている unknown_word_key/2で指定します.

unknown_word_key(+$InKey, -$OutKey)
$InKey入力単語のキー
$OutKey未知語のキー
未知語のエントリのためのキーを作ります.
たとえば,$InKey の POS 素性の値だけを未知語のキーとして返せば,品詞だ けを見て未知語のエントリを引くことになります.未知語に割り当てるテンプ レートの出現頻度の閾値は,別に指定することができます(-utf オプション).
MAYZツールキットマニュアル MAYZホームページ 辻井研究室
MIYAO Yusuke (yusuke@is.s.u-tokyo.ac.jp)