Anthyの文法係り受け定義(1)

Date: 2019/05/11 (initial publish), 2021/07/13 (last update)

Source: jp/note-00009.md

Previous Post Top Next Post

TOC

まず、anthy.dic作成時の構成要素のanthy.depに組み込まれる、 ソースファイル内での文法係り受け定義関連の要点をレビューしました。

使ったanthyのソースはDebian BusterのベースとなるgniibeさんがUTF-8化パッチ を掛けかなり変更した0.3です。

anthy.depは、基本的にdepgraph/内のファイルから生成されます。

Anthyの文法係り受け定義

単文節内の、単語結合の遷移ルールが「接頭辞 自立語 接尾辞 付属語」 という順の結合で定義されるとして、以下の2段階ででデーターファイルを 読み込みanthy.depの中に書き出し文法係り受けルールを定義します。

ここで、Anthyで言う付属語とは、活用語尾を含みます。

付属語グラフ

付属語ノードの結合ルールは、活用語尾や助詞や助動詞等のノードが一定の規則 にしたがって並んで、次のノードに遷移していくグラフ構造モデルです。

この付属語グラフを規程するために読み込まれるall.depwordは、 活用語尾を定義したconjugate.tableと助詞や助動詞等のノードを定義した*.depwordを、 sedでコメント行を除き結合して生成します。

このall.depwordは、基本的に

@ノード名 "そこに続く単語1" "そこに続く単語2" .. "..n" \
  @遷移するノード名1 @遷移するノード名2 .. @遷移するノード名m

という形式の行の繰り返しです。(読みやすいように折り返しましたが、 通常1行で記載します)

終端で次のノード名がない場合には、そこに@のみを遷移するノード名 として記します。

上記では、@遷移するノード名と典型的な場合をイメージした形式で記しま したが、実際にはもう少し多くの情報を盛り込めます。具体的には {遷移の属性}{接続の強さ}@ノードの名前という形式です。

遷移の属性は、depgraph/parse_transition()にあるtokenでswitchするcase分岐 構造のコードで扱われ、DOC/SPLITTERに説明されたアルファベット2文字の ニモニックです。ここにそれを内容をコードに揃えてアップデートし再録説明すると、

接続の強さ

(コードを見る限り、現状ではWEAK_CONNECTIONWEAKER_CONNECTIONは同じ値)

たとえば、all.depwordの内容は以下です。

@形容動詞語幹 "な" @連体形接続-接続助詞 St@
@形容動詞語幹 "なる" @連体形接続-接続助詞 St@
@形容詞語幹 "から" @形容詞未然形RA
@形容詞語幹 "かろ" @形容詞未然形
@形容詞語幹 "かっ" @形容詞連用形D
@形容詞語幹 "く" @形容詞連用形NA
@形容詞語幹 "い" @形容詞終止形
@形容詞語幹 "し" Se.@
@形容詞語幹 "ゅう" Sy@
@形容詞語幹 "いん" @形容詞終止形
@形容詞語幹 "い" @形容詞連体形
@形容詞語幹 "けれ" @形容詞仮定形
@形容詞語幹 "けりゃ" Sy@
@形容詞語幹 "きゃ" Sy@ @と
@形容詞語幹 "" @げ(形容詞-形容動詞化) @さ(名詞化) @め(形容詞接続) @すぎる
@形容詞語幹 "" @そう @そうだ
@形容詞語幹 "き" St@
@形容詞語幹 "くっては" "くっちゃ" Sy@
@形容詞語幹 "や" Se@
...
@あげる "あげ" @上下一段活用動詞語幹
@ある "あ" @ラ行5段活用動詞語幹
@いう "い" @ワ行5段活用動詞語幹
@いく "い" @カ行5段活用動詞語幹
@いけない "いけな" @形容詞語幹
@いたす "いたす" "いたします" @けれど
@いたす "いたす" "いたします" St@ St@間投助詞
@いただく "いただ" @カ行5段活用動詞語幹
@いる "" @たり @た(助動詞) @ます
@いる "い" @たり @た(助動詞) @ない @ぬ @ます @そう
@いる "い" @たい @がち @よう(手段) @さえ @がてら
@いる "い" @やすい @にくい @て @つづける
@いる "い" @たがる @ます @そうだ @なさる @つつ
@いる "い" @連用形接続-接続助詞 @た(助動詞) @たり @まくる
@いる "いらっしゃ" @ラ行5段活用動詞語幹
...

これらは、以下のような連接を規定します:

自立語からの遷移表

indepword-wt.txtは以下の内容です。

#kxi @カ変活用動詞連用形
#kxo @カ変活用動詞未然形
#kxoi @カ変活用動詞命令形
#kxure @カ変活用動詞仮定形
#kxuru @カ変活用動詞終止形
#kxuru2
#kxya
#sxi @する未然形「し」
#sxe @する未然形「せ」
#sxi2 @する連用形「し」
...
Previous Post Top Next Post