2009年02月22日

基本的なツールを作って HSPを習得する

HSPも「なでしこ」と同様にすんなり使い方がのみこめるだろうと考えていたのですが、思い通りにはいっていません。いまだに勝手がのみこめずフラストレーションを感じているような有様です。

駄目だとわかれば迂回するしかありません。岩壁をよじのぼるようなアプローチは止めにして、時間をかけて山道を登っていくことにします。

翻訳プログラムに関連する簡単なツールを作っていくことで HSPの使い方をおぼえていこうと思います。このブログも当面は HSPのお勉強ノートみたいになってしまうかもしれません。




posted by アキラ at 23:17| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月16日

日本語からの翻訳、主語と補語の数の一致

SVC構文で、SとCの数を一致させる問題はとりあえず解決しました。

【原文】
私は日本人です。
彼は学生です。
その女性は学生です。
マリアさんは学生です。
マリアとグロリアは学生です。
その家は小さいです。
そのケーキはとても甘いです。
私たちは日本人です。
私は日本人ではありません。
あなたは日本人ですか。
あなたたちは日本人ですか。

【訳文】
Mi estas japano.
Li estas studento.
La virino estas studento.
Maria estas studento.
Maria kaj Gloria estas studentoj.
La domo estas malgranda.
La kuko estas tre dolcxa.
Ni estas japanoj.
Mi ne estas japano.
Cxu vi estas japano?
Cxu vi estas japanoj?

次は形容詞の比較級、最上級(「マリオはジョンより背が高いです」や「マリオは彼らの中で一番背が高いです」)に取り組みたいと思います。



posted by アキラ at 18:45| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月14日

Chipmunk Basic, HSP, Mind

2つのプログラミング言語(フリーソフト)、なでしこと Tiny Basic for Windowsとで翻訳プログラムを作っていくつもりでしたが、選択肢を増やしたいと思います。

日本語→エスペラントについては、なでしこと Mindを使うものとします。

エスペラント→日本語については、Tiny Basic for Windowsに加えて Chipmunk Basicと HSPを使うものとします。

Tiny Basic for Windowsではランダム・ファイルが使えませんが、Chipmunk Basicでは使えます。Chipmunk Basicのもう一つの利点は、Windows版以外に、Mac OS版もあり、Linux版もあるというところです。

Chipmunk Basic

http://ja.wikipedia.org/wiki/Chipmunk_Basic

Hot Soup Processor (HSP)

http://ja.wikipedia.org/wiki/Hot_Soup_Processor

Mind

http://ja.wikipedia.org/wiki/Mind



posted by アキラ at 16:19| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月13日

日本語からの翻訳、初歩的な問題

【原文】
私は日本人です。
彼は学生です。
その女性は学生です。
マリアさんは学生です。
マリアとグロリアは学生です。
その家は小さいです。
そのケーキはとても甘いです。

【文を単語に分解】
私 は 日本人 です
彼 は 学生 です
その 女性 は 学生 です
マリア さん は 学生 です
マリア と グロリア は 学生 です
その 家 は 小さい です
その ケーキ は とても 甘い です

【訳文】
Mi japano estas.
Li studento estas.
La virino studento estas.
Maria studento estas.
Maria kaj Gloria studento estas.
La domo malgranda estas.
La kuko tre dolcxa estas.

まず語順は元のままで一語一語置き換えるだけのプログラムを作ってみました。日本語の文を単語に分解する作業が相当に面倒だったので、エスペラントへの翻訳は入口にたどりついた時点で一休みという格好です。

今回の例で明らかに問題なのは"Maria kaj Gloria studento estas." 主語と補語の数が一致していません。SVC構文ならではの問題です。

SOVの場合はSとOの境を見間違えることはないですが、SCVの場合、Cが形容詞であるとまぎらわしくなりそうです。



posted by アキラ at 21:23| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月10日

原文の語順を訳文に反映させることの是非

「母は蟹を食べた」をエスペラントに訳せば、普通は

Patrino mangxis krabon.

となるのでしょうが、日本語の語順に対応するように

Patrino krabon mangxis.

としても間違いではないことになっています。では「母は北海道で蟹を食べた」だったら、どうでしょう。 「北海道で」を意味する"en Hokajdo"は、文中のどこでも好きなところに置けるのでしょうか? 文頭や文末に置いて

Patrino krabon mangxis en Hokajdo.
En Hokajdo, patrino krabon mangxis.

とするのは問題はなさそうですが、主語の後に置いて

Patrino en Hokajdo krabon mangxis.

としても、意味は変わらないのでしょうか。"en Hokajdo"が直前の patrinoを修飾しているように見えてしまって、mangxisを修飾しているようには見えにくくなる恐れはないのでしょうか。その心配がないのであれば、上の文はきれいに日本語の語順に対応しているので、翻訳の手順は非常にシンプルになります。

