Bruce.です。
davi さんは書きました:
> Bruce.さん みなさん < こん??は でび@これからVistaインスコ作業 です
>
> On Thu, 05 Mar 2009 20:37:56 +0900
> "davi" <davi-1984@...> wrote:
>
>> この話題のずっと先には、「翻訳ソフトは、内部でどんな
>> 処理をしているんだろう?」という疑問があります。
>>
>> そんな話題をabcでやるのが適切かどうかはわかりません。
>
> 「考え方としてはこうなのかな?」と、以下のように考えてみました。
作ったことも、既存のものの中を見たこともありませんが、多分違うでしょう。
まず、文章をきちんと(or それなりに)解釈するものであれば、単語の並びを
文として解析する手順があるはずですから、でびさんが考えたものとは
まるで違う構造になるはずです。
ま、それはそれとして、
> おそらく、対訳辞書の並び順がこれでは問題が生じるはずです。
> 例えば、例文の末尾2行目にある、
> 【She】 said, (〜略〜) as 【long】 as
>
> はチャンと訳されるでしょう。
>
> ところが、「long long ago」と「long」は訳し分けたいし、
> 「fisherman」の中には「she」の文字列や「a」があります。
>
> つまり、対訳辞書ファイルのSort順は、かなり大事な部分なの
> だろう…と考えています。
別にソートしとかなきゃいけないこたないです。
先頭部分を共有する単語(やイディオム)が複数存在するときに
最長のものを取り出せばいいわけで、それに向いたデータ構造というのは
あります。
まあそれが awkなりで実装するのがお手軽にできるか、というとそうではないで
しょうけど。
トライ木
トライ木 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%82%A4%E6%9C%A8
Trie - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Trie
基数木 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%91%E3%83%88%E3%83%AA%E3%82%B7%E3%82%A2%E6%9C%A8
Radix tree - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Radix_tree
それから、lex というツールがありますが、こいつは同じ先頭部分を持つ正規表
現を複数並べても、
出現順ではなく、マッチした長さが長いものを優先してくれます。
--
木村浩一/KIMURA Koichi
I thought what I'd do was, I'd pretend I was one of those deaf-mutes or
shoud I?
mail kbk at kt.rim.or.jp
web www.kt.rim.or.jp/~kbk/zakkicho/index.html