トラちゃん95の処理概要

工事中

機械翻訳に興味のある方はお読みください。

トラちゃん95は単語レベルの対訳のため辞書を引く部分が主な処理になります。

処理手順

  1. データを文単位に切り出す

    基本的にはピリオドや"?"で判断しているが引用符の中はできるだけ分割しないようにしている。

  2. 単語に分解する(形態素解析)

    スペースや特殊記号で分割し単語をテーブルに保存する

    英文では"I'm"などのような場合は"I" "am"のように変換する

  3. 辞書を引きヒットした結果を候補としてテーブルに保存する

    (ヒットしない場合)
    複数や活用していると思われるは単数や原形に変換して引く(詳しくは後述)
    大文字は小文字に変換して引く

    (更にエスペラント語の場合)
    品詞語尾を変えて引く
    接頭辞や接尾辞に該当する場合はそれらをカットして引きヒットすれば接頭辞や接尾辞の意味を付け加える
    合成語の可能性もあるので文字数の多い単語は2つに分割しどちらでもヒットした場合は+で結びつけた訳とする
  4. 複数の結果がある場合は訳し分けを行い不要と思われる方を候補から削除する
    辞書には前後や文中の単語で訳仕分けができるような情報も入っているものがある

    英語では同じ単語で名詞と動詞がある場合が多い。
    例えば直前が冠詞や所有格の代名詞なら名詞と判断し動詞訳を削除する。
  5. 動詞の活用処理を行う

    時制、受け身、進行形、助動詞との組み合わせなど

  6. 対訳表示を行う

ヒットしない場合の辞書引き方法

(英語の場合)

辞書に登録されている単語(基本型)に変換して引く

不規則変化する動詞の場合

時制情報と原形の単語(先頭に=)が登録されているためその単語で再度辞書を引きます。

例えば wrote に対しては"=write230"と登録されています。230は動詞の過去形を意味します。

(エスペラント語の場合)

辞書に登録されている単語(基本型)に変換して引く

品詞を変えて辞書を引く

接頭辞に該当する単語

接頭辞と接尾辞は特殊な見出し語でエスペラント語辞書に登録されていて辞書を開く時に読み込んでいます。

例) 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,+女性"