« January 2016 | Main | March 2016 »

February 2016

2016.02.12

単語の認識

翻訳するときには原文欄と訳文欄を並べて、原文を見ながら訳文を書くようにしている。恐らくどの人も同じようなことをしていると思う。ただパソコンで訳文を書くなら、パソコンで可能なことはなるべくそちらにやらせたい。

そこで原文の中の言葉を自家製辞書と比較して、その辞書の訳語を訳文作成欄に自動的に出すという工夫が生まれる。出てくる場所も原文欄で当該単語のある位置に対応するように作る。

このようにして真っ白い訳文欄のあちこちに訳語が出てくる(原文は一切出ない)。それが訳文作成時の発想の出発点になる。ちょうど硫酸銅の青い溶液の中に種となる結晶のかけらを吊るして大きな結晶を得るようなもので、これを「結晶方式」と名付けている。原文の中に訳語が混じる混在文を使う方式とは異なる。

しかしあるとき、この発想の核となる言葉が機械に掛けても出てこなかった。辞書に入れてある言葉なのにヒットしない。おかしいと思って調べると、原文のその単語の後にハイフン(-)が付いていた。なるほど原因はそれか。

実はハイフンに限らず単語の前後には色々なものが付いたり活用したりしている。その単語だけで登録していては、そのものずばり以外の変化形はヒットしない。そこで、ある言葉を自家製辞書に登録するときには、前後に付くものやその言葉自体の変化(活用)を正規表現にしてそれまで登録してしまうのである。それにより辞書検索時のヒット率が格段に高くなる。

正規表現を使った検索条件は様々な場合を想定して作ってあるが、ハイフンが付く場合を条件に入れていなかったので出てこなかったのである。それを修正しつつ、単語の認識率向上のためもう一度検索条件のうちの単語の前後に付くものや変化のパターンを見直すことにした。

ではどのようなパターンがあるのか。以前にもこの翻訳のサロンで概説しているが、ここでは単語の後のパターンについて少し詳しく説明する。単語の前のパターンについては別に説明する。

(i) まず複数形の処理を考えねばならない。英文法では名詞が複数形になるとsを付ける、esを付ける、yをiに変えesを付ける、f, feをvに変えてesを付ける、というような規則がある。例えばsの付いた名詞を認識させるにはどうするのか(以下では説明単純化のため単にsが付く場合のみ考える)。

(ii) 次に単語の後が区切りや文末になっていれば、カンマやピリオドが付いている。コロンやセミコロンが付くこともある。今回のように「-」が付いていることもある(なおハイフンには同じように見えても機械では別物と認識されるものが多数あるので、ここでは省略しているが注意しなければならない)。

以上の考え方を正規表現でどのように表現するかを秀丸で説明する。

まず (i) の複数形については、辞書にある単語の後にsが付くか付かないかである。その後の (ii) カンマ、ピリオド、コロン、セミコロン、ダッシュについては、付くか付かないかである。注意すべきは (i) と (ii) は、その順番で生起し、かつそれぞれが独立した条件であって、どちらかに内包されるものではない点である。

そこで、辞書にABCという単語があったときにはその後に
s?(\\.|,|:|;|-)を付加して

  ABCs?(\\.|,|:|;|-)

と書くことになる。s?は、sがあってもなくとも、の意である。(\\.|,|:|;|-)は、ピリオド、カンマ、コロン、セミコロン、ハイフンのいずれかという意味。ピリオドは正規表現で特殊な意味を持つのでそれ自身を表すときにはエスケープ記号\\を付ける。これらの要素が括弧()に入っているのは、置換のときにそのままで訳文に渡すのに必要になるためである。

(iii) ところで単語の後には普通は空白がある。空白があるから長い単語の一部を別の単語と誤って判断することがなくなる。例えばmilestoneをmileとstoneと判断したり、milesとtoneと判断するようなことが防止されるのである。

空白は、単語本体(sの有無はあるにせよ)の後に続くので、(ii) のピリオド、カンマ、コロン、セミコロン、ダッシュが単語本体の後に続くのと同じように考えられる。ということは (ii) に空白も含めればよいということになる。そこで

  ABCs?(_|\\.|,|:|;|-)   「_」は空白を示す

と書くのが、上に述べた単語の後の処理のまとめである。これで単語の複数形やその後に付くものについて次の12の変化を検索でヒットさせることが可能になる。

ABC_    「_」は空白を示す
ABC.
ABC,
ABC:
ABC;
ABC-

ABCs_    「_」は空白を示す
ABCs.
ABCs,
ABCs:
ABCs;
ABCs-

以上は説明単純化のため単にsが付く場合のみとしたが、実際の自家製辞書には名詞の複数形に、esを付ける、yをiに変えesを付ける、f, feをvに変えてesを付けるという場合も含めなければならない。また動詞の活用(三単現のsなど)、形容詞と副詞(fullとfullyなど)についても考えねばならない。さらに単語の前についても検討が必要である(前方一致の機能を使う)。これらについては別に書いてあるものや、これから書くものを参照されたい。

このような作業をする際に大切なのは、一つ一つの事例を丁寧に見ること、そこにある規則性を一般化すること、そしてそれを言語で表現してみることである。言語化が正規表現の一歩手前なのである。またヒット率を上げるためには単語帳を常に改定することも大切になる。単語自体の追加や見直しだけではない。ここに述べたような単語の前後の条件の追加や見直しも倦まず続けなければならない。

とはいえ完璧を求める必要はない。無いよりまし、少しでも手助けになればそれでよし、実用上差し支えなれば大出来くらいに考えることも大事である。

| | Comments (0) | TrackBack (0)

« January 2016 | Main | March 2016 »