「北海道で」は動詞の「食べた」しか修飾できないのに対して、"en Hokajdo"は副詞的にも形容詞的にもふるまえるところに問題の根っこがあります。日本語からエスペラントに訳した文の意味を取り違えられないようにするには、やはり誤った解釈を許すような余地をなくしてしまうのが一番です。

エスペラントでは主語と目的語と動詞の順番は自由に決められますが、語順の自由性はあくまでも三者の間での話であって、三者以外の語句が割り込んでくることまでは許容していないと思います(国連のコア・メンバーである常任理事国みたいな存在)。

日本語の「母は北海道で蟹を食べた」で特別な存在は動詞の「食べた」だけです。残りの「母は」「北海道で」「蟹を」はまったく平等であり、「北海道で」だけを格下に扱わねばならぬ理由は見つかりません。

エスペラント→日本語の翻訳では原文の語順を訳文に反映しても問題はなさそうですが、日本語→エスペラントの翻訳ではそれは避けて、すべて無難なSVO語順で処理するのが得策だろうと思います。



posted by アキラ at 21:16| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月09日

プリプロセッサーに処理させたいこと

Instruistinojn viajn fratinoj niaj vidis.

この文は、英語へ機械翻訳するのはちょっと面倒です。しかし日本語に翻訳するのであれば、形容詞が前置されず後置されているのが問題なだけで、あとはどうということはありません。

よくよく考えてみると、エスペラントの語順の奔放さに対応できるくらい日本語は柔軟なのです。

"instruistinojn viajn"という目的語が文頭にあることは日本語なら訳文に正しく反映させることができますが、英語では無理だと思います。

対格マーカー(-n)によって目的語は間違いなく識別されます。文末の語が動詞であることも容易にわかります。残りの部分を主語と解釈することを妨げるような事実はないので、この文は OSVという文型であると判断されます。

エスペラントの文をスキャンして、形容詞が後置されているのを発見したら名詞の前に移動させる。前処理プログラムに私がやらせたいことの一つが、そういう処理です。

posted by アキラ at 23:39| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月07日

エスペラントからエスペラントへ、日本語から日本語への翻訳

英語も日本語も、形容詞は名詞の前に置かれます。
英語も日本語も、主語は動詞の前に来ます。

something special のような用法とか、疑問文とかまで含めると、英語が日本語と同じであるとは言えませんが、基本的には共通していると考えられます。

日本語と英語とが共有している、この常識がエスペラントには必ずしも通用しません。したがって翻訳ソフトは、形容詞が名詞の後にあってもいいようにしなければならず、目的語が動詞の前に来たり、主語が動詞の後に来たりするケースにも備えなければなりません。

語順の自由さは、エスペラントの使い手には魅力的でしょうが、翻訳ソフトを作ろうとする者には難題となります。この問題を解決する策は色々とあるのでしょうが、私は非常にシンプルな方法を採用したいと思います。

主語・動詞・目的語という語順になってない文は書き換えて、おなじみの語順にしてしまう。名詞を修飾する形容詞が前ではなく後に置かれている場合は、名詞と形容詞の位置を入れ換える。これらの処理は、翻訳プログラム本体は行なわず、前処理を受け持つプログラムに任せることにするのです。

「高いであった」とか「美しいである」のような適切でない訳文を生成してしまう問題も、同じ方針で解決したいと思います。つまり翻訳プログラム本体で解決しようとするのではなく、後処理のプログラムにバトンを渡し、「高いであった」を「高かった」に、「美しいである」を「美しい」に直させるのです。



posted by アキラ at 16:19| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月06日

SkyDrive でファイルを共有

MSNに無料のオンラインファイル保存サービスがあったはずだと思い、調べてみたら、やはりありました。正式な名称は Windows Live SkyDrive。25GB の容量で、写真データ、Word やExcel のファイルなど、どんなファイルでも保存できるとのことです。

製作途中の私のプログラムを SkyDriveへアップロードし、興味のある人には試用してもらえるようにしたいと考えています。

http://windowslive.jp.msn.com/guide/skydrive/step1.htm


posted by アキラ at 23:16| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月05日

おなじみの語順

Free Esperanto Course の第3課にこんなことが書いてありました。

In this 10-lesson course we are going to stick to the subject-verb-object word order, but in well-written Esperanto texts other word orders are frequently used for reasons of emphasis and text coherence. If you use Esperanto you will rapidly acquire a feeling for word order. The best word order to use depends mainly on the context, so it is difficult to give precise "rules".

この文章は「livedoor翻訳」で訳すと、次のようになります。
「この10のレッスン・コースでは、私たちは主題動詞オブジェクト語順に固執するつもりです。しかし、よく書けているエスペラント・テキストでは、他の語順は、強調およびテキスト統一の理由で頻繁に使用されます。エスペラントを使用すれば、急速に語順に対する思いやりを得るでしょう。使用する最良の語順は主としてコンテキストに依存します。したがって、正確な「規則」を与えるのは難しい。」
livedoorの翻訳は Yahooや Exciteの翻訳に比べると劣っていることが多いのですが、今回に限っては livedoorが一番まともな訳になっていました。

