(57)【要約】【課題】入力文字列に対して置換処理を実行することにより文字位置が変化した場合でも、置換前の入力文字列の文字位置を得ることができる。【解決手段】文字列処理装置１０は、第１の部分文字列を第２の部分文字列に置換する予め定められた置換ルールの集合に基づいて、前記置換ルールに従って入力文字列に含まれる前記第１の部分文字列を前記第２の部分文字列に置換すると共に、置換前の前記入力文字列における前記第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の前記入力文字列における前記第２の部分文字列の文字位置情報及び長さ情報を生成して付与する置換部１４を含む。【選択図】図１
2015095182.tif 000002
【特許請求の範囲】
【請求項１】
第１の部分文字列を第２の部分文字列に置換する予め定められた置換ルールの集合に基づいて、前記置換ルールに従って入力文字列に含まれる前記第１の部分文字列を前記第２の部分文字列に置換すると共に、置換前の前記入力文字列における前記第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の前記入力文字列における前記第２の部分文字列の文字位置情報及び長さ情報を生成して付与する置換部
を含む文字列処理装置。
【請求項２】
前記置換ルールにおける前記第１の部分文字列は、空文字を含み、
前記置換部は、
前記入力文字列を文字単位で分割した各文字に対して、前記入力文字列の先頭の文字位置を０として前記文字の文字位置を示す前記文字位置情報と、前記入力文字列の各文字の長さを１とする前記長さ情報と、を生成する情報生成部と、
前記置換ルールに従って置換される前記第１の部分文字列が空文字の場合、置換された前記第２の部分文字列の各文字の前記文字位置情報を０として生成し、且つ、前記第２の部分文字列の各文字の前記長さ情報を０として生成し、前記置換ルールに従って置換される前記第１の部分文字列が空文字ではない場合、置換された前記第２の部分文字列の各文字の前記文字位置情報を前記第１の部分文字列の各文字の前記文字位置情報の最小値として生成し、且つ、前記第２の部分文字列の各文字の前記長さ情報を前記第１の部分文字列の長さとして生成する文字列処理部と、
を含む請求項１記載の文字列処理装置。
【請求項３】
置換部を含む文字列処理装置において実行される文字列処理方法であって、
前記置換部が、第１の部分文字列を第２の部分文字列に置換する予め定められた置換ルールの集合に基づいて、前記置換ルールに従って入力文字列に含まれる前記第１の部分文字列を前記第２の部分文字列に置換すると共に、置換前の前記入力文字列における前記第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の前記入力文字列における前記第２の部分文字列の文字位置情報及び長さ情報を生成して付与するステップ
を含む文字列処理方法。
【請求項４】
コンピュータを、請求項１又は請求項２記載の文字列処理装置の各部として機能させるための文字列処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列処理装置、方法、及びプログラムに係り、特に、機械翻訳における翻訳前の文字列を処理する文字列処理装置、方法、及びプログラムである。
【背景技術】
【０００２】
従来から、或る自然言語の文章を別の自然言語の文章へコンピュータプログラムを用いて機械的に変換する機械翻訳の技術が知られている。また、近年では、統計モデルを用いて自動的に機械翻訳を実現する統計的機械翻訳が知られている（例えば非特許文献１参照）。
【０００３】
統計的機械翻訳においては、例えば英語の文章から日本語の文章への翻訳を行った場合に、翻訳結果である日本語の文章の各文字の文字位置が、翻訳前の英語の文章のどの文字位置に対応しているのかを知りたいという要求は多々ある。
【０００４】
また、統計的機械翻訳では、数式や化学式、長い固有名詞等を、翻訳前処理において仮想単語に変換したり、冠詞を削除したりする置換処理を行うことが一般的に行われている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】P.Koehn et al. 2007. "Moses: Open Source Toolkit for Statistical Machine Translation"
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一般的な統計的機械翻訳では、翻訳前後のフレーズ対応をするだけであるため、翻訳対象である入力文に対して上記の翻訳前処理を実行することにより文字位置が変化してしまうと、翻訳後の翻訳文に対して入力文の文字位置を対応付けることが困難となる。
【０００７】
本発明は、上記の事情に鑑みてなされたもので、入力文字列に対して置換処理を実行することにより文字位置が変化した場合でも、置換前の入力文字列の文字位置を得ることができる文字列処理装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の文字列処理装置は、第１の部分文字列を第２の部分文字列に置換する予め定められた置換ルールの集合に基づいて、前記置換ルールに従って入力文字列に含まれる前記第１の部分文字列を前記第２の部分文字列に置換すると共に、置換前の前記入力文字列における前記第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の前記入力文字列における前記第２の部分文字列の文字位置情報及び長さ情報を生成して付与する置換部を含む。
【０００９】
また、前記置換部は、前記置換ルールにおける前記第１の部分文字列は、空文字を含み、前記入力文字列を文字単位で分割した各文字に対して、前記入力文字列の先頭の文字位置を０として前記文字の文字位置を示す前記文字位置情報と、前記入力文字列の各文字の長さを１とする前記長さ情報と、を生成する情報生成部と、前記置換ルールに従って置換される前記第１の部分文字列が空文字の場合、置換された前記第２の部分文字列の各文字の前記文字位置情報を０として生成し、且つ、前記第２の部分文字列の各文字の前記長さ情報を０として生成し、前記置換ルールに従って置換される前記第１の部分文字列が空文字ではない場合、置換された前記第２の部分文字列の各文字の前記文字位置情報を前記第１の部分文字列の各文字の前記文字位置情報の最小値として生成し、且つ、前記第２の部分文字列の各文字の前記長さ情報を前記第１の部分文字列の長さとして生成する文字列処理部と、を含む構成としてもよい。
【００１０】
また、本発明の文字列処理方法は、置換部を含む文字列処理装置において実行される文字列処理方法であって、前記置換部が、第１の部分文字列を第２の部分文字列に置換する予め定められた置換ルールの集合に基づいて、前記置換ルールに従って入力文字列に含まれる前記第１の部分文字列を前記第２の部分文字列に置換すると共に、置換前の前記入力文字列における前記第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の前記入力文字列における前記第２の部分文字列の文字位置情報及び長さ情報を生成して付与するステップを含む。
【００１１】
また、本発明の文字列処理プログラムは、コンピュータを、請求項１又は請求項２記載の文字列処理装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１２】
以上説明したように、本発明の文字列処理装置、方法、及びプログラムによれば、入力文字列に対して置換処理を実行することにより文字位置が変化した場合でも、置換前の入力文字列の文字位置を得ることができる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態に係る文字列処理装置の機能的な構成例を示すブロック図である。
【図２】置換前文字列、文字位置情報、及び長さ情報の一例を示す図である。
【図３】置換後文字列、文字位置情報、及び長さ情報の一例を示す図である。
【図４】置換前文字列、文字位置情報、及び長さ情報の一例を示す図である。
【図５】置換後文字列、文字位置情報、及び長さ情報の一例を示す図である。
【図６】本実施の形態における文字列処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
＜発明の概要＞
まず、本発明の実施の形態の概要について説明する。
本実施の形態では、翻訳前処理として、入力文としての置換前文字列に含まれる第１の部分文字列を第２の部分文字列に置換する。この際、第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の第２の部分文字列の文字位置情報及び長さ情報を生成して付与する。これにより、翻訳対象である入力文に対して翻訳前処理を実行することにより文字位置が変化した場合でも、翻訳後の翻訳文に対して入力文の文字位置を適切に対応付けることを可能にする。
【００１５】
＜システム構成＞
本実施の形態に係る文字列処理装置１０は、入力部１２、置換部１４、及び出力部１６を備えている。
【００１６】
入力部１２は、翻訳対象の入力文の入力を受け付ける。入力部１２は、例えばキーボード、マウス、記憶装置等の入力機器により実現される。
【００１７】
置換部１４は、機能的には、置換ルール記憶部１８、情報生成部２０、及び文字列処理部２２を含む。置換部１４は、例えばＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、後述する文字列処理ルーチンを実行するための文字列処理プログラム及び置換ルールを記憶したＲＯＭ（Read Only Memory）と、を備えたコンピュータにより実現される。なお、ＲＯＭに代えて不揮発性メモリを用いてもよい。
【００１８】
置換ルール記憶部１８は、統計的機械翻訳の前処理として、翻訳対象の入力文に含まれる第１の部分文字列を第２の部分文字列に置換する際のルールが記述された置換ルールの集合を記憶する。なお、本実施の形態における「文字」には、ローマ字、漢字等の各国の言語を表す文字だけでなく、数字及び記号も含む。また、「部分文字列」は、１文字の場合も含む。また、「部分文字列」は、空文字も含む。なお、以下では、入力部１２により入力された入力文を翻訳前文字列といい、翻訳前文字列が置換ルールに従って置換された文字列を置換後文字列という場合がある。
【００１９】
本実施の形態では、２つの置換ルールについて説明する。例えば第１の置換ルールは、「入力文の文末に特定文字が存在しない場合は、文末に特定文字を挿入する。挿入した特定文字の文字位置情報は“０”、挿入した特定文字の長さ情報は“０”とする。」というものである。
【００２０】
特定文字は、例えば「．」、「。」のように、通常は文末に記述される終止符（ピリオド）を表す文字である。なお、第１の置換ルールは、換言すれば、置換前文字列の最後の空文字（第１の部分文字列）を特定文字（第２の部分文字列）に置換するルールともいえる。
【００２１】
また、例えば第２の置換ルールは、「記号及び数字の少なくとも一方が連続する特定文字列は、仮想単語に置換する。挿入した仮想単語の各文字の文字位置情報は全て、特定文字列の最小の文字位置情報と同一とする。挿入した仮想単語の各文字の長さ情報は全て、（特定文字列の最後の文字の文字位置＋当該最後の文字の長さ−特定文字列の各文字の文字位置のうち最小の文字位置）とする。」というものである。
【００２２】
仮想単語は、例えば特定文字列が数字及び算術記号を含む数式の場合には、「スウシキ」等の単語である。なお、（特定文字列の最後の文字の文字位置＋当該最後の文字の長さ−特定文字列の各文字の文字位置のうち最小の文字位置）は、換言すれば、特定文字列の長さである。
【００２３】
情報生成部２０は、入力部１２により入力された入力文、すなわち置換前文字列を文字単位に分割し、分割した各文字に対して文字位置情報及び長さ情報を生成して付与する。例えば図２に示すように、置換前文字列が「Ｔｈｉｓ  ｉｓ  ａ  ｐｅｎｃｉｌ」の場合、空文字（スペース）を含めて１６文字で構成されるため、１６個の文字に分割する。そして、置換前文字列の先頭の文字（左端の文字）に対しては、文字位置を“０”とした文字位置情報を生成し、最後の文字（右端の文字）に向かって１文字進む毎に、文字位置を１つずつ加算した文字位置情報を各文字に対して生成する。これにより、図２に示すように、最初の文字である「Ｔ」には文字位置情報として“０”が生成され、最後の文字である「ｌ」には、文字位置情報として“１５”が生成される。また、長さ情報は、図２に示すように、全ての文字に対して“１”が生成される。
【００２４】
文字列処理部２２は、置換ルール記憶部１８に記憶された置換ルールに基づいて、入力部１２により入力された置換前文字列を置換する。例えば、図２に示す「Ｔｈｉｓ  ｉｓ  ａ  ｐｅｎｃｉｌ」のように、翻訳前文字列の文末に特定文字としてのピリオドが存在しない文章は、第１の置換ルールに従い、図３に示す「Ｔｈｉｓ  ｉｓ  ａ  ｐｅｎｃｉｌ．」のように、最後にピリオドを挿入する。すなわち、置換前文字列の最後の空文字（第１の部分文字列）を特定文字（第２の部分文字列）に置換する。
【００２５】
また、文字列処理部２２は、図３に示すように、挿入された特定文字としてのピリオドに対して、文字位置情報として“０”、長さ情報として“０”を生成して付与する。
【００２６】
また、例えば、図４に示すように、「２＋３＝５」等の数式を表す特定文字列（第１の部分文字列）を含む文章は、第２の置換ルールに従い、図５に示すように特定文字列を「スウシキ」のような仮想単語（第２の部分文字列）に置換する。
【００２７】
また、特定文字列の最後の文字である「５」の文字位置は“４”であり、特定文字列の最後の文字である「５」の長さは“１”であり、特定文字列の各文字の文字位置のうち最小の文字位置、すなわち特定文字列の最初の文字である「２」の文字位置は“０”である。このため、文字列処理部２２は、仮想単語の各文字に対して、文字位置情報として“０”、長さ情報として“５”（＝４＋１−０）を生成する。すなわち、仮想単語の各文字の長さ情報を特定文字列の長さと同一とする。
【００２８】
このように、文字列処理部２２は、置換される第１の部分文字列が空文字の場合、置換された第２の部分文字列の各文字の文字位置情報を“０”、各文字の長さ情報を“０”として生成し付与する。一方、置換される第１の部分文字列が空文字ではない場合、置換された第２の部分文字列の各文字の文字位置情報を第１の部分文字列の文字位置情報の最小値とし、各文字の長さ情報を第１の部分文字列の長さとして生成し付与する。
【００２９】
＜文字列処理装置の作用＞
次に、図６を参照して、本実施の形態に係る文字列処理装置１０において実行される文字列処理ルーチンについて説明する。
【００３０】
ステップＳ１００では、翻訳対象の文字列の入力を受け付ける。本実施の形態では、一例として入力された文字列が英語の文字列であり、この英語の文字列を第１の置換ルール及び第２の置換ルールにより置換する場合について説明する。
【００３１】
ステップＳ１０２では、ステップＳ１００で入力された入力文を文字単位に分割し、分割した各文字の文字位置を表す文字位置情報及び文字の長さを表す長さ情報を生成して付与する。例えば図２に示すように、置換前文字列としての入力文が「Ｔｈｉｓ  ｉｓ  ａ  ｐｅｎｃｉｌ」の場合、１６個の文字に分割され、各文字に対して図２に示すような文字位置情報及び長さ情報が生成される。
【００３２】
ステップＳ１０４では、置換ルール記憶部１８に記憶された置換ルールの集合に基づいて、置換前文字列を置換する。また、置換される第１の部分文字列が空文字の場合、置換された第２の部分文字列の各文字の文字位置情報を“０”、各文字の長さ情報を“０”とする。一方、置換される第１の部分文字列が空文字ではない場合、置換された第２の部分文字列の各文字の文字位置情報を第１の部分文字列の文字位置情報の最小値とし、各文字の長さ情報を第１の部分文字列の長さとする文字列処理を行う。
【００３３】
例えば置換前文字列が図２に示すような文字列の場合、文末にピリオドが存在しない。このため、第１の置換ルールに従い、図３に示すように、置換前文字列の最後にピリオドを追加する。すなわち、置換前文字列の最後の空文字（第１の部分文字列）を特定文字（第２の部分文字列）に置換する。
【００３４】
そして、置換される第１の部分文字列は空文字であるため、置換された第２の部分文字列としてのピリオドに対して、文字位置情報として“０”、長さ情報として“０”を生成する。
【００３５】
なお、図２に示す置換前文字列は、記号及び数字の少なくとも一方が連続する文字列を含まないため、第２の置換ルールによる置換は行われない。
【００３６】
また、例えば置換前文字列が図４に示すような文字列の場合、文末にピリオドが存在するため、第１の置換ルールに基づく置換は行われない。一方、図４に示す文字列は、記号及び数字の少なくとも一方が連続する特定文字列（第１の部分文字列）としての数式「２＋３＝５」を含むため、第２の置換ルールに従い、上記数式は仮想単語（第２の部分文字列）としての「スウシキ」に置換される。
【００３７】
また、置換される第１の部分文字列としての数式は空文字ではないため、置換された第２の部分文字列としての「スウシキ」の各文字に対して、文字位置情報として“０”、長さ情報として“５”を生成する。
【００３８】
ステップＳ１０６では、ステップＳ１０４により置換された置換後文字列を後段の翻訳装置へ出力する。後段の翻訳装置は、例えば置換後文字列に対して他の言語への変換、すなわち翻訳を行う装置である。
【００３９】
このように、本実施の形態によれば、翻訳前処理として、入力文としての置換前文字列に含まれる第１の部分文字列を第２の部分文字列に置換した場合であっても、第１の部分文字列の文字位置情報及び長さ情報に基づいて、置換後の第２の部分文字列の文字位置情報及び長さ情報が生成される。このため、翻訳対象である入力文に対して翻訳前処理を実行することにより文字位置が変化した場合でも、翻訳後の翻訳文に対して入力文の文字位置を適切に対応付けることができる。
【００４０】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００４１】
例えば、第２の置換ルールにおける第１の部分文字列は数式に限らず、化学式や予め定めた長さ以上の固有名詞でもよい。また、置換ルールは上述した第１の置換ルール及び第２の置換ルールに限られるものではなく、他の置換ルールを記憶しておいてもよい。
【００４２】
また、上述の文字列処理装置１０は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００４３】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体、例えばＣＤ−ＲＯＭやメモリーカード等に格納して提供することも可能である。
【符号の説明】
【００４４】
１０   文字列処理装置
１２   入力部
１４   置換部
１６   出力部
１８   置換ルール記憶部
２０   情報生成部
２２   文字列処理部
【図１】
2015095182.tif 000003
【図２】
2015095182.tif 000004
【図３】
2015095182.tif 000005
【図４】
2015095182.tif 000006
【図５】
2015095182.tif 000007
【図６】
2015095182.tif 000008