以下に、図面を参照しつつ、本発明の一実施の形態である携帯型翻訳機について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。
図1に、本実施の形態の携帯型翻訳機の機能を説明するための模式的な図を示す。
図1を参照して、携帯型翻訳機1は、たとえば、日本語で会話を行なうユーザ901によって、日本語以外の言語で会話をする会話相手902と会話をするために利用される。なお、本明細書では、翻訳を必要とする日本語以外の言語の一例として英語を挙げるが、本発明に従った携帯型翻訳機が訳文を出力する際の翻訳先の言語は英語に限定されない。
携帯型翻訳機1は、ユーザ901または会話相手902からの情報の入力の受付およびユーザ901または会話相手902への情報の出力を行なう会話エンジン101と、会話エンジン101が出力する情報を制御する情報処理エンジン102とを含む。
具体的には、会話エンジン101は、日本文認識・補正機能101A、英文認識・補正機能101B、および、会話例作成機能101Cを有する。
日本文認識・補正機能101Aは、ユーザ901によって入力された日本語の音声の認識および認識結果の補正を行なう機能である。英文認識・補正機能101Bは、会話相手902によって入力された音声、つまり、会話相手902が発した音声の認識および認識結果の補正を行なう機能である。会話例作成機能101Cは、GPS(Global Positioning System)910から得た現在位置等に基づいて得られた携帯型翻訳機1の現在位置についての詳細な情報に基づき、ユーザ901に対して、会話例を提示する機能である。
本明細書では、特に携帯型翻訳機1の会話例作成機能101Cについて説明する。なお、携帯型翻訳機1における会話例作成機能101Cは、後述するように、会話事例データベース(以下、「データベース」を「DB」と略す。)104、翻訳・辞書DB105、情報テーブル106、位置履歴DB107、会話履歴DB108が適宜参照されて実現される。
表1に、会話事例DB104に記憶されているデータ(会話事例テーブル)の一例を示す。
表1を参照して、会話事例テーブルでは、各会話例について、当該会話例が出力されると考えられるお店の種類、当該お店で扱われる商品の分類、キーワード、分類の重み、および、会話例の各フィールドに対応した値が定義されている。なお、表1では、1つの会話例についてのテーブルを示した。会話事例DB104には、複数の会話例について、表1と同様の情報がテーブル形式で記憶されている。会話事例DB104では、複数の会話例のそれぞれについて、表1に示されたような情報が記憶されている。会話事例テーブルは、予め携帯型翻訳機1内に登録されている情報である。
図2は、携帯型翻訳機1のハードウェア構成を示す図である。
図2を参照して、携帯型翻訳機1は、当該携帯型翻訳機1の動作を全体的に制御する制御部10を備えている。制御部10は、CPU(Central Processing Unit)を含む。また、携帯型翻訳機1は、ユーザが情報を入力する入力部11と情報を表示する表示部12を含む。入力部11は、ボタン、表示部12に表示されるタッチキーやタッチパネル、および/または、音声を入力するマイクを含み、また、音声を出力するためのD/A変換部13、出力アンプ14、スピーカ15を含む。
また、携帯型翻訳機1は、複数の言語の会話の例文および所定の言語対の辞書データおよび例文を記憶する辞書データ記憶部16、会話の例文の音声データを記憶する音声データ記憶部17、種々の情報を記憶する情報記憶部18、および、インターネット等のネットワーク上のサーバやGPS衛星と通信を行なう通信部19を含む。
なお、本実施の形態では、携帯型翻訳機1が自機の位置情報をGPS衛星と通信することによって取得するように記載されているが、携帯型翻訳機1が自機の位置情報を取得する方法はこれに限定されない。建物や店頭に設置される電灯やLED(Light Emitting Diode)の点滅パターンの中に位置情報を埋め込み、当該電灯やLEDが発する光を通信部19が受光させ、そして、当該通信部19が受けた光のパターンを解析する、という方法によって携帯型翻訳機1が自機の位置情報を取得しても良い。
情報記憶部18に格納されている情報には、制御部10が実行する処理のプログラム、会話事例DB104、情報テーブル106、位置履歴DB107、および、会話履歴DB108が含まれる。辞書データ記憶部16に格納されている情報には、翻訳・辞書DB105が含まれる。
携帯型翻訳機1では、制御部10が情報記憶部18に格納されるプログラムを適宜実行することによって、会話エンジン101および情報処理エンジン102が実現される。
携帯型翻訳機1は、所定時間ごとに当該携帯型翻訳機1の位置情報を位置履歴DB107に格納する。また、携帯型翻訳機1は、会話履歴DB108に、当該携帯型翻訳機1が出力した会話履歴を、その時点で位置履歴DB107に格納されている位置情報の中から新しい方の4つの位置情報とともに記憶している。ここで、位置情報の履歴として格納される履歴の個数は、必ずしも4に限られず、4以上または4未満のいずれであっても良い。そして、携帯型翻訳機1は、ユーザから会話文の出力を要求されると、その時点で位置履歴DB107に格納されている位置情報の履歴と、会話履歴DB108に記憶されている各会話文と関連付けられている位置情報の履歴とを比較することによって、出力する会話文を決定することができる。会話履歴DB108に記憶されているデータ(会話履歴テーブル)の一例を表2に示す。
表2を参照して、会話履歴DB108には、各会話例が、当該会話例が携帯型翻訳機1から出力されたときの携帯型翻訳機1の位置情報から特定されるお店の種類と、当該お店の名前と、当該お店の住所と、当該会話例が出力された日時と、当該会話例が出力された時点での携帯型翻訳機1の位置情報の履歴(位置履歴(1)〜位置履歴(4))と関連付けられて記憶されている。位置履歴(1)は、当該会話例が出力された時点での携帯型翻訳機1における最も新しい位置情報の履歴であり、また、位置履歴(2)〜(4)は、それぞれ2〜4番目に新しい位置情報の履歴である。本実施の形態では、会話履歴DB108に記憶される位置情報の履歴の一例としてお店の種類(「デパート」「スーパー」等)の履歴が記憶されているが、位置情報の履歴として記憶される情報はお店の種類に限定されない。たとえば、住所や店舗の名前や緯度と経度の組み合せであっても良い。
表3に、位置履歴DB107に記憶されているデータ(位置履歴テーブル)の一例を示す。
表3を参照して、位置履歴テーブルでは、位置情報(表3中では「Place01」等で記載)が履歴番号に関連付けられて記憶されている。履歴番号とは、携帯型翻訳機1の位置情報として新しい順に番号が付けられている。つまり、たとえば表3に示された例は、携帯電話機1が「Place04」→「Place03」→「Place02」→「Place01」の順に移動してきたことを意味する。また、位置履歴テーブルに記憶される位置情報の履歴は、会話履歴DB108に記憶される位置情報の履歴と同様に、たとえばお店の種類(「デパート」「スーパー」等)の履歴が記憶されるが、位置情報の履歴として記憶される情報はお店の種類に限定されない。たとえば、住所や店舗の名前や緯度と経度の組み合せであっても良い。
なお、上記したように、位置履歴テーブルの記憶内容は、たとえば、所定時間ごとに更新される。たとえば、位置履歴テーブルが表3に示された状態であって、携帯型翻訳機1が「Place00」で位置情報を表される位置にあるときに位置履歴テーブルが更新される場合、更新後の位置履歴テーブルは、表4に示されるようなものとなる。
表4では、表3において履歴番号が「1」〜「4」に記憶されていた位置情報が繰り下がって「2」〜「5」に記憶されている。そして、表4では、履歴番号「1」に対応する位置情報としてその時点での携帯型翻訳機1の位置情報である「Place00」が記憶されている。
図3は、携帯型翻訳機1において、当該携帯型翻訳機1の位置に応じた会話例が出力される際に制御部10が実行する処理のフローチャートである。
図3を参照して、制御部10は、まずステップS101で、通信部19にGPS衛星と通信させることにより、自機の位置情報を取得する。なお、上記したように、自機の位置情報を取得する方法は、GPS衛星との通信に限定されない。
次に、ステップS102で、制御部10は、現在位置の<建物情報>を取得する。なお、ステップS102の処理内容を、当該処理のサブルーチンのフローチャートである図4を参照して詳細に説明する。
図4を参照して、制御部10は、ステップS201で、通信部19を介してネットワークに接続することにより、当該ネットワーク上の地図情報等を提供するサーバから、ステップS101で取得した現在位置に基づいて現在位置を中心とした地図情報と当該地図内に含まれる建物の名前を取得し、地図情報を表示部12に表示させる。
なお、制御部10は、ここで、地図情報および地図内に含まれる建物の名前等の情報を、ネットワーク上のサーバからだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)から取得しても良い。
また、制御部10は、地図情報を表示する代わりに、GPS910から取得した現在位置の情報から周辺に存在する施設の名称を判断することによって得た周辺施設の名称等のリストを表示させても良い。
次に、制御部10は、ステップS202で、ユーザに自機を使用している場所を地図上で選択させ、選択した情報の入力を受付ける。ここで、ユーザが選択する情報としては、たとえば、地図上の建物の名称が挙げられる。
次に、制御部10は、ステップS203で、ステップS202でユーザが選択した情報によって特定される場所(建物)が、2つ以上の建物情報(店舗等の情報)に対応するかどうかを判断し、対応すると判断した場合にはステップS204で、当該2つ以上の建物情報を表示部12に表示させる。一方、ない場合には、制御部10はステップS220に処理を進める。
なお、情報記憶部18に記憶されるデータベースには、場所または建物と、それに対応する建物情報(店舗等)とが、互いに関連付けられて記憶されているものが含まれる。具体的には、たとえば、情報記憶部18には、あるビルと、当該ビルに入っているすべての店舗の名称とが互いに関連付けられて記憶されていたり、または、ある地域の名称と当該地域内に存在する建物の名称とが互いに関連付けられて記憶されている。そして、制御部10は、上記のデータベースを参照することにより、ステップS203における判断を行なう。
ステップS204で建物情報を表示した後、制御部10は、ステップS205で、ユーザからの、複数の建物情報の中から1つの建物情報を選択する情報の入力を受付け、ステップS220に処理を進める。なお、ステップS204で表示される建物情報は、たとえば、複数の建築物の名前であっても良いし、同じ建築物内の異なる複数の店舗の名称であっても良い。
ステップS220では、制御部10は、ステップS203からステップS205の処理によって、後述する建物情報テーブルの名前のフィールドにセットする建物の情報(店名)が得られたか否かを判断し、得られたと判断するとステップS221へ、得られていないと判断するとステップS222へ、それぞれ処理を進める。なお、ステップS220では、制御部10は、具体的には、ステップS202において選択された情報によって特定される場所に対して1つの建物情報が対応する場合であってユーザが当該建物情報を正しいという情報を入力した場合、または、ステップS205においてユーザから1つの建物情報を選択する情報が入力された場合に、上記した建物の情報や店名が得られたと判断する。
ここで、建物情報テーブルについて説明する。建物情報テーブルの一例を表5に示す。
建物情報テーブルは、情報記憶部18(図2参照)に記憶される。
建物情報テーブルでは、建物の種類、名前、住所という各フィールドについての値が定義され、これらが互いに関連付けられて記憶されている。なお、建物の種類として格納される値の具体例としては、たとえば、一般の人が居住する家(一般家)、会社、店舗、公共施設、道、空港を含む。また、名前として格納される値の具体例としては、家に居住する人の名前、会社名、店名、公共施設の名前、道路の名前を含む。住所として格納される値は、対応する建物や店舗や家の住所を示す情報である。
ステップS221では、制御部10は、建物情報テーブルの「名前」のフィールドに対応する値として、建物の名称または店舗の名称を記憶させる。なお、ステップS202で選択した場所に2つ以上の建物や店舗の名称がある場合には、ステップS203からステップS205の処理によって取得した名称を記憶させ、また、ステップS202で選択した場所の建物または店舗の名称が1つである場合には、その名称を記憶させて、ステップS206に処理を進める。
一方、ステップS222では、制御部10は、建物情報テーブルの「名前」のフィールドに、「不明」という値を記憶させて、ステップS206に処理を進める。
ステップS206では、制御部10は、ステップS202で選択された情報に対応する住所を、インターネット等のネットワーク上の上記したサーバから取得して、ステップS207に処理を進める。
なお、制御部10は、ここで、建物情報テーブルの「名前」フィールドに記憶させる情報(建物の名前等の情報)を、ネットワーク上のサーバからだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)から取得しても良い。
図5を参照して、ステップS207では、制御部10は、ステップS206の処理により住所が取得できたか否かを判断し、取得できたと判断するとステップS208へ、取得できなかったと判断するとステップS212へ、それぞれ処理を進める。なお、制御部10は、ステップS207では、具体的には、ステップS201において提示された現在位置情報(経度、緯度)と一致する地図上において、ステップS202で、ユーザが選択した地図上の場所に付随した住所データが存在するか(住所を特定するデータであることを示すデータが存在するか)どうかを判断する。そして、制御部10は、存在すると判断するとステップS208へ、存在しないと判断するとステップS212へ、それぞれ処理を進める。
ステップS208では、制御部10は、建物情報テーブルの[住所]のフィールドの値として、ステップS207で存在すると判断した住所データをセットする。なお、ステップS208では、制御部10は、ユーザがステップS202で複数の建物情報に対応する場所(建物)を選択した場合、住所だけではなく、建物情報が対応する詳細な場所を示す情報(建物の中の何階かを示す情報)を付随情報としてセットする。通信部19は、建物の場所の何階かを特定する情報として、GPSから受信する情報の他に、建物に設置された装置(センサ等)からの信号を受信できる。具体的には、制御部10は、たとえば建物内の異なる場所に設置された複数のセンサから通信部19が受信した信号を解析することにより、携帯型翻訳機1と当該複数のセンサのそれぞれとの距離を特定し、これにより、何階のどこにいるかということを特定することができる。そして、制御部10は、ステップS208において、[住所]のフィールドに、当該付随情報を付加することも可能である。
次に、制御部10は、ステップS209で、ステップS208でセットした住所に関する情報がインターネット等のネットワーク上のサーバに存在するか否かを確認し、ステップS211に処理を進める。なお、ステップS209では、制御部10は、具体的には、たとえば、ステップS208でセットした住所またはステップS221でセットした店名をキーワードとして検索エンジンを利用すること等により、インターネット等のネットワーク上のサーバに格納された情報の検索を行なう。
なお、制御部10は、ここで、上記「住所」に関する情報の検索を行なう際、ネットワーク上のサーバだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)も、検索対象としても良い。
ステップS211では、制御部10は、ステップS209での確認の結果として、住所に関する情報があるか否かを判断し、あると判断するとステップS215に処理を進め、無いと判断するとステップS214に処理を進める。なお、ステップS211では、制御部10は、たとえば、ステップS202においてユーザが選択した住所に対して店舗等のホームページへのリンクが設定されているか否か、または、施設(店舗)に関するデータベースであって施設名(店舗名)と住所とホームページアドレスとを含むデータベースにおいて住所をキーワードとして施設名を検索した上で検索結果である施設名に対応したホームページアドレスを取得することができたか否か、等によって、住所に関する情報があるか否かを判断する。
ステップS212では、制御部10は、ステップS202においてユーザが選択した住所が、インターネット等のネットワーク上で提供される地図情報において道に対応しているか否かを判断し、そうであると判断するとステップS213へ、そうではないと判断するとステップS214へ、それぞれ処理を進める。
ステップS213では、上記した建物情報テーブルにおいて、ステップS206で取得した住所を「住所」のフィールドにセットし、そして、セットした住所に対応する種類のフィールドに「道」という値を、そして、セットした住所に対応する名前のフィールドに「不明」という値をセットして、処理をステップS102にリターンさせる。
ステップS214では、制御部10は、建物情報テーブルにおいて、ステップS208でセットした建物情報に対応する種類および名前のフィールドに「不明」という値をセットして、処理をステップS102にリターンさせる。ここで、「Wall Street(ウォール街)」のように特有の名前がついている有名な道の場合は、その道の名前をネットワークや、内部メモリ、外部メディアの情報から名前を取得し、取得した道の名前を名前フィールドにセットしても構わない。
ステップS215では、制御部10は、ステップS209の検索結果として取得された情報の中に、建物情報テーブル中の「種類」のフィールドの値として適切な情報を検索する。そして、制御部10は、ステップS216において、そのような情報が含まれているか否かを判断する。なお、制御部10は、具体的には、ホームページのソースに対して、「種類」のフィールドの値の候補とされるテキストや、後述する会話事例DBや会話履歴DBの「種類」のフィールドに記憶されている内容(デパート/スーパー/…等)と合致するテキストが含まれるかどうか、または、ホームページ作成上のフォーマットとして「種類:種類名」をソース上に入れておくという規定があるときには、その規定に基づいたデータがホームページのソースに含まれるか否かを判断する。なお、制御部10は、ここで、ホームページソースだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)においても、上記テキストやフォーマットが含まれるか否かを取得しても良い。
そして、制御部10は、含まれていると判断するとステップS217に、含まれていないと判断するとステップS218に、それぞれ処理を進める。
ステップS217では、制御部10は、建物情報テーブルに対して、ステップS208でセットした住所に対応する種類のフィールドの値として、ステップS215の検索結果として得られた情報をセットして、ステップS102に処理をリターンさせる。
一方、ステップS218では、制御部10は、建物情報テーブルに対して、ステップS208でセットした住所に対応する種類のフィールドの値として「不明」をセットして、ステップS102に処理をリターンさせる。
再度図3を参照して、ステップS102では、図4および図5を参照して説明されたように、携帯型翻訳機1が現在位置する建物(または店舗)の情報が、表5に示された建物情報テーブルとして得られる。
そして、次に、制御部10は、ステップS103へ処理を進める。
ステップS103では、制御部10は、建物情報テーブルを利用して、携帯型翻訳機1の現在位置についてのさらに詳細な情報を取得する。ここで言う「さらに詳細な情報」とは、たとえば以下の表6に示される店情報テーブルを挙げることができる。
店情報テーブルには、種類、名前、住所、取扱商品の大分類、および、データ入手先という各フィールドに値が定義されている。
そして、種類のフィールドの値としては、デパート、スーパー(マーケット)、飲食店、衣料品店、雑貨店、免税店等の店舗の種類を示すデータが格納される。
また、名前のフィールドの値としては、店舗の名称を示すデータが格納され、住所のフィールドの値としては、店の所在地の住所を示すデータが格納される。なお、名前および住所のフィールドの値は、表5として示した建物情報テーブルに格納された対応する値をコピーされる。
ここで、ステップS103の処理内容を、当該処理のサブルーチンのフローチャートである図6を参照して説明する。
図6を参照して、制御部10は、まずステップS301およびステップS302のそれぞれで、建物情報テーブル(表5参照)の名前と住所のフィールドのそれぞれの値を、店情報テーブル(表6参照)の対応するフィールドの値としてコピーし、ステップS303の処理を進める。
ステップS303では、制御部10は、店情報テーブルの名前と住所の2つのフィールドの値をキーワードとして、インターネット等のネットワーク上のサーバに格納された情報を検索する。なお、このような検索は、たとえば検索エンジンを利用して行なわれる。そして、なんらかの検索結果が得られた場合には、表示部12に当該検索結果が表示される。なお、制御部10は、この処理での情報検索の対象として、ネットワーク上のサーバだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)に記憶されている情報も検索対象としても良い。
そして、ステップS304で、制御部10は、ステップS303における検索の結果として情報が得られたかどうかを判断する。なお、ステップS304では、ステップS303で表示された検索結果の中の少なくとも1つの情報がユーザによって選択されたか否かも判断される。そして、選択されたと判断するとステップS305へ、選択されなかったまたはステップS303における検索の結果が1件も得られなかったと判断するとステップS314へ、制御部10はそれぞれ処理を進める。
ステップS314では、制御部10は、店情報テーブルの種類および取扱商品の大分類のフィールドの値としてそれぞれ「不明」をセットして、処理をステップS104へとリターンさせる。
一方、ステップS305では、制御部10は、店情報テーブルのデータ入手先のフィールドに、ステップS303の検索結果として得られた値の中から当該情報の提供先を示す情報を抽出して値としてセットする。なお、ステップS305における値のセットは、本発明が実施される条件に適した方法で行なわれれば良いが、たとえば、ホームページのトップページのアドレス(URL:Uniform Resource Locator)に基づいて決定した値をセットする方法が挙げられる。具体的には、制御部10は、たとえば、ホームページのトップページのアドレスに、店名に対応するテキストが含まれているか否かを判断し、含まれていれば、提供先として「店のデータベース」という情報をセットする。また、当該トップページのアドレスに、商店街の名称に対応するテキストが含まれているか否かを判断し、含まれていれば、提供先として「商店街のホームページ」という情報をセットする。また、他の方法としては、ホームページのトップページのアドレスに特定のテキストが含まれているかどうかによって決定した値をセットする方法も挙げられる。たとえば、ホームページのトップページのアドレスにデータベースを意味する“db”や店舗を意味する“shop”等のテキストが含まれているか否かを判断し、含まれていれば、提供先として「店のデータベース」という情報をセットする。さらに別の方法としては、ホームページのソースに特定のテキストが含まれる場合であって、さらに、当該特定のテキストに対して一定の関係にあるテキストが所定の条件を満たす場合に、提供先として「店のデータベース」という情報をセットする方法も挙げられる。具体的には、ホームページのソースにおいて“title”というテキストを検索し、含まれる場合には、当該テキストの後に“のホームページ”というテキストが含まれるかどうかを判断し、含まれる場合には、当該“のホームページ”の直前のテキストが店名であるか否かを判断し、店名である場合には、提供先として「店のデータベース」という情報をセットする。また、“title”というテキストに限らず、ホームページのソースにおいて店名の属性を表す属性コードを検出し、当該属性コードについている名前が店名であるか否かに応じて、提供先として「店のデータベース」という情報をセットするか否かが決定されても良い。なお、制御部10は、ここでの情報において、ネットワーク上のサーバだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)に記憶されている情報も検索対象としても良い。
次に、制御部10は、ステップS306で、ステップS303で取得した情報の中に店の種類に相当する情報を検索し、ステップS307で、検索することによってそのような情報が得られたかどうかを判断する。そして、得られたと判断するとステップS308へ、得られなかったと判断するとステップS309に処理を進める。なお、ステップS307での判断として、制御部10は、ステップS216と同様に、ホームページのソースに対して、「種類」のフィールドの値の候補とされるテキストや、後述する会話事例DBや会話履歴DBの「種類」のフィールドに記憶されている内容(デパート/スーパー/…等)と合致するテキストが含まれるかどうか、または、ホームページ作成上のフォーマットとして「種類:種類名」をソース上に入れておくという規定があるときには、その規定に基づいたデータがホームページのソースに含まれるか否かを、判断する。そして、制御部10は、含まれていると判断するとステップS308に、含まれていないと判断するとステップS309に、それぞれ処理を進める。
ステップS308では、制御部10は、店情報テーブルの種類のフィールドの値として、ステップS307の検索結果として得られた情報をセットして、ステップS310に処理を進める。一方、ステップS309では、制御部10は、店情報テーブルの種類のフィールドの値として「不明」をセットして、ステップS310に処理を進める。
ステップS310では、制御部10は、ステップS303で取得した情報の中に店の取扱商品に相当する情報を検索し、ステップS311で、そのような情報が含まれるか否かを判断する。なお、ここでの判断は、具体的には、ステップS305で判断したデータ入手先が、店のホームページ、データベースなどで判断された場合、該データ入手のサーバ上に「商品ラインナップ」、「製品一覧」などのページまたはデータベースが存在するか確認し、存在すれば、取扱商品の分類に相当する“衣服”、“食品”、“家電製品”、“車”などのテキストが含まれるか検索することで判断する。なお、制御部10は、該データを入手したサーバの他に、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)に記憶されている情報も検索対象としても良い。また、ステップS305で判断したデータ入手先が、商店街のホームページで判断された場合は、商店街のホームページ上に店の紹介ページなどが存在するか確認し、存在すれば、取扱商品の分類に相当する“衣服”、“食品”、“家電製品”、“車”などのテキストが含まれるか検索することで判断することにより行なわれる。そして、制御部10は、情報が含まれると判断するとステップS312へ、含まれないと判断するとステップS313へ、それぞれ処理を進める。
ステップS312では、制御部10は、ステップS311において含まれると判断した情報を、店情報テーブルの取扱商品の大分類のフィールドの値としてセットして、処理をステップS103へとリターンさせる。一方、ステップS313では、制御部10は、店情報テーブルの取扱商品の大分類のフィールドの値として「不明」をセットして、処理をステップS104へとリターンさせる。
再度図3を参照して、制御部10は、ステップS103において図6を用いて説明したように店情報を取得すると、ステップS104で、ユーザからの、会話候補文を出力する要求を待つ。そして、そのような要求を入力されたと判断すると、制御部10は、ステップS105へ処理を進める。なお、携帯型翻訳機1では、このような情報は、たとえば入力部11を介して入力される。
ステップS105で、制御部10は、会話候補文を出力する処理を実行する。なお、ここでの処理について、この処理のサブルーチンのフローチャートである図7を参照して説明する。
図7を参照して、制御部10は、まずステップS501で、位置履歴DB107から位置履歴情報を取得して、ステップS502へ処理を進める。なお、ステップS501では、制御部10は、会話履歴テーブルにおいて位置履歴が記憶されている個数だけ、位置履歴DBから位置履歴を取得する。たとえば、表2に示されるように、本実施の形態の会話履歴テーブルでは、会話例に関連付けられて4個の位置履歴が記憶されているため、ステップS501では、制御部10は、位置履歴テーブルから最新の4個の位置情報を取得する。
ステップS502では、制御部10は、ステップS501で取得した位置履歴の中から、先頭(履歴番号が「1」)の位置キーワード(位置情報)を取得し、ステップS503へ処理を進める。
ステップS503では、制御部10は、会話履歴DB108内の各テーブルから、先頭(位置履歴情報(1))の位置履歴情報を取得し、ステップS504へ処理を進める。
ステップS504では、制御部10は、ステップS502で取得した位置情報とステップS503で取得した位置履歴情報を比較し、ステップS505へ処理を進める。
ステップS505では、制御部10は、一致するものがあるか否かを判断し、あったと判断するとステップS506へ処理を進め、無いと判断するとそのまま処理をリターンさせる。
ステップS506では、制御部10は、一致したと判断した位置履歴情報に対応する会話履歴テーブル内の会話例を会話候補文として取得して、ステップS507へ処理を進める。
図8を参照して、制御部10は、ステップS507で、ステップS501で取得した位置履歴から先頭以外の位置キーワード(位置情報)を取得し、ステップS508へ処理を進める。
ステップS508では、ステップS507で取得したすべての位置キーワードについてステップS509の処理対象としたか否かを判断し、そうであると判断するとステップS514へ、そうではないと判断するとステップS509へ、処理を進める。
ステップS509では、ステップS506で取得した各会話例の位置履歴(2)以降の位置履歴情報を取得し、ステップS511へ処理を進める。
ステップS511では、制御部10は、ステップS507で取得した位置キーワード(位置情報)の中からまだステップS511で処理対象となっていない1つの位置キーワードを選択し、当該位置キーワードを、ステップS509で取得した位置履歴情報の中で検索し、ステップS512へ処理を進める。
ステップS512では、制御部10は、ステップS509で取得した位置履歴情報の中にステップS511で選択した位置キーワードと一致するものが含まれるか否かを判断し、含まれると判断するとステップS513へ処理を進め、含まれないと判断するとステップS507へ処理を戻す。
ステップS513では、制御部10は、検索された会話検索文(一致する位置キーワードに関連付けられた会話例)の信頼度を調整する処理を実行し、ステップS507へ処理を戻す。ここで、ステップS513における処理の内容について、当該処理のサブルーチンのフローチャートである図9を参照して説明する。
図9を参照して、制御部10は、まずステップSA10で、ステップS513で検索結果として挙げられた各会話検索文(会話例)について、ステップS507で取得された位置キーワードと位置キーワードが一致している数を取得して、ステップSA11へ処理を進める。
ステップSA11では、制御部10は、複数の位置キーワードで一致している会話例があるか否かを判断し、複数一致している会話例があると判断するとステップSA12へ、複数一致しているもの(会話例)がないと判断するとステップSA14へ、処理を進める。
ステップSA12では、制御部10は、各会話例において、ステップS507で取得した位置情報と一致している位置キーワード(位置履歴)の位置を取得し、ステップSA13へ処理を進める。
ステップSA13では、制御部10は、各会話例について、ステップS507で取得した位置情報と位置キーワードが一致している位置キーワードの位置を比較し、一致の仕方の近さ(一致する度合い)を決定し、ステップSA14へ処理を進める。
ここで、一致の仕方の近さとは、たとえば、次のX1〜X9の順に決められるものとする。つまり、会話例が関連付けられている位置履歴(2)〜(4)について合致する条件がX1〜X9の順に、一致する度合いが高いと決定される。
X1:会話履歴テーブル中の位置履歴(2)の内容(位置履歴)が、位置履歴テーブルの履歴番号「2」の位置情報と同じ
X2:会話履歴テーブル中の位置履歴(2)の内容(位置履歴)が、位置履歴テーブルの履歴番号「3」の位置情報と同じ
X3:会話履歴テーブル中の位置履歴(2)の内容(位置履歴)が、位置履歴テーブルの履歴番号「4」の位置情報と同じ
X4:会話履歴テーブル中の位置履歴(3)の内容(位置履歴)が、位置履歴テーブルの履歴番号「2」の位置情報と同じ
X5:会話履歴テーブル中の位置履歴(3)の内容(位置履歴)が、位置履歴テーブルの履歴番号「3」の位置情報と同じ
X6:会話履歴テーブル中の位置履歴(3)の内容(位置履歴)が、位置履歴テーブルの履歴番号「4」の位置情報と同じ
X7:会話履歴テーブル中の位置履歴(4)の内容(位置履歴)が、位置履歴テーブルの履歴番号「2」の位置情報と同じ
X8:会話履歴テーブル中の位置履歴(4)の内容(位置履歴)が、位置履歴テーブルの履歴番号「3」の位置情報と同じ
X9:会話履歴テーブル中の位置履歴(4)の内容(位置履歴)が、位置履歴テーブルの履歴番号「4」の位置情報と同じ
ここで、一致の仕方の順序の決定について、具体例を示してさらに詳細に説明を行なう。
たとえば、ステップS507で取得した位置情報が表7に示されたものであるとする。
そして、ステップSA11で複数の項目で一致すると判断された会話例が備える位置履歴情報がそれぞれ表8〜表10に示されるものであるとする。
なお、表8〜表10では、便宜上、会話履歴テーブルの中の、会話例(A1〜A3と略して記載)と位置履歴(1)〜位置履歴(4)のみが示されている。
このような場合、位置履歴(2)が履歴番号「3」と一致する会話例A1、位置履歴(2)が履歴番号「4」と一致する会話例A3、位置履歴(3)が履歴番号「2」と一致する会話例A2の順に一致の近さが決定される。
ステップSA14では、制御部10は、ステップS506で取得したすべての会話例を再度取得し、ステップSA15へ処理を進める。
ステップSA15では、制御部10は、会話例ごとに、一致の仕方に応じて各会話例に対して付与する信頼度の上げ幅を決定し、ステップSA16へ処理を進める。ここでは、たとえば予め定められた条件を読み込んでも良い。予め定められた条件とは、たとえば、上記した条件X1を満たす場合には上げ幅「10」、上記した条件X2を満たす場合には上げ幅「9」、上記した条件X3を満たす場合には上げ幅「8」、上記した条件X4を満たす場合には上げ幅「7」、上記した条件X5を満たす場合には上げ幅「6」、上記した条件X6を満たす場合には上げ幅「5」、上記した条件X7を満たす場合には上げ幅「4」、上記した条件X8を満たす場合には上げ幅「3」、上記した条件X9を満たす場合には上げ幅「2」、1つしか位置キーワードが一致しなかった場合には上げ幅「1」というように、一致の仕方が近いほど上げ幅の値を大きいものが挙げられる。
ステップSA16では、制御部10は、ステップSA15で決定した上げ幅を各会話例の信頼度として付与するような情報を情報記憶部18に記憶して、処理をリターンさせる。これにより、位置履歴テーブルの履歴番号「1」の位置情報と共通の位置履歴情報と関連付けられた会話例に対して、位置履歴テーブルに記憶された位置情報と位置履歴情報との共通の度合いに応じた信頼度を付与できる。
図8に戻って、ステップS514では、制御部10は、ステップS506で取得した会話例を信頼度の大きい順にソートして、表示部12に提示し、ユーザから1つの会話例が選択する情報が入力されるのを待つ。
そして、制御部10は、ユーザを選択する情報が入力されると、選択された会話例(会話候補文)を出力(表示部12に表示および/またはスピーカ15から音声を出力)して、処理をリターンさせる。
図3に戻って、制御部10は、ステップS105で会話候補文を出力させた後、ステップS106で、会話履歴を登録する処理を実行して、処理をステップS101へ戻す。この処理の内容を、当該処理のサブルーチンである図10を参照して、説明する。
図10を参照して、この処理で、制御部10は、まずステップS601で、ステップS515で出力した会話文を取得し、ステップS602へ処理を進める。
ステップS602では、制御部10は、位置履歴DB107から、現在の位置履歴情報を取得し、ステップS603へ処理を進める。本実施の形態では、位置履歴テーブルの履歴番号「1」〜「4」に対応した位置情報を取得する。
ステップS603では、制御部10は、ステップS601で取得した会話例の位置履歴(1)〜位置履歴(4)の欄をステップS602で取得した履歴番号「1」〜「4」に対応した位置情報に登録した(入れ替えた)会話履歴テーブルを新たに作成し、ステップS604に処理を進める。
ステップS604では、制御部10は、ステップS603で作成した会話履歴テーブルを新たに会話履歴DB108へ登録し、処理をリターンさせる。
これにより、会話例が出力された場合、当該会話例が、出力された時点で位置履歴DB107に記憶されている携帯型翻訳機1自体の位置履歴と関連付けられて、新たに会話履歴DB108へ登録され、それ以降、ステップS514で候補として提示される会話例の選択に利用される。
また、本実施の形態の携帯型翻訳機1では、図3に示した処理と並行して、位置履歴テーブルに登録される位置履歴情報を蓄積する処理が常に実行されている。この処理の内容を、当該処理のフローチャートである図11を参照して説明する。
図11を参照して、ステップS701では、制御部10は、携帯型翻訳機1の位置情報を取得し、ステップS702に処理を進める。なお、ステップS701における「位置情報」とは、携帯型翻訳機1の位置に関するいかなる情報も含み、たとえば、ステップS101で取得される位置情報であっても良いし、建物情報テーブルおよび/または店情報テーブルに記憶される情報(携帯型翻訳機1が位置する店舗の種類、名前、および/または住所)であっても良い。
ステップS702では、制御部10は、直前にステップS701で取得した位置情報がその前の回にステップS701で取得した位置情報から更新されているか否かを判断し、そうではないと判断するとステップS703へ、そうであると判断するとステップS705へ、処理を進める。
ステップS703では、制御部10は、現時点での時刻情報を取得し、ステップS704へ処理を進める。
ステップS704では、制御部10は、前回ステップS705の処理を実行してから予め設定された時間が経過したか否かを判断し、経過したと判断するとステップS705へ処理を進め、経過していないと判断するとステップS701へ処理を戻す。
ステップS705では、位置履歴テーブルにおいて現在記憶されている位置情報が対応する履歴番号の値を1ずつ大きくなるように変更し、そして、その時点での位置情報(本実施の形態では、位置情報は店情報テーブルの「種類」)を位置履歴テーブルの履歴番号「1」の欄に関連付けて記憶させ、ステップS701に処理を戻す。
これにより、表3および表4を参照して説明したような位置履歴テーブルの更新が行なわれる。
以上図11を参照して説明した処理では、携帯型翻訳機1では、携帯型翻訳機1の位置情報が変更された場合(ステップS702でYES判断時)、または、予め定められた設定時間が経過した場合(ステップS704でYES判断時)に、位置履歴DB107の位置履歴テーブルに記憶された位置情報の履歴が新たな位置情報を含むように更新される。
そして、携帯型翻訳機1は、会話候補文の出力を要求する情報が入力されると、位置履歴DB107から携帯型翻訳機1自体の位置履歴情報を取得し、取得した位置履歴情報と会話履歴DB108の各会話例について会話履歴テーブルで記憶されている位置履歴とを比較し、一致する度合いの高い順に、会話例を提示する。そして、提示した会話例の中から選択された会話例を出力するとともに、出力した会話例に位置履歴DB107で記憶されている位置履歴情報を関連付けたものを新たに会話履歴DB108に登録する。
なお、一致する度合いの高さは、たとえば表7〜表10を参照して説明したように決定されるが、他の態様で決定されても良い。
たとえば、次のY1〜Y3の順に決められるものとする。つまり、会話例が関連付けられている位置履歴(2)〜(4)について合致する条件がY1〜Y3の順に、一致する度合いが高いと決定される。
Y1:会話履歴テーブル中の位置履歴(2)の内容(位置履歴)が、位置履歴テーブルの履歴番号「2」の位置情報と同じ
Y2:会話履歴テーブル中の位置履歴(3)の内容(位置履歴)が、位置履歴テーブルの履歴番号「3」の位置情報と同じ
Y3:会話履歴テーブル中の位置履歴(4)の内容(位置履歴)が、位置履歴テーブルの履歴番号「4」の位置情報と同じ
これにより、携帯型翻訳機1は、位置履歴テーブルに記憶されている履歴番号「1」の位置情報と位置履歴(1)が一致し、かつ、位置履歴テーブルの複数の位置情報と複数の位置履歴が一致する会話例の中で、一致する位置履歴の履歴内の相対的な距離が短い会話例ほど、より大きく信頼度を上げるように構成される。なお、履歴内の相対的な距離とは、位置履歴テーブルと位置履歴における1番目からの距離であり、具体的には、一致する位置情報が、1番目と2番目、1番目と3番目、1番目と4番目の順に、相対的な距離の差が長くなることを意味する。
たとえば、位置履歴テーブルに表7に示したように位置情報が記憶されている場合の、表11〜表13に示される会話例B1〜B3について信頼度の付与について説明する。
表11の会話例B1については、位置履歴(2)の位置履歴は履歴番号「2」の位置情報に一致せず、位置履歴(3)の位置履歴は履歴番号「3」の位置情報に一致せず、位置履歴(4)の位置履歴は履歴番号「4」の位置情報に一致していない。
表12の会話例B2については、位置履歴(3)の位置履歴が履歴番号「3」の位置情報に一致している。
表13の会話例B3については、位置履歴(2)の位置履歴が履歴番号「2」の位置情報に一致している。
なお、会話例B2が1番目と3番目の位置情報で位置履歴テーブルと一致しているのに対し、会話例B3は1番目と2番目の位置情報が位置履歴テーブルと一致している。つまり、一致している位置情報の(番号の)距離は、会話例B3に関する距離の方が、会話例B2に関する距離よりも近い。
このことから、会話例B1〜会話例B3に対して付与される信頼度については、信頼度の高い方から、会話例B3、会話例B2、会話例B1の順とされる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 携帯型翻訳機、10 制御部、11 入力部、12 表示部、13 D/A変換部、14 出力アンプ、15 スピーカ、16 辞書データ記憶部、17 音声データ記憶部、18 情報記憶部、19 通信部、107 位置履歴DB、108 会話履歴DB。