アサハカな日英翻訳プログラムのアイデア
だいぶ前から考えているアサハカなアイデアがあるのだが、いくら考えてもあまり良いアイデアに昇華しない。
この狭い日本語圏には、きっと同じことを考えてはボツにしている人がもうひとりくらいは居るだろう。私のアイデアを晒しておこうと思う。
アイデアは「あるルールの範囲内で日本語文章を書けば正確な(読める)対訳英文が出力される」というシステム。というか翻訳ツール。
概要
オープンソースソフトウェアなどのマニュアルなど、技術的なドメインでは定型の文章が大半を占める。 よほど奇をてらったようなチュートリアルを書こうと思わない限り、使うフレーズのパターンは増えないと考える。 そこで、ある制限されたルールの範囲内で日本語文章を書けば、正確な(読める)対訳英文が出せるのではないか、というのが発端。
コンパイラ(翻訳プログラム)がルールを逸脱した文章が検出すればエラーを報告してくれれば、制限を確認しながら原文を書いていくことができる。 ※ Emacsのflymakeのようなものを使って、リアルタイムのフィードバックを見ながらシステムに文章を入力するようなイメージ。
メリット
- 翻訳ターゲットの言語の知識が無くても、翻訳後の文章の品質をツールが担保してくれる。(特に、a the on of in with などの用法が正確になる)
- あらかじめ日英両方の言語でメンテナンスしたい技術ドキュメントの原文を一元管理できる。
- 「読める」英語を書くスキルが無い人でも英語圏に向けて発信可能なドキュメントを作ることができる。
- 翻訳に人的コストが発生しない。
さらなるメリット(かなり眉唾)
日本語の原文に使える語彙や文法を限定することによって、原文の意味の解析が容易になる。それにより、英語の文章の生成だけでなく、数十言語への翻訳が可能となる。
問題点
* 解決できる課題は限定的
英語圏の人間がドキュメントを読めるようになったとしても、ドキュメントを書く人間が英語でコミュニケーションできない場合、英語のメーリングリストなどを使ってコミュニケーションを取れるようになるわけではない。
* 原文の言語は日本語のみ
例えば、英語での校正文章をフィードバックされても、日本語がソースになっているためそのまま取り込めない。
考察
このアイデアが解決する課題は非常に限定的なため、実際的な言語の壁を越えるためのツールとはなりえない。 ただし、その第一歩を踏み出すための補助ツール、翻訳の労力を削減するツール、複数言語の同期を維持管理するコストを削減するためのツールとしては十分有用と考えられる。 したがって、英語の読み書きのスキルが高い人であっても、うまく活用すれば非常に有用なツールとなる可能性がある。
まとめ
翻訳後の文章の品質をツールが担保してくれるシステムがあれば非常に有用である。 誰か作ってください。こんなツールがあれば使いたいです。
対訳コーパスを使った翻訳システムが全盛の時代に、今更このようなヒューリスティックな手法は費用対効果の観点から問題がありそう。 また、翻訳システム関連の論文を読んでいるわけではないので、似たようなことをやった論文はあるかもしれない。調べていません。あしからず…
コメント by shiro:
おもしろいアイディアですが、言語的に制限してしまうとそれはピジン日本語のような新たな方言 (および、それが翻訳される先の、独特な英語の方言) を産み出すことになって、人間の読み書きの負荷が減るかどうか疑問です。
翻訳ツールが訳しにくい部分、解釈しきれない部分をon the flyで指摘してくれて、対話的に解決できる (例えば曖昧な文脈にアノテーションをつけるなど) ようなツールならいいかも。人工言語のように制限内/外というのを厳密に判断するのではなくて、何らかのヒューリスティックに基づいた翻訳評価関数があって、そのスコアが低い場合に注意してくれる、というような。
コメント by kiyoka:
コメント頂けて嬉しいです。どなたからも反応ないだろうなと思っていたので。^_^
ピジン日本語をWikipediaで調べてみたら、「私、中国人あるね。」のような方言のことですね。ぎりぎり通じる中国語脳にやさしい日本語表現みたいな。ちがうかな。 確かに、翻訳ツールのコンパイルエラーを回避するために原文をいろいろこねくりまわしていたら、結果的にそういうバッドノウハウ的な日本語ライティングテクニックが見つかって、とりあえず「やりすごす」みたいなことが頻発しそうです。その結果、日本語版のマニュアルはちょっと違和感のある文章が混在している、とかはありそうです。 このコンパイルエラー回避で試行錯誤する時間と、変な日本語を読む負荷を考えると結構キビシいかもです。 さすが実際に翻訳をされたり、日英両方のドキュメントをメンテし続けていらっしゃる方ならではの鋭い指摘です。 時々、日本人でも英語の訳文のような文体の方がいますが、(私もちょっとそういう感じかも)それと似た、書き言葉としての方言が発生するような状況が予想できます。
shiroさんの案のように、評価関数のスコアの閾値で注意してくれるというのは良さそうですね。私の案は自然言語を、まるでプログラミング言語のようにパースできるものとして扱う前提になっています。
いつかは、自然言語処理や機械翻訳を研究されている方々が技術を前進させてくれて、私の要望に近い翻訳ツールが出てくるといいなと思っていますが、それはいつごろなのでしょうね。 自分で作るのはきっとムリなので期待して待ちたいと思います。
コメント by shiro:
プログラミング言語のように形式的に言語を決めてマニュアルを書くってことは、そのマニュアルの内容を(翻訳が可能な程度に)コンピュータが理解できる意味論も定義されるってことで、ということは結局新しい仕様記述言語を作っているのと変わらないんじゃないかって気がします。それならそういう言語の構文とセマンティクスを定めてやれば、いちいち翻訳するよりその言語を人間が直接読んで理解する方が速いし正確だ、ってことになりそうな。
コメント by kiyoka:
なるほど、翻訳原文用の仕様記述言語を作ったほうが、目的を達成する近道になりそうというということですね。
確かにそんな気がします。
意味論まで定義しようとすると、原文が自然言語ではかなり効率が悪そうです。
達成したい目的から考えるとやりかたはいろいろありそうですね。
コメント by shiro:
おもしろいアイディアですが、言語的に制限してしまうとそれはピジン日本語のような新たな方言 (および、それが翻訳される先の、独特な英語の方言) を産み出すことになって、人間の読み書きの負荷が減るかどうか疑問です。
翻訳ツールが訳しにくい部分、解釈しきれない部分をon the flyで指摘してくれて、対話的に解決できる (例えば曖昧な文脈にアノテーションをつけるなど) ようなツールならいいかも。人工言語のように制限内/外というのを厳密に判断するのではなくて、何らかのヒューリスティックに基づいた翻訳評価関数があって、そのスコアが低い場合に注意してくれる、というような。
コメント by kiyoka:
コメント頂けて嬉しいです。どなたからも反応ないだろうなと思っていたので。^_^
ピジン日本語をWikipediaで調べてみたら、「私、中国人あるね。」のような方言のことですね。ぎりぎり通じる中国語脳にやさしい日本語表現みたいな。ちがうかな。 確かに、翻訳ツールのコンパイルエラーを回避するために原文をいろいろこねくりまわしていたら、結果的にそういうバッドノウハウ的な日本語ライティングテクニックが見つかって、とりあえず「やりすごす」みたいなことが頻発しそうです。その結果、日本語版のマニュアルはちょっと違和感のある文章が混在している、とかはありそうです。 このコンパイルエラー回避で試行錯誤する時間と、変な日本語を読む負荷を考えると結構キビシいかもです。 さすが実際に翻訳をされたり、日英両方のドキュメントをメンテし続けていらっしゃる方ならではの鋭い指摘です。 時々、日本人でも英語の訳文のような文体の方がいますが、(私もちょっとそういう感じかも)それと似た、書き言葉としての方言が発生するような状況が予想できます。
shiroさんの案のように、評価関数のスコアの閾値で注意してくれるというのは良さそうですね。私の案は自然言語を、まるでプログラミング言語のようにパースできるものとして扱う前提になっています。
いつかは、自然言語処理や機械翻訳を研究されている方々が技術を前進させてくれて、私の要望に近い翻訳ツールが出てくるといいなと思っていますが、それはいつごろなのでしょうね。 自分で作るのはきっとムリなので期待して待ちたいと思います。
コメント by shiro:
プログラミング言語のように形式的に言語を決めてマニュアルを書くってことは、そのマニュアルの内容を(翻訳が可能な程度に)コンピュータが理解できる意味論も定義されるってことで、ということは結局新しい仕様記述言語を作っているのと変わらないんじゃないかって気がします。それならそういう言語の構文とセマンティクスを定めてやれば、いちいち翻訳するよりその言語を人間が直接読んで理解する方が速いし正確だ、ってことになりそうな。