以下に添付図面を参照して、本発明に係る翻訳装置の好適な実施例について詳細に説明する。
まず、実施例1に係る翻訳装置の概要を説明する。翻訳装置は、ユーザの入力操作によって、ある言語の言葉を受け付け、翻訳エンジンによる翻訳処理を行い、処理結果として他の言語の言葉を出力する。そして、翻訳エンジンでは、翻訳対象が日本語であれば形態素解析や、翻訳対象の言葉中の単語や熟語を検索キーとした辞書検索など、従来の翻訳処理が行われている。
なお、翻訳エンジンが参照する辞書には3種類(基本辞書、専門用語辞書、ユーザ辞書)あるが、基本辞書は必ず使用され、専門用語辞書やユーザ辞書はユーザの指定により使用される仕組みとなっている。
翻訳装置において、翻訳エンジンは、翻訳システムに予め保持された辞書全体(基本辞書、専門用語辞書およびユーザ辞書)を用いて翻訳処理を行うが、当該翻訳処理によって得られる訳文の単語は、必ずしもユーザの期待通りのものとはならない。
したがって、ユーザは、訳文の単語に対して修正を行うが、ここで、翻訳装置は、訳文内の単語に対する修正を検知し、修正後の単語と、当該単語に対応する原文内の単語とを関連付けて、基本辞書、専門用語辞書およびユーザ辞書とは別に設置される辞書に登録する。
そして、翻訳エンジンが辞書全体を用いて出力する訳文に対し、上記した別に設置される辞書に基づいて修正を行っている。以下では、当該翻訳装置の具体的な構成を示し、説明を行う。
図1は、実施例1に係る翻訳装置の構成を示すブロック図である。同図に示すように、翻訳装置10は、入力部20と、受付処理部30と、表示データ記憶部40と、表示処理部50と、表示部60と、翻訳エンジン70と、辞書全体80と、翻訳反映部90と、登録処理部100と、辞書テーブル110と、を備える。
入力部20は、ユーザの入力操作を受け付け、キーボードやマウスで実現される。ユーザは、後述する表示部60に表示された出力結果を見つつ入力部20に対する入力操作を行う。当該入力操作を受け付けた入力部20は、原文となる言葉、訳文の編集指示、カーソル移動指示、翻訳実行指示などを受付処理部30に出力する。
受付処理部30は、入力部20から出力された情報や指示を処理する処理部である。具体的には、受付処理部30は、入力部20から原文となる言葉、訳文の編集指示、カーソル移動指示を受け付けると、表示データ記憶部40を更新する。また、入力部20から翻訳実行指示を受け付けると、翻訳エンジン70に出力する。
表示データ記憶部40は、表示処理部50に用いられるデータが記憶され、特に本発明に密接に関連するものとして、原文記憶部41と、翻訳結果記憶部42と、カーソル位置記憶部43と、を備える。
原文記憶部41は、受付処理部30から出力された情報である原文となる言葉が格納される。
翻訳結果記憶部42は、翻訳エンジン70による翻訳処理の結果生成される情報を記憶する。
具体的には、翻訳結果記憶部42には、図2に示すように、日本語の、これ、は、ペン、です、の単語および句点「。」と、英語の、This、is、Pen、の単語およびピリオド「.」とが格納される。
そして、上記した単語や記号には、いずれの単語と対応関係にあるかを示す単語対応情報が付加されている。例えば、「これ」には、「This」と対応関係にあることを示す情報が付加されている。同様に、「This」には、「これ」と対応関係にあることを示す情報が付加されている。
さらに、単語には、文頭からの位置を示す位置情報、何文字で構成されるかを示す文字数情報、品詞を示す品詞情報、当該単語が取得された辞書の識別情報である辞書識別情報なども付加されている。例えば、「Pen」には、文頭の「This」の「T」を0番目として順に数えた(スペースも文字として数える)場合に、8番目に位置していること、3文字で構成されていること、名詞であること、辞書全体80のうちどの辞書から検索されたことを示す情報が付加されている。
カーソル位置記憶部43は、表示部60に表示された画像中のどの位置にカーソルを表示するかを示す情報を記憶する。かかる情報は、カーソル移動指示を受け付けた受付処理部30により更新される。
表示処理部50は、表示データ記憶部40に格納されたデータに基づいて表示部60に画像を表示する。
例えば、図3に示すように、表示部60には、原文の枠内に日本語の文「これはペンです。」と、訳文の枠内に英語の文「This is Pen.」とが表示される。
また、同図に示すように、表示部60には、カーソル1やポインタ2が表示される。上述のように、ユーザはこのような画像が表示された表示部60を見つつ入力部20に対する入力操作を行い、例えば、方向キーで、現に「。」の右に位置するカーソル1を左に移動したり、マウスで、ポインタ2を「Pen」の「e」と「n」の間へ移動させた上でクリックすることでカーソル1を指示した位置に移動したりする。
翻訳エンジン70は、ある言語の言葉を、辞書全体80を用いて他の言語に翻訳する。
なお、辞書全体80は、翻訳エンジン70が翻訳時に参照する辞書全体のことを指し、例えば、互いに異なる言語であり、各々が同一の内容を表す一対の単語、あるいは、このような一対の熟語が複数格納されたものである。具体的には、辞書全体80は、基本辞書81、専門用語辞書82、ユーザ辞書83を含む。基本辞書81は翻訳エンジンから必ず参照されるが、専門用語辞書82、ユーザ辞書83はユーザの指定により参照される。また、ユーザは、基本辞書81や専門用語辞書82には単語登録できないが、ユーザ辞書83には単語登録できる。
具体的には、翻訳エンジン70は、受付処理部30から翻訳実行指示を受け取ると、原文記憶部41から原文となる言葉を読み出し、辞書全体80を用いて翻訳処理を行う。処理の結果、翻訳エンジン70は、上述したように各情報が付加された原文および訳文の単語や記号を生成し、翻訳反映部90に出力する。
翻訳反映部90は、翻訳エンジン70から出力された単語に対して辞書テーブル110を参照して処理を行うが、当該処理を説明する前に登録処理部100や辞書テーブル110の説明を行う。
登録処理部100は、修正された訳文の単語や、当該単語に対応する原文の単語を互いに関連付けて辞書テーブル110に登録する処理部であり、検知・判定部101を備える。
したがって、辞書テーブル110には、図4に示すように、原文の単語、訳文の単語、辞書識別情報、品詞情報などが関連付けられて登録される。具体的には、図4に示すように、「ペン」、「Penn(当該つづりは修正されたものである)」、「A」、「名詞」などが関連付けられて登録される。
登録処理部100は、検知・判定部101により、すでに翻訳結果記憶部42に格納された訳文に対してユーザが編集を行なったことを検知し、当該編集の終了時に単語が修正されたか否かを判断する。
具体的には、検知・判定部101により、受付処理部30から表示データ記憶部40に訳文の編集指示が出力されたことを検知すると、カーソル位置記憶部43や翻訳結果記憶部42を参照して、どの単語に対して編集が行われたかを識別する。
そして、カーソル位置の移動を監視し、カーソル位置が当該単語から離れたことでユーザによる編集が終了したと判断し、当該単語が修正されたか否かを判定する。
登録処理部100は、検知・判定部101により、ユーザによって単語が修正されたと判定すると、辞書テーブル110に対する登録処理を開始する。なお、このような判定結果に基づいて登録処理を開始するのではなく、検知後、ユーザから指示を受け付けるまで待機し、当該指示を受け付けた場合に、登録処理を開始するようにしてもよい。
図5は、登録処理部100の処理動作を説明するフローチャートであり、同図を用いて登録処理を説明する。
まず、登録処理部100は、修正が行われた訳文の単語を、翻訳結果記憶部42から取得するとともに、当該単語に付加された単語対応情報に基づいて、原文の単語も同様に取得する(ステップS110)。
そして、登録処理部100は、原文の単語を検索キーとして辞書テーブル110を検索する(ステップS120)。
検索の結果、辞書テーブル110内に原文の単語の登録がない場合には(ステップS130否定)、登録処理部100は、翻訳結果記憶部42から取得した原文の単語や訳文の単語を関連付けて辞書テーブル110に登録する(ステップS140)。
なお、さらに、単語に付加されている品詞情報や辞書識別情報を関連付けて登録するようにしてもよい。
一方、検索の結果、既に登録済みである場合には(ステップS130肯定)、登録処理部100は、辞書テーブル110内の原文の単語に関連付けられた訳文の単語を取得する(ステップS150)。
そして、登録処理部100は、辞書テーブル110から取得した訳文の単語と、翻訳結果記憶部42から取得した訳文の単語とが同一であるか否かを比較する(ステップS160)。
比較の結果、両者が異なる場合には(ステップS170否定)、登録処理部100は、辞書テーブル110内の訳文の単語を翻訳結果記憶部42から取得した訳文の単語に上書きして(ステップS180)処理を終了する。
一方、両者が同一である場合には(ステップS170肯定)、処理を終了する。
上述した登録処理は、訳文の単語を上書きすることによって訳文の単語に対する2回目以降の修正を記録していくものであるが、上書きではなく、再修正された訳文の単語を追加記録していくようにしてもよい。
図6は、その場合の登録処理部100の処理動作を説明するフローチャートであり、同図を用いて登録処理を説明する。
なお、辞書テーブル110には、図7に示すように、さらに登録日付が関連付けられて登録される。
まず、登録処理部100は、修正が行われた訳文の単語を、翻訳結果記憶部42から取得するとともに、当該単語に付加された単語対応情報に基づいて、原文の単語も同様に取得する(ステップS190)。
そして、原文の単語を検索キーとして辞書テーブル110を検索し(ステップS200)、検索結果として取得した訳文の単語のうち最新の登録日付と関連付けられた単語を選択して取得する(ステップS203)。
そして、辞書テーブル110から取得した訳文の単語と、翻訳結果記憶部42から取得した訳文の単語とが同一であるか否かを比較する(ステップS207)。
比較の結果、両者が異なる場合には(ステップS210否定)、翻訳結果記憶部42から取得した原文の単語および訳文の単語と、現在の日時情報である登録日付とを互いに関連付けて辞書テーブル110に登録し(ステップS220)、処理を終了する。
なお、上述のように、さらに、単語に付加されている品詞情報や辞書識別情報を関連付けて登録するようにしてもよい。
一方、両者が同一である場合には(ステップS210肯定)、処理を終了する。
このように、追加記録しておくことにより、言い換えれば、辞書テーブル110に更新履歴を保存することにより、例えば、2008年3月1日までに行った修正に準じて翻訳結果を得たいということも可能となる。
ところで、上述のように、単語が修正されたと判定後、直ちに登録処理を開始するのではなく、例えば、訳文の一文中のどの単語が修正されたかを識別して記憶しておく手法でもよい。そして、カーソル位置の移動を監視し、カーソル位置が文から離れた時点で登録処理を開始するようにしてもよい。
また、このようにカーソル位置に基づいて登録処理を開始するのではなく、検知後、ユーザから訳文確定の指示を受け付けるまで待機し、当該指示を受け付けた場合に、登録処理を開始するようにしてもよい。
そして、図5でステップS110〜ステップS180として示した登録処理、図6でステップS190〜ステップS220として示した登録処理は、修正が行われた全ての訳文の単語について行われる。
翻訳反映部90の説明に戻る。図8は、翻訳反映部90の処理動作を説明するフローチャートであるが、同図に示したフローチャートを参照して説明を行う。なお、同図に示した処理フローは、翻訳エンジン70から単語を受け取るたびに繰り返し実行される。
図8に示すように、まず、翻訳反映部90は、翻訳エンジン70から受け取った原文の単語のうち文頭となる単語と、当該単語に対応する訳文の単語とを選択する(ステップS230)。
そして、翻訳反映部90は、原文の単語を検索キーとして辞書テーブル110を検索する(ステップS240)。
なお、翻訳エンジン70により複合名詞が複数の名詞として区切られてしまった時など、場合に応じて検索キーを拡張して辞書テーブル110を検索するようにしてもよい。
検索の結果、辞書テーブル110内に原文の単語が登録済みである場合には(ステップS250肯定)、翻訳反映部90は、選択中の訳文の単語を、当該原文の単語に対応する訳文の単語に置き換える(ステップS260)。
なお、置き換えを実施する際、選択中の訳文の単語に対して翻訳エンジン70が付加した品詞情報を参照し、辞書テーブル110内の訳文の単語に対して当該品詞情報に応じた活用を行った上で置き換えを実施してもよい。
訳文の置換を行った後、もしくは、辞書テーブル110内に原文の単語が登録されていない場合には(ステップS250否定)、翻訳反映部90は、選択中の原文の単語が文末となる単語か否かを判断する(ステップS270)。
判断の結果、文末でない場合には(ステップS270否定)、翻訳反映部90は、原文の単語のうち現に選択中の単語の次に位置する単語と、当該単語に対応する訳文の単語とに選択を切り換え(ステップS280)、ステップS240の処理へ戻る。
一方、判断の結果、文末である場合には(ステップS270肯定)、翻訳反映部90は、翻訳エンジン70から受け取った原文および訳文の単語(訳文の単語については、場合に応じて置き換えが行われている)を翻訳結果として表示データ記憶部40に格納し(ステップS290)、処理を終了する。
ここで、図9を用いて上述した処理動作とは異なる、もう一つの処理動作を説明する。
まず、翻訳反映部90は、翻訳エンジン70から受け取った原文の単語のうち文頭となる単語を選択する(ステップS300)。
そして、原文の単語を検索キーとして辞書テーブル110を検索する(ステップS310)。
検索の結果、辞書テーブル110内に原文の単語が登録済みである場合には(ステップS320肯定)、当該原文の単語に対応する訳文の単語を辞書テーブル110から取得し、取得した訳文の単語に対して無翻訳指示情報および品詞指定情報を付加する(ステップS330)。
なお、翻訳エンジン70は、無翻訳指示情報を付加された単語を除いて翻訳処理を行う。
また、翻訳エンジン70は、品詞指定情報が付加された単語については、当該品詞指定情報が指定する品詞で翻訳処理を行う。
ここでは、品詞指定情報で指定する品詞は、選択中の原文の単語に付加された品詞情報が示す品詞とする。
処理動作の説明に戻って、翻訳反映部90は、選択中の原文の単語を、辞書テーブル110から取得した訳文の単語に置き換える(ステップS340)。
置き換えを行った後、もしくは、辞書テーブル110内に原文の単語が登録されていない場合には(ステップS320否定)、選択中の原文の単語が文末となる単語か否かを判断する(ステップS350)。
判断の結果、文末でない場合には(ステップS350否定)、原文の単語のうち現に選択中の単語の次に位置する単語に選択を切り換え(ステップS360)、ステップS310の処理へ戻る。
ステップS310の処理へ戻った後は、選択中の原文の単語を用いて同様の処理が行われる。
一方、判断の結果、文末であり、原文の単語のうちいずれか一つでも置き換えを行った場合には(ステップS350肯定、かつ、ステップS370肯定)、翻訳エンジン70から受け取った原文および訳文の単語を翻訳エンジン70に返して翻訳処理の再実行を指示する(ステップS380)。
翻訳エンジン70からは原文の単語と、当該原文の単語に対応する訳文の単語とが出力されるので、翻訳反映部90は、当該出力された単語を受け取る(ステップS390)。
そして、翻訳エンジン70から受け取った原文の単語のうち文頭となる単語と、当該単語に対応する訳文の単語とを選択する(ステップS400)。
そして、選択中の原文の単語に対する翻訳処理が無翻訳指示情報によって未実行である場合には(ステップS410否定)、選択中の訳文の単語に対し、当該訳文の単語に付加されている品詞情報に応じた活用を行う(ステップS420)。
活用を行った後、もしくは、選択中の原文の単語に対して翻訳処理が実行されている場合には(ステップS410肯定)、選択中の原文の単語が文末となる単語か否かを判断する(ステップS430)。
判断の結果、文末でない場合には(ステップS430否定)、原文の単語のうち現に選択中の単語の次に位置する単語と、当該単語に対応する訳文の単語とを選択し(ステップS440)、ステップS410の処理へ戻る。
一方、判断の結果、文末である場合、もしくは、一回も置き換えを行っていない場合には(ステップS430肯定またはステップS370否定)、翻訳反映部90は、翻訳エンジン70から受け取った原文および訳文の単語を翻訳結果として表示データ記憶部40に格納し(ステップS450)、処理を終了する。
上述してきたように、実施例1によれば、ユーザにより修正された訳語については、自動で辞書テーブル110に登録を行って以降の翻訳処理に反映する。その結果、ユーザは、ユーザ辞書に登録するために従来行っていた煩わしい作業(辞書エディタを呼び出す等)を行わなくてもよい。つまり、ユーザによるユーザ辞書の編集作業を軽減することが可能となる。
実施例1では、翻訳エンジン70の翻訳結果に対し、翻訳反映部90が辞書テーブル110を参照して処理するものであったが、実施例2では、辞書テーブル110の内容を辞書全体80に反映し、翻訳エンジン70が当該辞書全体80を参照して翻訳処理を行うものとする。
なお、通常の翻訳エンジンは、基本辞書や専門用語辞書には単語登録できないため、厳密にはユーザ辞書への反映(登録)ということになるが、基本辞書や専門用語辞書にも単語登録できる翻訳エンジンがあれば、基本辞書や専門用語辞書に反映させてもよい。
したがって、図10は、実施例2に係る翻訳装置の構成を示すブロック図であるが、同図に示すように、翻訳装置10は、辞書更新部120を新たに備え、翻訳反映部90については構成要素から除かれる。
登録処理部100は、実施例2では、修正が行われた訳文の単語や、当該単語に対応する原文の単語を互いに関連付けて辞書テーブル110に登録する場合に、更新フラグも関連付けて登録する。なお、更新フラグは、当該更新フラグに関連付けられた情報が辞書全体80に反映済みであるか否かを識別するために用いる情報である。
したがって、辞書テーブル110には、図11に示すように、原文の単語、訳文の単語、辞書識別情報、品詞情報などに加え、更新フラグが関連付けられて登録される。具体的には、図11に示すように、「ペン」、「Penn」、「A」、「名詞」、「有り」などが関連付けられて登録される。
辞書更新部120は、辞書テーブル110に登録された内容に基づいて辞書全体80を更新する。
図12は、辞書更新部120の処理動作を説明するフローチャートであり、同図を用いて具体的に説明する。なお、同図に示した処理フローは、登録処理部100によって辞書テーブル110に登録が行われるたびに繰り返し実行される。
まず、辞書更新部120は、辞書テーブル110内で更新フラグ「有り」とともに互いに関連付けられた情報を取得する(ステップS450)。
そして、辞書更新部120は、取得した情報のうち辞書識別情報が示す辞書全体80内の辞書に対し、取得した情報を用いて更新処理を行う(ステップS460)。なお、更新処理を行う場合に、必要に応じて、当該取得した情報を翻訳エンジン70の辞書形式に変換する。
更新処理後、辞書更新部120は、辞書テーブル110内で取得対象となった情報に関連付けられた更新フラグを「無し」に更新し(ステップS470)、処理を終了する。
なお、登録処理の開始を一文ごとに制御する手法では、複数の登録が行われる場合もある。その場合には、辞書テーブル110内で更新フラグ「有り」に関連付けられ、取得対象となる情報がなくなるまでループ処理を行う。
ところで、辞書更新部120が行う上記の処理を翻訳エンジン70に実行させるようにしてもよい。
その場合には、図13に示すように、辞書更新部120については構成要素から除かれ、翻訳エンジン70が、辞書テーブル110の内容を辞書全体80に反映するための辞書更新部125を備える。
実施例1では、自動翻訳結果の訳語を編集すると、辞書テーブルも自動的に更新する処理について説明したが、実施例3では、編集された訳語を原形に変換して、変換された原形を辞書テーブルに登録するものとする。
つまり、図20に示すように、実施例1の翻訳装置10では、利用者が所定の単語の翻訳結果を修正すると、すぐに辞書テーブルに反映し、次回以降の翻訳結果に反映させる。図20の例を用いて説明すると、翻訳装置10は、利用者から「Pen」を「Penn」に修正する更新操作を受け付けた場合に、すぐに修正結果を辞書テーブルに登録し、次回以降の翻訳結果に反映させる。
ところが、実施例1の翻訳装置10では、利用者が訳語の活用形を変更する編集を行った場合にも、すぐに辞書テーブルに反映され、次回以降の翻訳結果として変更された活用形が反映させてしまう。図20の例を用いて説明すると、翻訳装置10は、利用者から原形「Penn」を複数形「Penns」とする更新操作を受け付けると、すぐに辞書テーブルに反映し、次回以降の翻訳結果として変更された活用形である複数形「Penns」が訳出させてしまう。
そこで、以下の実施例3では、編集された訳語を原形に変換して、変換された原形を辞書テーブルに登録する場合として、図21〜図27を用いて、実施例3における翻訳装置10aの構成および処理について説明する。図21は、実施例3に係る翻訳装置の構成を示すブロック図である。図22は、辞書テーブルを説明するための図である。図23は、活用テーブルを説明するため図である。図24は、自動翻訳結果を修正しても辞書を更新しない例を説明するための図である。図25および図26は、登録処理部の処理動作を説明するためのフローチャートである。図27は、登録処理部の判定処理動作を説明するためのフローチャートである。
図21に示すように、翻訳装置10aは、図1に示した翻訳装置10と比較して、活用処理部102aおよび活用テーブル103aを新たに有する点が相違する。以下に、実施例3に係る翻訳装置10aの構成について各部を説明するが、実施例1と同様の構成については説明を省略する。
実施例3に係る翻訳装置10aは、実施例1と同様に、辞書テーブル110を有する。ここで、図22の例を用いて辞書テーブル110の具体的に説明する。図22に示すように、辞書テーブル110は、実施例1と同様に、原文の単語である「原語」、訳文の単語である「訳語」、辞書識別情報である「辞書名」、品詞に関する情報である「品詞」などが関連付けられて登録される。
ここで、実施例3に係る翻訳装置10aの辞書テーブル110では、「訳語」に活用語が原形の単語のみが登録および更新されるようになっている。つまり、実施例3に係る翻訳装置10aでは、以下に詳述するように、ユーザの編集結果が訳語の活用形を変更する編集を行った場合に、編集された訳語を原形に変換し、変換された原形を辞書テーブルに登録する。
登録処理部100aは、原形に変換された修正後の単語と、当該単語に対応する原文内の単語とを関連付けて辞書テーブル110に登録する処理を行うが、特に、検知・判定部101a、活用処理部102a、活用テーブル103aを有する。
活用テーブル103aは、単語ごとに、活用の種類と活用形の文字列を対応付けて記憶する。具体的には、活用テーブル103aは、図23に示すように、各単語について、単語の「品詞」、活用文字列が何の活用を表わすかを示す「活用の種類」、活用形を示す文字列である「活用文字列」を対応付けて記憶する。
図23の例を用いて説明すると、活用テーブル103aでは、図23に例示するように、品詞が「名詞」、活用の種類が「複数形語尾」、活用文字列が「s」であることを対応付けて記憶しており、「s」が名詞につく複数形語尾であることを示している。
なお、活用テーブル103aでは、図23に例示するように、活用の種類で「活用しない」と記憶されている場合に、その品詞が変化しないことを示し、活用文字列を空欄とする。また、活用テーブル103aでは、不規則活用の場合に、活用文字列に「原形→活用形」と記憶(図23の例では、「go→went」と記憶)する。
検知・判定部101aは、実施例1と同様に、すでに翻訳結果記憶部42に格納された訳文に対してユーザが編集を行なったことを検知し、当該編集の終了時に訳語が修正されたか否かを判断する。その結果、検知・判定部101aは、訳語が修正されたと判断された場合には、活用処理部102aに訳語の修正が検知された旨を通知する。
活用処理部102aは、修正が検知された場合に、修正後の単語の活用形を原形に変換する。具体的には、活用処理部102aは、検知・判定部101aから訳語の修正が検知された旨を受信すると、活用テーブル103aを参照して、修正された訳語が活用しているか判定する。
例えば、活用処理部102aは、名詞である「Penn」を「Penns」とする修正が行われた場合に、名詞の語尾に追加された「s」とマッチする活用文字列を活用テーブル103aから検索する。その結果、活用処理部102aは、活用文字列「s」に対応する活用の種類「複数形語尾」を読み出し、修正後の単語の活用形が複数形であって、修正された訳語が活用していると判定する。
そして、活用処理部102aは、修正された訳語が活用していると判定された場合には、活用テーブル103aを参照して修正された訳語の原形を推定する。上記の例を用いて説明すると、活用処理部102aは、修正された訳語「Penns」から活用形文字列「s」を除いた「Penn」を原形と推定する。なお、原形推定処理については、上記した実施例以外の公知の技術を用いて原形を推定するようにしてもよい。
その後、登録処理部100aは、活用処理部102aによって推定された原形が辞書テーブル110に登録された訳語と同一であるか判定する。この結果、登録処理部100aは、同一である場合には、辞書テーブルを更新しない。
図24を用いて具体的な例を挙げて説明すると、活用処理部102aは、ユーザが「penn」を「penns」とする修正を行った場合に、活用テーブル103aを参照して「penns」の原形が「penn」であると推定する。この場合に、その推定された原形と辞書の訳語が同じであるので、辞書テーブル110の内容を更新しない。
一方、活用処理部102aによって推定された原形が辞書テーブル110に登録された訳語と異なる場合には、翻訳結果記憶部42から取得した原文の単語および訳文の単語と、現在の日時情報である登録日付とを互いに関連付けて辞書テーブル110に登録する。
次に、図25〜図27を用いて実施例2に係る登録処理部100aの処理について説明する。図25は、登録処理部100aの処理動作を説明するフローチャートであり、同図を用いて登録処理を説明する。実施例3の登録処理部100aの処理は、図5に示した実施例1に係る登録処理部100の処理と比較して、変換された原形を辞書テーブルに登録する点が相違する。
すなわち、図25に示すように、登録処理部100aは、修正が行われた訳文の単語を、翻訳結果記憶部42から取得するとともに、当該単語に付加された単語対応情報に基づいて、原文の単語および品詞情報も同様に取得する(ステップS510)。そして、登録処理部100aは、原文の単語および品詞を検索キーとして辞書テーブル110を検索する(ステップS520)。
検索の結果、辞書テーブル110内に原文の単語および品詞の登録がない場合には(ステップS530否定)、登録処理部100aは、翻訳結果記憶部42から取得した原文の単語や訳文の単語と品詞を関連付けて辞書テーブル110に登録する(ステップS540)。
一方、検索の結果、既に登録済みである場合には(ステップS530肯定)、登録処理部100aは、辞書テーブル110内の原文の単語に関連付けられた訳文の単語を取得する(ステップS550)。そして、登録処理部100aは、辞書テーブル110から取得した訳語と、翻訳結果記憶部42から取得した訳文の原形とが同一であるか否かを判定する判定処理(後に、図27を用いて詳述)を行う(ステップS560)。
判定の結果、両者が異なる場合には(ステップS560否定)、登録処理部100aは、辞書テーブル110内の訳文の単語を翻訳結果記憶部42から取得した訳文の単語に上書きして(ステップS570)処理を終了する。一方、登録処理部100aは、両者が同一である場合には(ステップS560肯定)、処理を終了する。
続いて、再修正された訳文の単語を追加記録する追加記録処理について図26を用いて説明する。図26は、その場合の登録処理部100aの処理動作を説明するフローチャートであり、同図を用いて追加記録処理を説明する。
同図に示すように、翻訳装置10aの登録処理部100aは、修正が行われた訳文の単語を、翻訳結果記憶部42から取得するとともに、当該単語に付加された単語対応情報に基づいて、原文の単語およびその品詞も同様に取得する(ステップS610)。
そして、原文の単語と品詞を検索キーとして辞書テーブル110を検索し(ステップS620)、検索結果として取得した訳文の単語のうち最新の登録日付と関連付けられた単語を選択して取得する(ステップS630)。
続いて、登録処理部100aは、辞書テーブル110から取得した訳語と、翻訳結果記憶部42から取得した訳文の原形とが同一であるか否かを判定する判定処理(後に、図27を用いて詳述)を行う(ステップS640)。
その後、登録処理部100aは、判定の結果、両者が異なる場合には(ステップS640否定)、翻訳結果記憶部42から取得した原文の単語および訳文の単語と、現在の日時情報である登録日付とを互いに関連付けて辞書テーブル110に登録し(ステップS650)、処理を終了する。一方、両者が同一である場合には(ステップS640肯定)、処理を終了する。
続いて、登録処理部100aの判定処理(前述したS560およびS640の判定処理)の詳しい処理手順について図27を用いて説明する。同図に示すように、翻訳装置10aの登録処理部100aは、修正が行われた訳語を翻訳結果記憶部42から取得して(A)とし、辞書テーブル110から訳語を取得して(B)とする(ステップS710)。
そして、登録処理部100aは、活用テーブル103aを参照して、修正された訳語が活用しているか判定する(ステップS720)。その結果、登録処理部100aは、修正された訳語が活用していると判定された場合には(ステップS720肯定)、活用処理部102aにおいて、活用テーブル103aを参照して修正された訳語の原形を推定し、推定された訳語の原形を(C)とする(ステップS730)。
その後、登録処理部100aは、推定された原形(C)と辞書テーブル110に登録された訳語(B)とが同一であるか判定する(ステップS750)。この結果、登録処理部100aは、同一である場合には(ステップS750肯定)、前述したS560およびS640の判定結果として「Yes」を返し(ステップS760)、同一でない場合には(ステップS750否定)、前述したS560およびS640の判定結果として「No」を返す(ステップS770)。
一方、登録処理部100aは、S720において、修正された訳語が活用していないと判定された場合には(ステップS720否定)、原形を推定せずに、修正された訳語(A)を(C)とする(ステップS740)。そして、登録処理部100aは、修正された訳語(C)と辞書テーブル110に登録された訳語(B)とが同一であるか判定する(ステップS750)。
この結果、登録処理部100aは、同一である場合には(ステップS750肯定)、前述したS560およびS640の判定結果として「Yes」を返し(ステップS760)、また、同一でない場合には(ステップS750否定)、前述したS560およびS640の判定結果として「No」を返す(ステップS770)。
このように、修正が検知された場合に、修正後の単語の活用形を原形に変換し、原形に変換された修正後の単語と、当該単語に対応する原文内の単語とを関連付けて辞書テーブル110に登録する。このため、利用者が翻訳結果の修正を行った場合に、修正された単語が活用形であれば原形に変換して辞書テーブル110に登録する結果、活用形の修正が単語登録されないように、原形のみを辞書テーブル110に登録することが可能である。
さて、これまで実施例1および2に係る翻訳装置について説明したが、本発明は上述した実施例1〜3以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)〜(3)にそれぞれ区分けして異なる実施例を説明する。
(1)翻訳エンジン70の配置
上記の実施例では、翻訳装置10は、自装置が備えた翻訳エンジン70を用いて原文となる言葉に対する翻訳処理を行うものであったが、本発明はこれに限定されるものではなく、図14に示すように、ネットワーク3を介して接続された翻訳サーバ装置200が備える翻訳エンジン70を用いるようにしてもよい。
具体的に説明すると、同図に示すように、翻訳装置10は、データ送受信部130により、原文となる言葉を翻訳サーバ装置200宛てに送信する。
データ送受信部210を備えた翻訳サーバ装置200からは、各情報が付加された原文および訳文の単語や記号が送信されるので、翻訳装置10は、翻訳反映部90により、当該単語に対して処理を行う。
このように、翻訳サーバ装置200が備える翻訳エンジン70を用いる場合に、図15に示すように、さらに、翻訳反映部90と、辞書テーブル110とを翻訳サーバ装置200側に配置するようにしてもよい。
その場合には、翻訳装置10は、翻訳サーバ装置200が備える辞書テーブル110に、修正が行われた訳文の単語や、当該単語に対応する原文の単語を互いに関連付けて格納する。
翻訳装置10は、翻訳処理を要求する場合に、データ送受信部130により、原文となる言葉を翻訳サーバ装置200宛てに送信する。
翻訳サーバ装置200からは、翻訳反映部90による処理が実行された上で、上記した単語や記号が送信されるので、翻訳装置10は、そのまま表示データ記憶部40に格納する。
また、このように、翻訳サーバ装置200が備える翻訳エンジン70を用いる場合に、図16に示すように、翻訳装置10は、実施例2で説明を行った辞書更新部120により、翻訳サーバ装置200が備える辞書全体80を更新するようにしてもよい。
さらに、辞書更新部120が行う処理を、翻訳サーバ装置200が備える翻訳エンジン70に実行させるようにしてもよい。
なお、更新時には、翻訳サーバ装置200の翻訳プロセスを停止する必要があるため、時期を見計らって当該更新を行うことが望ましい。したがって、当該更新を行う手法と比較して、翻訳エンジン70の翻訳結果を翻訳反映部90が処理する手法は、システム上では翻訳サーバ装置200を止める必要がなく効率的である。
そこで、辞書更新部120による辞書全体80の更新を行わずに、翻訳エンジン70が、ネットワーク3を介して、翻訳装置10が備える辞書テーブル110にアクセスし、当該辞書テーブル110も参照して翻訳処理を行うようにしてもよい。
例えば、翻訳エンジン70は、辞書テーブル110のファイルをメモリに読み込む。そして、翻訳エンジン70は、解析処理で辞書を検索する際に、辞書テーブル110のエントリーも検索して解析処理を行う。
(2)辞書テーブル110の配置
上記の実施例では、翻訳装置10は、自装置に辞書テーブル110を備え、当該辞書テーブル110に対して登録処理部100による登録を行い、当該辞書テーブル110を参照して翻訳反映部90による処理を実行するものとしたが、本発明はこれに限定されるものではなく、図17に示すように、ネットワーク3上に辞書テーブル110を配置するようにしてもよい。
このようにすれば、各々の翻訳装置10のユーザである翻訳者が辞書テーブル110を共有することができる。そして、例えば、辞書テーブル110には、単語や辞書識別情報に加え、更新日付、更新者を記録しておく。その結果、優秀な翻訳者の登録については編集不可能にすれば(当該翻訳者のみ編集可能)、複数の翻訳者間で訳語統一作業が効率化できる。
具体的に説明すると、同図に示すように、翻訳装置10は、修正が行われた訳文の単語や、当該単語に対応する原文の単語を互いに関連付けて、ネットワーク3上の辞書テーブル110に登録する。
そして、翻訳装置10は、データ送受信部130により、原文となる言葉を翻訳サーバ装置200宛てに送信する。
データ送受信部210を備えた翻訳サーバ装置200からは、各情報が付加された原文および訳文の単語や記号が送信されるので、翻訳装置10は、翻訳反映部90により、当該単語に対する処理を行う。
その際、翻訳装置10は、ネットワーク3上の辞書テーブル110を参照して翻訳反映部90による処理を行う。
このように、ネットワーク3上に辞書テーブル110を配置する場合に、翻訳反映部90を翻訳サーバ装置200側に配置するようにしてもよい。翻訳サーバ装置200からは、翻訳反映部90による処理が実行(その際、翻訳サーバ装置200は、ネットワーク3上の辞書テーブル110を参照して翻訳反映部90による処理を行う)された上で、上記した単語や記号が送信されるので、翻訳装置10は、そのまま表示データ記憶部40に格納する。
また、このように、ネットワーク3上に辞書テーブル110を配置する場合に、図18に示すように、翻訳装置10は、実施例2で説明を行った辞書更新部120により、翻訳サーバ装置200が備える辞書全体80を更新するようにしてもよい。
具体的には、翻訳装置10は、辞書更新部120により、ネットワーク3上の辞書テーブル110にアクセスし、当該辞書テーブル110内で更新フラグ「有り」とともに互いに関連付けられた情報を取得する。
そして、翻訳装置10は、次に、辞書更新部120により翻訳サーバ装置200が備える辞書全体80にアクセスし、取得した情報のうち辞書識別情報が示す辞書全体80に対し、取得した情報を用いて更新処理を行う。
さらに、辞書更新部120が行う処理を、翻訳サーバ装置200が備える翻訳エンジン70に実行させるようにしてもよい。
なお、辞書更新部120による辞書全体80の更新を行わずに、翻訳エンジン70が、ネットワーク3を介して、ネットワーク3上の辞書テーブル110にアクセスするようにしてもよい。
(3)入力部および表示部の場所
以上に挙げた図面上では、翻訳装置10に入力部20および表示部60が直接接続されているように書かれているが、必ずしも直接接続していなくてもよく、例えばネットワークを介して接続されていてもよい。
具体的には、翻訳装置10がどこかネットワーク上で動作していて、別のコンピュータ上で動作しているウェブブラウザによって入力部および表示部を実現してもよい。この場合、入力部によって検知されたカーソルの移動やカーソル位置情報などがネットワークを通じて翻訳装置10に送信されることとなる。
最後に、本発明にかかる翻訳装置は、翻訳処理プログラムをコンピュータに実行させ、コンピュータのハードウェア資源をそれぞれの機能部として動作させることでも実施することができる。
図19は、翻訳処理プログラムを実行するコンピュータを示す図である。同図に示すように、コンピュータ300は、入力装置310、表示装置320、CPU(Central Processing Unit)330、ROM(Read Only Memory)340、RAM(Random Access Memory)350およびHDD(Hard Disk Drive)360をバス370で接続して構成される。
ここで、入力装置310は、図1に示した入力部20に対応し、表示装置320は同じく表示部60に対応する。
そして、ROM340には、上記の翻訳エンジン70、登録処理部100および翻訳反映部90それぞれと同様の機能を発揮する翻訳エンジンプログラム341、翻訳反映プログラム342および登録処理プログラム343が予め記憶されている。
CPU330は、翻訳エンジンプログラム341、翻訳反映プログラム342および登録処理プログラム343をROM340から読み出して実行することで、その機能を実現することができる。
例えば、図19に示した例では、CPU330は、ROM340から翻訳エンジンプログラム341を読み出して翻訳エンジン70を動作させており、CPU330は翻訳エンジン70と同様の動作を行うこととなる。
また、HDD360は、図19に示すように、辞書全体データ361(ユーザ辞書のデータについては任意)および辞書テーブルデータ362を格納している。この基本辞書データ361A1〜361Anおよび辞書テーブルデータ362は、CPU330によって読み出されてRAM350上に展開され、図1に示した辞書全体80および辞書テーブル110として動作する。
ところで、上記した翻訳エンジンプログラム341、翻訳反映プログラム342および登録処理プログラム343は、必ずしも最初からROM340に記憶させておく必要は無く、例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「過般用の物理媒体」、または、コンピュータ300の内外に備えられるHDDなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ300がこれらから各プログラムを読み出して実行するようにしてもよい。
以上の実施例1〜4を含む実施形態に関し、更に以下の付記を開示する。
(付記1)第1の辞書を用いた自動翻訳をコンピュータに実行させる翻訳処理プログラムであって、訳文内の単語に対する修正を検知する修正検知手順と、修正後の単語と、当該単語に対応する原文内の単語とを関連付けて第2の辞書に登録する登録手順と、前記第1の辞書および前記第2の辞書に基づく確定訳文を作成する訳文確定手順と、をコンピュータに実行させることを特徴とする翻訳処理プログラム。
(付記2)前記自動翻訳によって暫定訳文を作成する暫定訳文作成手順をさらにコンピュータに実行させ、前記訳文確定手順は、前記暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に関連付けられた優先訳語を取得し、当該原語に対応する前記暫定訳文の訳語を前記優先訳語に置き換えて前記確定訳文を作成することを特徴とする付記1に記載の翻訳処理プログラム。
(付記3)前記自動翻訳によって暫定訳文を作成する暫定訳文作成手順をさらにコンピュータに実行させ、前記訳文確定手順は、前記暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に対して無翻訳指示情報を付加して前記暫定訳文作成手順に暫定訳文の再作成を要求し、当該再作成された暫定訳文内の単語のうち無翻訳の単語の活用処理を行って前記確定訳文を作成することを特徴とする付記1に記載の翻訳処理プログラム。
(付記4)前記第2の辞書の内容に基づいて前記第1の辞書を更新する辞書更新手順をさらにコンピュータに実行させ、前記訳文確定手順は、前記辞書更新手順によって更新された前記第1の辞書に基づいて前記自動翻訳を行って前記確定訳文を作成することを特徴とする付記1に記載の翻訳処理プログラム。
(付記5)前記訳文確定手順は、前記第1の辞書と、前記第2の辞書とを用いて前記自動翻訳を行って前記確定訳文を作成することを特徴とする付記1に記載の翻訳処理プログラム。
(付記6)第1の辞書を用いた自動翻訳を翻訳サーバに要求する端末装置としてのコンピュータに実行させる翻訳処理プログラムであって、訳文内の単語に対する修正を検知する修正検知手順と、修正後の単語と、当該単語に対応する原文内の単語とを関連付けて第2の辞書に登録する登録手順と、前記第1の辞書および前記第2の辞書に基づく確定訳文を作成する訳文確定手順と、をコンピュータに実行させることを特徴とする翻訳処理プログラム。
(付記7)前記訳文確定手順は、前記翻訳サーバから暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に関連付けられた優先訳語を取得し、当該原語に対応する前記暫定訳文の訳語を前記優先訳語に置き換えて前記確定訳文を作成することを特徴とする付記6に記載の翻訳処理プログラム。
(付記8)前記訳文確定手順は、前記翻訳サーバから暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に対して無翻訳指示情報を付加して前記翻訳サーバに暫定訳文の再作成を要求し、当該再作成された暫定訳文内の単語のうち無翻訳の単語の活用処理を行って前記確定訳文を作成することを特徴とする付記6に記載の翻訳処理プログラム。
(付記9)第1の辞書を用いた自動翻訳を行うサーバ装置と、当該サーバ装置に前記自動翻訳を要求する端末とを含んで構成される翻訳システムであって、前記端末は、前記サーバ装置が出力した訳文内の単語に対する修正を検知する修正検知手段と、修正後の単語と、当該単語に対応する原文内の単語とを関連付けて前記サーバ装置が備える第2の辞書に登録する登録手段とを、備え、前記サーバ装置は、前記第1の辞書および前記第2の辞書に基づく訳文を作成する訳文作成手段を備えたことを特徴とする翻訳システム。
(付記10)第1の辞書を用いた自動翻訳を行うサーバ装置と、当該サーバ装置に前記自動翻訳を要求する端末とを含んで構成される翻訳システムであって、前記端末は、前記サーバ装置が出力した訳文内の単語に対する修正を検知する修正検知手段と、修正後の単語と、当該単語に対応する原文内の単語とを関連付けてネットワーク上の第2の辞書に登録する登録手段とを、備え、前記サーバ装置は、前記第1の辞書および前記第2の辞書に基づく訳文を作成する訳文作成手段を備えたことを特徴とする翻訳システム。
(付記11)第1の辞書を用いた自動翻訳を行う翻訳装置であって、訳文内の単語に対する修正を検知する修正検知手段と、修正後の単語と、当該単語に対応する原文内の単語とを関連付けて第2の辞書に登録する登録手段と、前記第1の辞書および前記第2の辞書に基づく確定訳文を作成する訳文確定手段と、を備えたことを特徴とする翻訳装置。
(付記12)前記自動翻訳によって暫定訳文を作成する暫定訳文作成手段をさらに備え、前記訳文確定手段は、前記暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に関連付けられた優先訳語を取得し、当該原語に対応する前記暫定訳文の訳語を前記優先訳語に置き換えて前記確定訳文を作成することを特徴とする付記11に記載の翻訳装置。
(付記13)前記自動翻訳によって暫定訳文を作成する暫定訳文作成手段をさらに備え、前記訳文確定手段は、前記暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に対して無翻訳指示情報を付加して前記暫定訳文作成手段に暫定訳文の再作成を要求し、当該再作成された暫定訳文内の単語のうち無翻訳の単語の活用処理を行って前記確定訳文を作成することを特徴とする付記11に記載の翻訳装置。
(付記14)前記第2の辞書の内容に基づいて前記第1の辞書を更新する辞書更新手段をさらに備え、前記訳文確定手段は、前記辞書更新手段によって更新された前記第1の辞書に基づいて前記自動翻訳を行って前記確定訳文を作成することを特徴とする付記11に記載の翻訳装置。
(付記15)前記訳文確定手段は、前記第1の辞書と、前記第2の辞書とを用いて前記自動翻訳を行って前記確定訳文を作成することを特徴とする付記11に記載の翻訳装置。
(付記16)第1の辞書を用いた自動翻訳を翻訳サーバに要求する翻訳装置であって、訳文内の単語に対する修正を検知する修正検知手段と、修正後の単語と、当該単語に対応する原文内の単語とを関連付けて第2の辞書に登録する登録手段と、前記第1の辞書および前記第2の辞書に基づく確定訳文を作成する訳文確定手段と、を備えたことを特徴とする翻訳装置。
(付記17)前記訳文確定手段は、前記翻訳サーバから暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に関連付けられた優先訳語を取得し、当該原語に対応する前記暫定訳文の訳語を前記優先訳語に置き換えて前記確定訳文を作成することを特徴とする付記16に記載の翻訳装置。
(付記18)前記訳文確定手段は、前記翻訳サーバから暫定訳文を取得し、前記第2の辞書に、前記暫定訳文の原文内の原語が登録されている場合には、当該原語に対して無翻訳指示情報を付加して前記翻訳サーバに暫定訳文の再作成を要求し、当該再作成された暫定訳文内の単語のうち無翻訳の単語の活用処理を行って前記確定訳文を作成することを特徴とする付記16に記載の翻訳装置。