まず,誤り例を示す.
日本語原文 | 日本が負けたら大変だった。 | |
英語原文 | What if Japan had been defeated? | |
日本語パターン | /ytcfkN1(OR:日本)が/cfV2(OR:負け).kako^katei/yf大変だった。 | |
英語パターン | What if N1(OR:Japan) V2(OR:had been defeated)^psp.p? |
英語パターンに^psp.pという記述がある.しかし,.pは原文 との比較から字面ではなく,また,関数の仕様にはない.よって,この記述は 誤りである.
正解の記述を検討する.「 .p」 を関数記述の誤りであると仮定し,その係り先の 変数を見る.係り先の変数に照応する字面は,「had been defeat」である.つ まり,変数V2に係る関数は,動詞を受身の過去完了形にする関数であ るとわかる.「^psp」は過去完了形に変形する関数であるの で,「.p」の正解は,受身形に変形する関数「^passive」で あると考えられる.そこで,関数の順番を考慮すると,正解の記述は, 「^passive^psp」である.修正後のパター ンは,
英語パターン | What if N1(OR:Japan) V2(OR:had been defeated)^passive^psp. |
となる.
次に,「記号の選択記号内残り誤り」のプログラムによる修正例を示す.
まず,誤り例を示す.
日本語原文 | 自信のある者は挑戦してみなさい。 | |
英語原文 | Anyone who has confidence in himself, go ahead and take a crack at it. | |
日本語パターン | /y /tkN1に /tcfkN2の/fある/f者は /cfN3に !挑戦してみなさい。 | |
英語パターン | Anyone who has N2 in himself, N1^reflex go ahead and take a crack at it N3^obj . |
英語パターンにおいて,「 himself, N1^ reflex 」という記述がある.変数N1に適合する入力があれば 「N1^reflex」が選択されるが,なければ 「himself,」が選択される記述である.コンマが選択記号内の「himself,」の 側にのみ記述されているので,「N1^reflex」が選 択されると,訳出文にコンマが記述されない.
この例の正しい記述は,「
himself
N1^reflex
,」
である.書き換え規則を正規表現で表すと次のようになる.
「/(
[^
]*)(,)([^
]*
)/」 から 「$1 + $3 + $2」
この規則を適用し,プログラムにより修正する.