トラちゃん95の処理概要
工事中 |
機械翻訳に興味のある方はお読みください。
トラちゃん95は単語レベルの対訳のため辞書を引く部分が主な処理になります。
処理手順
基本的にはピリオドや"?"で判断しているが引用符の中はできるだけ分割しないようにしている。
スペースや特殊記号で分割し単語をテーブルに保存する
英文では"I'm"などのような場合は"I"
"am"のように変換する
時制、受け身、進行形、助動詞との組み合わせなど
ヒットしない場合の辞書引き方法
(英語の場合)
辞書に登録されている単語(基本型)に変換して引く
- "s"で終わる単語は名詞の複数や三人称単数現在形の動詞の可能性があるため単数の名詞や動詞の原形を想定した単語の候補を作成します。
- 単に"s"だけ削除するだけのものや"es"を削除したもの、"ies"を"y"に変えたものなど単語により候補の数がことなります。
- ヒットした場合は登録されている単語が名詞(品詞コード10〜19)か動詞かをチェックして判断します。
- "ed"で終わる単語は規則変化する動詞の過去、過去分詞の可能性があります。原形を想定した単語の候補を作成します。
- "ed"を削除したもの"d"だけを削除したもの"ed"の前が同じ子音が続く場合は最後の3文字を削除したものなど単語により候補の数がことなります。
- ヒットした場合は登録されている単語が規則変化する動詞(品詞コード930)かをチェックして判断します。
- "er","est"で終わる単語は規則変化する形容詞(副詞)の可能性があります。原形を想定した単語の候補を作成します。
- ヒットした場合は登録されている単語が規則変化する形容詞かをチェックして判断します。
不規則変化する動詞の場合
時制情報と原形の単語(先頭に=)が登録されているためその単語で再度辞書を引きます。
例えば wrote に対しては"=write230"と登録されています。230は動詞の過去形を意味します。
(エスペラント語の場合)
辞書に登録されている単語(基本型)に変換して引く
- "oj "(複数名詞),"on"(対格名詞),"ojn"(対格名詞複数) で終わる単語はこの部分を"o"に置き換えて辞書を引く。
- "aj "(複数形容詞),"an"(対格形容詞),"ajn"(対格形容詞複数) で終わる単語はこの部分を"a"に置き換えて辞書を引く
- "as"(動詞現在),"is"(動詞過去), "os"(動詞未来),"us"(動詞仮定),"u"(動詞命令形)で終わる単語は"i"に変えて辞書を引く
- "ata","ita","ota","anta","inta","onta" で終わる単語は分詞の可能性があるので"i"に変えて辞書を引く
- "ate","ite","ote","ante","inte","onte" で終わる単語は分詞の可能性があるので"i"に変えて辞書を引く
品詞を変えて辞書を引く
- "o"(名詞語尾)で終わる単語は"a"(形容詞語尾)や"i"(動詞不定形)に変えて辞書を引く
- "a"で終わる単語は"o"に変えて辞書を引く
- "e"で終わる単語は"a"に変えて辞書を引く
"い"で終わる形容詞(品詞コード50)の場合は訳語の語尾を"く"に変換する
"な"で終わる形容詞(品詞コード53)の場合は訳語の語尾に"に"を追加する- "i"で終わる単語は"o"に変えて辞書を引く
接頭辞に該当する単語
接頭辞と接尾辞は特殊な見出し語でエスペラント語辞書に登録されていて辞書を開く時に読み込んでいます。
例) mal,正反対
もし辞書に"longa"(長い)が登録されていて"mallonga"(短い)が登録されていない場合は"mallonga"に対して"(正反対)長い"という訳になります。
接尾辞に該当する単語
例) ejo/i,+場所
(語尾の"ejo"を"i"に置き換えてヒットした場合は訳に"<場所>"を追加することを示す)辞書に"lerni"(勉強する)が登録されていて"lernejo"(学校)が登録されていない場合は"lernejo"に対し"勉強する(場所)"という訳になります。
合成語
二つの単語の合成語と想定し単語を適当な位置で分割します。前半の単語が子音で終わる場合は"o"を付けます。
例) "pos^tranc^ilo"(ポケットナイフ)が辞書に未登録の場合
"pos^to" と "ranc^ilo"に分けた場合は"pos^to"に対し"郵便"という訳が得られても"ranc^ilo"に対して訳が得られない場合は別の組み合わせで辞書を引く
"pos^o"と"tranc^ilo"に分割し"ポケット"と"ナイフ"という訳が得られると"ポケット+ナイフ"という訳になります。
"tranc^ilo"が辞書に登録されておらず"tranc^i"(切る)が登録されていると"ポケット+切る<道具>"という訳になります。(接尾辞 ilo/i,+道具)
接頭辞、接尾辞や分割した処理の結果、間違った意味のない訳になる場合があります。
例えば"vinilo"(ビニール)が辞書に無い場合は"ぶどう酒<女性>"という訳になります。
注) "vino"(ぶどう酒) 接尾辞"ino/o,+女性"