さて、問題は語順です。subject-verb-object word order、つまり主語・動詞・目的語という語順は英語では当たり前ですが、エスペラントではそうではありません。そのことを考慮して Esperantilo が作られていることは既に確認した通りですが、トラちゃん95がどうだったかはチェックしていませんでした。

さきほど確認してみたところ、トラちゃん95は主語・動詞・目的語という語順を前提にしているらしいことがわかりました。英語的な語順をはずれた文(例えば Instruistinojn viajn fratinoj niaj vidis.)は、翻訳の質がひどく落ちてしまうからです。

私は、英語→日本語プログラムに手を加えてエスペラント→日本語プログラムとしているため、やはり同じ問題をかかえていることは認識しています。

もし新たに、英語的な常識に全然とらわれない翻訳プログラムを作るのであれば、そのプログラムはエスペラントだけでなく、タガログ語やインドネシア語といった風変わりな言語もうまく翻訳できるようになる可能性があります。

英語→日本語プログラムをベースにしたものと、まるっきり発想の違うもの。その二本立てでやってみるのも面白いかなと私は考え始めています。


posted by アキラ at 23:29| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月04日

ふたたび品詞コードについて

しばらくのあいだ上野式について研究してきましたが、そろそろ自分自身のプログラムに戻るべき頃だと思います。品詞分類については学ぶべきところもあったので、上野式も参考にして、今後は次のような品詞コードを使っていくことにします。

*a 形容詞
*b be動詞
*c 接続詞
*d 限定詞
*e 名詞(対格)
*i 自動詞
*k 形容詞(対格)
*n 名詞
*p 前置詞
*t 他動詞
*x 助動詞
*y 副詞
*1 代名詞(主格)
*5 代名詞(対格)

例えばエスペラントの Mi iras al Japanio.
は 1ipn となります。

この文をタガログ語に訳した Pupunta ako sa Japan.
は i1pn です。

エスペラントの Johano estas Filipinano.
は nbn で、
タガログ語の Pilipino si Johano.
は nmn となります。

タガログ語の siは主格マーカーであって be動詞ではありません。タガログ語には be動詞に相当するものがないのです。

posted by アキラ at 23:43| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月03日

kaj を訳し分ける (1)

#1 La filo trinkas kafon kaj teon.
#2 La patrino estis juna kaj bela.
#3 Ni kantis kaj dancis.
#4 La patro trinkas kafon, kaj la patrino trinkas teon.

上の文を「トラちゃん95」は下のように訳します。

#1 息子はコーヒーと茶を飲む。
#2 母は若いそして美しかった。
#3 私達は歌ったそして踊った。
#4 父はコーヒーを飲む,そして母は茶を飲む。

#3と#4は「私達は歌い(そして)踊った」「父はコーヒーを飲み(そして)母は茶を飲む」となれば申し分ないのでしょうが、今のままでもアクセプタブルだと思います。

問題は#2で、これを合格とするのは疑問が残ります。一方、私がなでしこ版のプログラムに取り組む前に作ってみた BASIC版のプログラムは、

#1 息子はコーヒーをそして茶を飲む。
#2 母は若いそして美しいであった。

という、クオリティーのさらに低い訳文を出力します。#1は「トラちゃん95」と同じように、そして#2は「母は若く(そして)美しかった」と訳せるようプログラムを改良したいと思います。

posted by アキラ at 20:41| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月02日

学習する通訳プログラムの一例

コンピューターYが人間Xとこんなふうに対話して、ほとんど白紙の状態から語彙や文法の知識を段々と身につけていく。そんなシステムができたら面白いなと思いました。

X:通訳! Birds catch insects.
Y:birds?
X:birdoj
Y:catch?
X:kaptas
Y:insects?
X:insektoj
Y:Birdoj kaptas insektoj. こんな訳でいいですか?
X:よくない
Y:どこがよくないですか?
X:insektoj
Y:どんなふうにすればいいんですか?
X:insektojn
Y:Birdoj kaptas insektojn. これでいいですか?
X:いい
Y:次は何ですか?
X:通訳! Birds caught insects.
Y:caught?
X:kaptis
Y:Birdoj kaptis insektojn. こんな訳でいいですか?
X:いい

posted by アキラ at 19:01| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年02月01日

文法を学習するプログラム

BASICなどのプログラミングをおぼえたばかりの人が作るゲームの中に「アニマル」というのがあります。「20の扉」形式で動物の名前を当てるゲームですが、どんなものなのか具体的に知らない人はグーグルなどで「animal guessing game」というキーワードで検索すればいっぱい出てきます(私のおすすめは Braingle: Zoo Keeper Game)。

このゲームのような簡単なプログラムでも、語彙を学習するプログラムを作ることはできます。では、文法はどうでしょうか。

文法を学習して、翻訳のテクニックを少しずつ身につけていくプログラム。そういうプログラムを作るのはどれくらいむずかしいのでしょうか。


posted by アキラ at 23:27| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。