以下に、図面を参照しつつ、本発明の電子機器の一実施の形態である携帯型翻訳機について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図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、会話履歴DB108、検索処理用DB110が適宜参照されて実現される。
検索処理用DB110は、プロファイルDB1101、関連性DB1102、キーワードDB1103、建物情報DB1104、店情報DB1105、検索結果DB1106を含む。
表1に、会話事例DB104に記憶されているデータ(会話事例テーブル)の、1つの会話例についての内容を示す。
表1を参照して、会話事例テーブルでは、各会話例について、通し番号(レコードNo.)、当該会話例が出力されることが想定されるお店の種類、当該お店で扱われる商品の分類、キーワード、および、会話例の各フィールドに対応した値が定義されている。なお、表1では、1つの会話例についてのテーブルを示した。会話事例DB104には、複数の会話例について、表1と同様の情報がテーブル形式で記憶されている。会話事例DB104に記憶された会話事例テーブルの具体例を表2に示す。
会話事例DB104では、複数の会話例のそれぞれについて、表1に示した情報が記憶されている。会話事例テーブルは、予め携帯型翻訳機1内に登録されている情報である。
表3に、プロファイルDB1101に記憶されているデータ(プロファイルデータテーブル)の内容を示す。
表3を参照して、プロファイルデータテーブルでは、携帯型翻訳機1のユーザに関する情報として、複数の項目に対応する値(プロファイルデータ)が定義されている。
「英語レベル」という項目に対応する値としては、たとえば、A〜Dの4段階のいずれかの値が登録される。なお、本実施の形態において、英語は携帯型翻訳機1が出力する会話例の言語(対象言語)の一例である。したがって、携帯型翻訳機1の対象言語が英語以外の場合には、プロファイルデータテーブルには、他の言語のレベルが記憶される。
また、プロファイルデータテーブルには、ユーザの、性別、血液型、病歴・既往症・アレルギーに関する情報、体形、自宅住所、家族構成、星座、所持する免許の種類、食べ物の趣味や味の好み、加入している保険の情報に対応するプロファイルデータが記憶されている。表4に、プロファイルデータテーブルの具体例を示す。
表4の「趣味・好み」の欄に「甘いもの」「中華料理」記載されているように、プロファイルデータテーブルには、1つの項目に対して複数のデータが記憶されても良い。
表5に、関連性DB1102に記憶されているデータ(分類とプロファイル項目の関連性テーブル)の一例を示す。
分類とプロファイル項目の関連性テーブル(以下、「関連性テーブル」と呼ぶ)では、商品などの分類ごとにプロファイルデータテーブルの中の項目が関連付けられている。なお、関連性テーブルでは、分類の名称ごとに、「関連性1」「関連性2」「関連性3」というように、プロファイルデータテーブルの項目名が順位を付けられて記憶されている。たとえば、「衣服」という分類に対しては、関連性1の項目名として「体形」が、関連性2に対応する項目名として「性別」が記憶されている。また「食品」という分類に対しては、関連性1の項目名として「趣味・好み(食べ物・味)」が、関連性2に対応する項目名として、「病歴・既往症・アレルギー」が、関連性3に対応する項目名として「家族構成」が、記憶されている。なお、関連性1〜関連性nのような順序は、各分類における項目名ごとに定義された関連度の値に基づいて決められる。関連度の値が大きいほど、「分類」に対して関連性が高い項目名として関連性テーブルに記憶される。
表6に、キーワードDB1103に記憶されているデータ(キーワードテーブル)の内容を示す。
表6を参照して、キーワードテーブルでは、種類、名前、住所、分類、信頼度、頻度、優先会話パターン、英語レベル、関連性1〜関連性3、および、関連性1の値〜関連性3の値の各フィールドに対して値が定義されている。
表7に、キーワードテーブルの具体例を示す。
キーワードテーブルでは、「種類」等の各フィールド名に対応して、「ケーキ屋」等の値が関連付けられている。キーワードテーブルの構成の詳細については、後述する。
表8に、建物情報DB1104に記憶されているデータ(建物情報テーブル)の内容を示す。
建物情報テーブルでは、建物の種類、名前、住所という各フィールドについての値が定義され、これらが互いに関連付けられて記憶されている。なお、建物の種類として格納される値の具体例としては、たとえば、一般の人が居住する家(一般家)、会社、店舗、公共施設、道、空港を含む。また、名前として格納される値の具体例としては、家に居住する人の名前、会社名、店名、公共施設の名前、道路の名前を含む。住所として格納される値は、対応する建物や店舗や家の住所を示す情報である。
表9に、店情報DB1105に記憶されているデータ(店情報テーブル)の内容を示す。
表9を参照して、店情報テーブルには、種類、名前、住所、取扱商品の大分類、および、データ入手先という各フィールドに値が定義されている。そして、種類のフィールドの値としては、デパート、スーパー(マーケット)、飲食店、衣料品店、雑貨店、免税店等の店舗の種類を示すデータが格納される。また、名前のフィールドの値としては、店舗の名称を示すデータが格納され、住所のフィールドの値としては、店の所在地の住所を示すデータが格納される。なお、名前および住所のフィールドの値は、表8として示した建物情報テーブルに格納された対応する値をコピーされる。また、取扱商品の大分類のフィールドの値としては、衣類、食品、家電製品、車、不動産情報等の商品の分類を示すデータが格納される。また、データ入手先のフィールドの値としては、店のDB(データベース)、店のHP(ホームページ)等の値が格納される。
表10に、検索結果DB1106に記憶されているデータ(検索結果リストテーブル)の内容を示す。
検索結果リストテーブルでは、後述する会話候補文出力処理において、どの会話候補文をどの順序でさせるかを特定するための情報を記憶している。つまり、検索結果リストテーブルでは、後述する会話候補文出力処理において、検索結果として得られた会話例のレコードNo.と当該会話例に対して与えられた優先度の値とが記憶されている。表11に、検索結果リストテーブルの具体例を示す。
表11を参照して、この具体例では、レコードNo.2の会話例に対して「12」の優先度が与えられており、かつ、レコードNo.1の会話例に対して、「3」の優先度が与えられていることが示されている。
図2は、携帯型翻訳機1のハードウェア構成を示す図である。
図2を参照して、携帯型翻訳機1は、当該携帯型翻訳機1の動作を全体的に制御する制御部10を備えている。制御部10は、CPU(Central Processing Unit)を含む。また、携帯型翻訳機1は、ユーザが情報を入力する入力部11と情報を表示する表示部12を含む。入力部11は、ボタン、表示部12に表示されるタッチキーやタッチパネル、および/または、音声を入力するマイクを含む。また、携帯型翻訳機1は、音声を出力するための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、翻訳・辞書DB105、会話履歴DB108、および、検索処理用DB110が記憶されている。辞書データ記憶部16には、翻訳・辞書DB105が記憶されている。
携帯型翻訳機1では、会話事例DB104に記憶された会話文(会話例)の中から、プロファイルDB1101に記憶されたユーザのプロファイルデータテーブルの中の、現在の位置に対応したプロファイルデータから生成されたキーワードが利用されて、その時点で適すると考えられる会話例が出力される。
次に、図3〜図16を参照して、携帯型翻訳機1において当該携帯型翻訳機1のユーザの情報に応じた会話例が出力される際に制御部10が実行する処理について説明する。
まず図3を参照して、制御部10は、まずステップS1で、通信部19にGPS衛星と通信させることにより、自機の位置情報を取得する。なお、上記したように、自機の位置情報を取得する方法は、GPS衛星との通信に限定されない。
次に、ステップS2で、制御部10は、現在位置の<建物情報>を取得する。なお、ステップS2の処理内容を、当該処理のサブルーチンのフローチャートである図4および図5を参照して詳細に説明する。
まず、図4を参照して、制御部10は、ステップS201で、通信部19を介してネットワークに接続することにより、当該ネットワーク上の地図情報等を提供するサーバから、ステップS1で取得した現在位置に基づいて現在位置を中心とした地図情報と当該地図内に含まれる建物の名前を取得し、地図情報を表示部12に表示させる。なお、ここで、制御部10は、地図情報を、ネットワーク上のサーバからだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)を取得するようにしてもよい。つまり、上記地図情報は、このような内部メモリまたは外部メモリに持っていてもよい。また、制御部10は、地図情報を表示させる代わりに、GPSから判断した周辺施設のリストを表示してもよい。
次に、制御部10は、ステップS202で、ユーザに自機を使用している場所を地図上で選択させ、選択した情報の入力を受付ける。ここで、ユーザが選択する情報としては、たとえば、地図上の建物の名称が挙げられる。
次に、制御部10は、ステップS203で、ステップS202でユーザが選択した情報によって特定される場所(建物)が、2つ以上の建物情報(店舗等の情報)に対応するかどうかを判断し、対応すると判断した場合にはステップS204で、当該2つ以上の建物情報を表示部12に表示させる。一方、ない場合には、制御部10はステップS206に処理を進める。
なお、情報記憶部18に記憶されるデータベースには、場所または建物と、それに対応する建物情報(店舗等)とが、互いに関連付けられて記憶されているものが含まれる。具体的には、たとえば、情報記憶部18には、あるビルと、当該ビルに入っているすべての店舗の名称とが互いに関連付けられて記憶されていたり、または、ある地域の名称と当該地域内に存在する建物の名称とが互いに関連付けられて記憶されている。そして、制御部10は、上記のデータベースを参照することにより、ステップS203における判断を行なう。
ステップS204で建物情報を表示した後、制御部10は、ステップS205で、ユーザからの、複数の建物情報の中から1つの建物情報を選択する情報の入力を受付け、ステップS206に処理を進める。なお、ステップS204で表示される建物情報は、たとえば、複数の建築物の名前であっても良いし、同じ建築物内の異なる複数の店舗の名称であっても良い。
ステップS206では、制御部10は、ステップS203からステップS205の処理によって、上記の建物情報テーブル(表8)の名前のフィールドにセットする建物の情報(店名)が得られたか否かを判断し、得られたと判断するとステップS207へ、得られていないと判断するとステップS208へ、それぞれ処理を進める。なお、ステップS206では、制御部10は、具体的には、ステップS202において選択された情報によって特定される場所に対して1つの建物情報が対応する場合であってユーザが当該建物情報を正しいという情報を入力した場合、または、ステップS205においてユーザから1つの建物情報を選択する情報が入力された場合に、上記した建物の情報や店名が得られたと判断する。
ステップS207では、制御部10は、建物情報テーブルの「名前」のフィールドに対応する値として、建物の名称または店舗の名称を記憶させる。なお、ステップS202で選択した場所に2つ以上の建物や店舗の名称がある場合には、ステップS203からステップS205の処理によって取得した名称を記憶させ、また、ステップS202で選択した場所の建物または店舗の名称が1つである場合には、その名称を記憶させて、ステップS209に処理を進める。
一方、ステップS208では、制御部10は、建物情報テーブルの「名前」のフィールドに、「不明」という値を記憶させて、ステップS209に処理を進める。
ステップS209では、制御部10は、ステップS202で選択された情報に対応する住所を、インターネット等のネットワーク上の上記したサーバから取得して、ステップS210に処理を進める。なお、ここで、制御部10は、住所情報を、ネットワーク上のサーバからだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)を取得するようにしてもよい。つまり、上記住所情報は、上記した地図情報と同様に、このような内部メモリまたは外部メモリに持っていてもよい。
図5を参照して、ステップS210では、制御部10は、ステップS209の処理により住所が取得できたか否かを判断し、取得できたと判断するとステップS211へ、取得できなかったと判断するとステップS214へ、それぞれ処理を進める。なお、制御部10は、ステップS210では、具体的には、ステップS201において提示された現在位置情報(経度、緯度)と一致する地図上において、ステップS202で、ユーザが選択した地図上の場所に付随した住所データが存在するか(住所を特定するデータであることを示すデータが存在するか)どうかを判断する。そして、制御部10は、存在すると判断するとステップS211へ、存在しないと判断するとステップS214へ、それぞれ処理を進める。
ステップS211では、制御部10は、建物情報テーブルの[住所]のフィールドの値として、ステップS210で存在すると判断した住所データをセットする。なお、ステップS211では、制御部10は、ユーザがステップS202で複数の建物情報に対応する場所(建物)を選択した場合、住所だけではなく、建物情報が対応する詳細な場所を示す情報(建物の中の何階かを示す情報)を付随情報としてセットする。通信部19は、建物の場所の何階かを特定する情報として、GPSから受信する情報の他に、建物に設置された装置(センサ等)からの信号を受信できる。具体的には、制御部10は、たとえば建物内の異なる場所に設置された複数のセンサから通信部19が受信した信号を解析することにより、携帯型翻訳機1と当該複数のセンサのそれぞれとの距離を特定し、これにより、何階のどこにいるかということを特定することができる。そして、制御部10は、ステップS211において、[住所]のフィールドに、当該付随情報を付加することも可能である。
次に、制御部10は、ステップS212で、ステップS211でセットした住所に関する情報がインターネット等のネットワーク上のサーバに存在するか否かを確認し、ステップS213に処理を進める。なお、ステップS212では、制御部10は、具体的には、たとえば、ステップS211でセットした住所またはステップS207でセットした店名をキーワードとして検索エンジンを利用すること等により、インターネット等のネットワーク上のサーバに格納された情報の検索を行なう。なお、ここでの検索において、制御部10は、ネットワーク上のサーバからだけではなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)に格納される情報に対しても検索を行なっても良い。
ステップS213では、制御部10は、ステップS212での確認の結果として、住所に関する情報があるか否かを判断し、あると判断するとステップS217に処理を進め、無いと判断するとステップS216に処理を進める。なお、ステップS213では、制御部10は、たとえば、ステップS202においてユーザが選択した住所に対して店舗等のホームページへのリンクが設定されているか否か、または、施設(店舗)に関するデータベースであって施設名(店舗名)と住所とホームページアドレスとを含むデータベースにおいて住所をキーワードとして施設名を検索した上で検索結果である施設名に対応したホームページアドレスを取得することができたか否か、等によって、住所に関する情報があるか否かを判断する。
ステップS214では、制御部10は、ステップS202においてユーザが選択した住所が、インターネット等のネットワーク上で提供される地図情報において道に対応しているか否かを判断し、そうであると判断するとステップS215へ、そうではないと判断するとステップS216へ、それぞれ処理を進める。
ステップS215では、上記した建物情報テーブルにおいて、ステップS209で取得した住所を「住所」のフィールドにセットし、そして、セットした住所に対応する種類のフィールドに「道」という値を、そして、セットした住所に対応する名前のフィールドに「不明」という値をセットして、処理をステップS2にリターンさせる。
ステップS216では、制御部10は、建物情報テーブルにおいて、ステップS211でセットした建物情報に対応する種類および名前のフィールドに「不明」という値をセットして、処理をステップS2にリターンさせる。ここで、「Wall Street(ウォール街)」のように特有の名前がついている有名な道の場合は、その道の名前をネットワークや、内部メモリ、外部メディアの情報から名前を取得し、取得した道の名前を名前フィールドにセットしても構わない。
ステップS217では、制御部10は、ステップS212の検索結果として取得された情報の中に、建物情報テーブル中の「種類」のフィールドの値として適切な情報を検索する。そして、制御部10は、ステップS218において、そのような情報が含まれているか否かを判断する。なお、制御部10は、具体的には、ホームページのソースに対して、「種類」のフィールドの値の候補とされるテキストや、後述する会話事例DBや会話履歴DBの「種類」のフィールドに記憶されている内容(デパート/スーパー/…等)と合致するテキストが含まれるかどうか、または、ホームページ作成上のフォーマットとして「種類:種類名」をソース上に入れておくという規定があるときには、その規定に基づいたデータがホームページのソースに含まれるか否かを判断する。ここで、制御部10は、上記情報が含まれるか否かの判断対象として、ホームページのソースに対してだけでなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)に記憶されているか否かを判断(検索)してもよい。そして、制御部10は、含まれていると判断するとステップS219に、含まれていないと判断するとステップS220に、それぞれ処理を進める。
ステップS219では、制御部10は、建物情報テーブルに対して、ステップS211でセットした住所に対応する種類のフィールドの値として、ステップS217の検索結果として得られた情報をセットして、ステップS2に処理をリターンさせる。
一方、ステップS220では、制御部10は、建物情報テーブルに対して、ステップS211でセットした住所に対応する種類のフィールドの値として「不明」をセットして、ステップS2に処理をリターンさせる。
再度図3を参照して、ステップS2では、図4および図5を参照して説明されたように、携帯型翻訳機1が現在位置する建物(または店舗)の情報が、建物情報テーブルとして得られる。
そして、次に、制御部10は、ステップS3へ処理を進める。
ステップS3では、制御部10は、建物情報テーブルを利用して、携帯型翻訳機1の現在位置についてのさらに詳細な情報を取得する。ここで言う「さらに詳細な情報」とは、たとえば上記の店情報テーブル(表9)を挙げることができる。
ここで、ステップS3の処理内容を、当該処理のサブルーチンのフローチャートである図6を参照して説明する。
図6を参照して、制御部10は、まずステップS301およびステップS302のそれぞれで、建物情報テーブル(表8)の名前と住所のフィールドのそれぞれの値を、店情報テーブル(表9)の対応するフィールドの値としてコピーし、ステップS303の処理を進める。
ステップS303では、制御部10は、店情報テーブルの名前と住所の2つのフィールドの値をキーワードとして、インターネット等のネットワーク上のサーバに格納された情報を検索する。なお、このような検索は、たとえば検索エンジンを利用して行なわれる。そして、なんらかの検索結果が得られた場合には、表示部12に当該検索結果が表示される。また、制御部10は、上記情報が含まれるか否かの判断対象として、ネットワーク上のサーバに対してだけでなく、内部メモリ(たとえば、情報記憶部18)や外部メディア(携帯型翻訳機1においてカードリーダ等のメディアインタフェースを備える場合に当該メディアインタフェースを介して制御部10が情報の読込みおよび書込みができるメモリカード)に記憶されている情報に対して検索を行なってもよい。
そして、ステップS304で、制御部10は、ステップS303における検索の結果として情報が得られたかどうかを判断する。なお、ステップS304では、ステップS303で表示された検索結果の中の少なくとも1つの情報がユーザによって選択されたか否かも判断される。そして、選択されたと判断するとステップS305へ、選択されなかったまたはステップS303における検索の結果が1件も得られなかったと判断するとステップS314へ、制御部10はそれぞれ処理を進める。
ステップS314では、制御部10は、店情報テーブルの種類および取扱商品の大分類のフィールドの値としてそれぞれ「不明」をセットして、処理をステップS5へとリターンさせる。
一方、ステップ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は、ステップS218と同様に、ホームページのソースに対して、「種類」のフィールドの値の候補とされるテキストや、後述する会話事例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において含まれると判断した情報を、店情報テーブルの取扱商品の大分類のフィールドの値としてセットして、処理をステップS3へとリターンさせる。一方、ステップS313では、制御部10は、店情報テーブルの取扱商品の大分類のフィールドの値として「不明」をセットして、処理をステップS3へとリターンさせる。
再度図3を参照して、制御部10は、ステップS3において図6を用いて説明したように店情報を取得すると、ステップS4において、表7を参照して説明したようなキーワードテーブルを作成する処理(キーワード作成処理)を実行する。この処理の内容を、当該処理のサブルーチンのフローチャートである図7を参照して説明する。
図7を参照して、制御部10は、まずステップS401で、キーワードテーブルの中の、種類、名前、住所、および、分類のフィールドの値として、表9に示した店情報テーブルの中の対応する値をセットする。なお、分類のフィールドには、店情報テーブル中の「取扱商品の大分類」の値がセットされる。なお、キーワードテーブルの関連性1〜関連性3の各値、および、「関連性1の値」〜「関連性3の値」の各値は、図9を参照して後述する処理においてセットされる。
次に、制御部10は、ステップS402で、店情報テーブルの中のデータ入手先に対応した信頼度を、キーワードテーブルの中の信頼度のフィールドの値としてセットする。なお、信頼度参照テーブルの一例を表12に示す。
表12では、データの入手先の種類に関連付けられて、高、中、または、低という3段階で信頼度が記憶されている。各入手先に対する信頼度は、予め携帯型翻訳機1において決められていても良いし、当該携帯型翻訳機1のユーザによって設定されても良い。信頼度参照テーブルは、たとえば検索処理用DB110に格納されている。
なお、表12から理解されるように、データの入手先が、店舗のデータベース(店のDB)および店舗のホームページ(店のHP)である場合には信頼度が「高」とされ、店舗が所属する商店街のホームページである場合には信頼度が「中」とされ、その他の場合には信頼度が「低」とされている。
再度図7を参照して、ステップS402で信頼度をセットした後、制御部10は、ステップS403で、店情報テーブルの住所と名前に基づいて、会話履歴DBに履歴があるか否かを判断する。なお、会話履歴DBには、表13に示すように、店舗の種類、名前および住所に関連付けられて、会話を行なった日時および会話文(会話履歴)が格納されている。なお、会話履歴DBは、会話履歴DB108に格納されており、1つの店等の場所において会話例が提示されるごとに作成される履歴情報である。
そして、ステップS403では、会話履歴DBにおいて、現在の店情報テーブルの住所と名前のフィールドの値が一致する履歴を検索し、ステップS404で、そのような履歴があるか否かを判断する。そして、あると判断するとステップS405へ、無いと判断するとステップS413へ、処理を進める。
ステップS413では、制御部10は、キーワードテーブルに対して、頻度のフィールドの値として「初めて」をセットし、優先会話パターンのフィールドの値として「なし」をセットして、処理をリターンさせる。
一方、ステップS405では、制御部10は、会話履歴DBにおいて該当するすべての履歴(ステップS403において名前とフィールドの値が一致すると判断した履歴)を、日時のフィールドの値に基づいて順に並べる。
そして、ステップS406で、制御部10は、並べられた履歴が、毎日存在するものであるか否かを判断し、そうであると判断するとステップS407へ、そうではないと判断するとステップS408へ、それぞれ処理を進める。
ステップS408では、制御部10は、並べられた履歴が、週一回(または、週一回以上毎日未満)の間隔で存在するものであるか否かを判断し、そうであると判断すればステップS409へ、そうではないと判断するとステップS410へ、それぞれ処理を進める。
ステップS410では、制御部10は、並べられた履歴が、月一回の間隔(または、月一回以上週一回未満)で存在するものであるか否かを判断し、そうであると判断すればステップS411へ、そうではないと判断するとステップS412へ、それぞれ処理を進める。ステップS407、ステップS409、および、ステップS411では、制御部10は、キーワードテーブルの頻度のフィールドの値として、それぞれ「毎日」「週一回」「月一回」をセットして、ステップS412に処理を進める。なお、ステップS410において月一回ではないと判断された場合には、キーワードテーブルの頻度のフィールドの値に「不明」という情報を入力しても良い。
ステップS412では、制御部10は、該当するすべての履歴の会話履歴のフィールドに格納されたデータ内に、優先会話パターン参照レコードのキーワードフィールドに記憶されている語句が存在するかどうか検索し、該当するものがあれば、該当する語句に対応した優先会話パターンフィールドにセットして、処理をリターンさせる。
表14に、優先会話パターン参照レコードの一例を示す。
優先会話パターン参照レコードのキーワードフィールドには、同じ種類の語句が記憶されており、その各キーワードフィールドに対応して、それらの語句がどのような種類のキーワードであるかを分類した語句が優先会話パターンフィールドに記憶されている。すなわち、優先会話パターン参照レコードは、キーワードとなる語句を汎用性のある語句へ変換するためのものであり、たとえば検索処理用DB110内に格納されている。
表14を参照して、例えば、会話履歴に“my shoes”や“my watch”があれば、自分の物を買うために会話をしたと考えられるので、それらの語句の分類は、“My shopping”とし、その値を優先会話パターンフィールドに格納している。同様に、会話履歴に“present”があれば、それは、プレゼントを買うために会話をしたと考えられるので、その語句の分類は、“Present”としている。
この優先会話パターンフィールドの語句は、会話事例から関係する事例を抽出する際に使用する。具体的には、現在位置情報に関係する会話履歴が抽出された後、その会話履歴の中に、優先会話パターン参照レコードのキーワードフィールドと同じ語句があるかどうか検索し、それがあれば、そのキーワードフィールドに対応する優先会話パターンフィールドの汎用性のある語句を取り出す。さらに、取り出した優先会話パターンフィールドの汎用性のある語句を持つ会話事例があるかどうか検索し、そのような事例があれば、それらの事例を優先的に出力するように処理を行なっているので、ユーザは、関連する会話事例を早く見つけ出し、使用することが出来る。
再度図3を参照して、ステップS4における処理が終わると、制御部10は、ステップS5で、ユーザからの、会話候補文を出力する要求を待つ。そして、そのような要求を入力されたと判断すると、制御部10は、ステップS6へ処理を進める。なお、携帯型翻訳機1では、このような情報は、たとえば入力部11を介して入力される。
ステップS6で、制御部10は、会話候補文を出力する処理を実行する。なお、ここでの処理について、この処理のサブルーチンのフローチャートである図8を参照して説明する。
図8を参照して、会話候補文出力処理では、制御部10は、まずステップS610で、プロファイルデータをキーワードに追加する処理を実行して、ステップS620へ処理を進める。ここで、ステップS610の処理の内容を、当該処理のサブルーチンのフローチャートである図9を参照して説明する。
図9を参照して、プロファイルデータをキーワードに追加する処理では、制御部10は、まずステップS6101で、プロファイルデータテーブル(表3参照)の英語レベルという項目に対応する値が存在するか否かを判断し、存在すると判断するとステップS6102へ処理を進め、存在しないと判断すると、ステップS6103へ処理を進める。
ステップS6102では、制御部10は、プロファイルデータテーブルにおける英語レベルに対応する値を、キーワードテーブル(表7参照)の英語レベルに対応する値としてセットし、ステップS6103へ処理を進める。
ステップS6103では、制御部10は、関連性テーブル(表5参照)において取扱商品の大分類(表9の店情報テーブル参照)の値として記憶される分類に対応する関連性1〜関連性3の項目名を取得して、ステップS6104へ処理を進める。たとえば、取扱商品の大分類が「食品」である場合には、関連性1の項目名として「趣味・好み(食べ物・味)」が取得され、関連性2の項目名として、「病歴・既往症・アレルギー」が取得され、関連性3の項目名として「家族構成」が取得される。
ステップS6104では、制御部10は、ステップS6103で取得した関連性1〜関連性3の項目名を、キーワードテーブルの関連性1〜関連性3のそれぞれの値としてセットし、ステップS6105へ処理を進める。
ステップS6105では、制御部10は、プロファイルデータテーブル(表4参照)において、ステップS6104でキーワードテーブルにセットされた関連性1〜関連性3の項目名に対応する値が存在するか否かを判断し、存在すると判断するとステップS6106へ処理を進め、存在しないと判断するとステップS6107へ処理を進める。
ステップS6106では、制御部10は、プロファイルデータテーブルから、上記した関連性1〜関連性3の各項目名に対応する値を取得して、キーワードテーブルの「関連性1の値」〜「関連性3の値」のそれぞれに対応する値としてセットして、ステップS6107へ処理を進める。
ステップS6107では、制御部10は、「関連性1の値」〜「関連性3の値」の中で、プロファイルデータテーブルからデータの取得を行なっていないものが残っているか否かを判断し、残っていると判断するとステップS6105へ処理を戻し、残っていないと判断すると処理をリターンさせる。
再度図8を参照して、制御部10は、ステップS610でプロファイルデータをキーワードに追加する処理の後、ステップS620でキーワードをキーとして会話事例DBから、提示(出力)する会話例を検索する処理を行なう。この処理の内容を、当該処理のサブルーチンのフローチャートである図10および図11を参照して説明する。
まず図10を参照して、キーワードをキーとして、会話事例DBから提示する会話例を検索する処理では、制御部10は、まずステップS6201で、以降の処理で利用する変数Nを1として、ステップS6202へ処理を進める。
ステップS6202では、制御部10は、キーワードテーブル(表7参照)の関連性Nの値(Nは上記変数)のフィールドに対応する値が存在するか否かを判断し、存在すると判断するとステップS6203へ処理を進め、存在しないと判断するとステップS6205へ処理を進める。
ステップS6203では、制御部10は、キーワードテーブル(表7参照)の「種類」「分類」「英語レベル」「関連性Nの値」の4つのフィールドに対応する値をキーとして、会話事例テーブル(表2参照)に格納された会話例に対してand検索を行なう。つまり、ステップS6203では、たとえばキーワードテーブルが表7のように構成されている場合、会話事例テーブルに登録された会話例の中から、「種類」の値が「ケーキ屋」であり、「商品分類」の値が「食品」であり、「英語レベル」の値として「C」を含み、かつ、「キーワード」に、キーワードテーブル中の関連性Nの値(Nはその時点で設定されている値)に対応する値として登録されている文言を含む会話例を、検索結果として出力する。ここでは、「関連性*」の値について検索が行なわれる。つまり、関連性の項目に対するユーザの情報そのものと一致する会話文が検索される。
ステップS6204では、制御部10は、ステップS6203における検索結果を、上記した検索結果リストテーブルに格納して、ステップS6205へ処理を進める。
ステップS6205では、制御部10は、Nが3になったか否かを判断し、なったと判断するとステップS6207(図11参照)へ処理を進め、また3になっていないと判断するとステップS6206へ処理を進める。
ステップS6206では、制御部10は、Nを1加算更新して、ステップS6202へ処理を戻す。
図11を参照して、ステップS6207では、制御部10は、検索結果リストテーブルを参照し、検索結果として挙げられている会話例が「10」以上であるか否かを判断し、10以上であると判断するとそのまま処理をリターンさせる。一方、10未満であると判断すると、制御部10はステップS6208へ処理を進める。ここでの、会話例の数についての「10」という数字は単なる一例であり、もっと多くの検索結果をユーザに提示したい場合は、より大きな値を設定することも可能である。また、さらに絞り込んだ件数での検索結果をユーザに提示したい場合は、より小さい値を設定すれば実現可能である。
ステップS6208では、以降の処理で利用する変数Mの値を1に設定して、ステップS6209へ処理を進める。
ステップS6209では、制御部10は、キーワードテーブル(表7参照)の「種類」「分類」「英語レベル」「関連性M」(Mは上記変数)の4つのフィールドに対応する値をキーとして会話事例テーブル(表2)に記憶された会話例についてのand検索を行なう。ここでは、「関連性*」についての検索が行なわれている。つまり、関連性の項目名と一致する会話文の検索が行なわれる。
なお、ここまでの検索内容をまとめると、ステップS6203〜ステップS6209の流れでは、まずステップS6203において、関連性の項目に関するユーザ情報と一致する会話文が検索され、検索数が少なかった場合は、ステップS6209において、関連性の項目名での検索が行なわれる。これにより、関連性の項目のユーザ情報だけではなく、関連性の項目に関連する会話文にまで、検索する範囲が広げられることになる。
次に、制御部10は、ステップS6210で、ステップS6209の検索結果を検索結果リストテーブルに格納して、ステップS6211へ処理を進める。
ステップS6211では、制御部10は、Mが3であるか否かを判断し、そうであると判断するとステップS6213へ処理を進め、そうではないと判断するとステップS6212へ処理を進める。
ステップS6212では、制御部10は、Mを1加算更新して、ステップS6209へ処理を戻す。
ステップS6213では、制御部10は、検索結果として検索結果リストテーブルに格納された会話例の情報が10以上存在するか否かを判断し、存在すると判断すると、処理をリターンさせる。一方、検索結果が10未満であると判断すると、ステップS6214でor検索処理を実行する。この処理の内容を、当該処理のサブルーチンのフローチャートである図12を参照して、説明する。
図12を参照して、キーワードをキーとして、or検索処理では、制御部10は、まずステップS6215で、制御部10は、キーワードテーブル(表7参照)の関連性1の値〜関連性3の値のいずれかのフィールドに対応する値が存在するか否かを判断し、存在すると判断するとステップS6216へ処理を進め、存在しないと判断するとステップS6218へ処理を進める。
ステップS6216では、制御部10は、キーワードテーブル(表7参照)の「種類」「分類」「英語レベル」「関連性の値」(は、1〜3の数字)の4つのフィールドに対応する値をキーとして、会話事例テーブル(表2参照)に格納された会話例に対してor検索を行なう。つまり、ステップS6216では、たとえばキーワードテーブルが表7のように構成されている場合、会話事例テーブルに登録された会話例の中から、「種類」の値が「ケーキ屋」であるか「商品分類」の値が「食品」であり、かつ、「英語レベル」の値として「C」を含み、かつ、「キーワード」にキーワードテーブル中の関連性※の値(※は、1〜3の数字)に対応する値として登録されている文言を含む会話例を、検索結果として出力する。
なお、図12中、「∩」は「and」を意味し、「∪」は「or」を意味する。
ステップS6217では、制御部10は、ステップS6216における検索結果を、上記した検索結果リストテーブルに格納して、ステップS6218へ処理を進める。
ステップS6218では、制御部10は、関連性1の値〜関連性3の値の中でステップS6216における検索を行なっていないものがあるか否かを判断し、そうであると判断するとステップS6215へ処理を進め、そうではないと判断するとステップS6219へ処理を進める。
ステップS6219では、制御部10は、検索結果リストテーブルを参照し、検索結果として挙げられている会話例が「10」以上であるか否かを判断し、10以上であると判断するとそのまま処理をリターンさせる。一方、10未満であると判断すると、制御部10はステップS6220へ処理を進める。
ステップS6220では、制御部10は、キーワードテーブル(表7参照)の「種類」「分類」「英語レベル」「関連性※」(※は、1〜3の数字)の4つのフィールドに対応する値をキーとして会話事例テーブル(表2)に記憶された会話例についてのor検索を行なう。つまり、ステップS6220では、たとえばキーワードテーブルが表7のように構成されている場合、会話事例テーブルに登録された会話例の中から、「種類」の値が「ケーキ屋」であるか「商品分類」の値が「食品」であり、かつ、「英語レベル」の値として「C」を含み、かつ、「キーワード」にキーワードテーブル中の関連性※の値(※は、1〜3の数字)に対応する文言を含む会話例を、検索結果として出力する。
次に、制御部10は、ステップS6221で、ステップS6220の検索結果を検索結果リストテーブルに格納して、ステップS6222へ処理を進める。
ステップS6222では、制御部10は、関連性1〜関連性3の中でステップS6220における検索を行なっていないものがあるか否かを判断し、そうであると判断するとステップS6220へ処理を戻し、そうではないと判断すると処理をリターンさせる。
再度図8を参照して、ステップS620でキーワードをキーとして会話事例DBから提示する会話例を検索する処理を実行した後、制御部10は、ステップS630で、検索した会話例に含まれるキーワードをもとに優先度の重み付けを行なう処理を実行する。ステップS630の処理の内容を、当該処理のサブルーチンのフローチャートである図13および図14を参照して説明する。
まず図13を参照して、検索した会話例に含まれるキーワードをもとに優先度の重み付けを行なう処理では、制御部10は、まずステップS6301で、検索結果として挙げられた会話例のそれぞれの「キーワード」のフィールドに格納された値の中に、キーワードテーブル(表7参照)において関連性1の値と一致するものがあるか否かを判断し、あると判断するとステップS6302へ処理を進め、ないと判断するとステップS6303へ処理を進める。
ステップS6302では、制御部10は、検索結果リストテーブルにおいて、一致するものがあった会話例についての優先度の値を6加算更新して、ステップS6303へ処理を進める。
ステップS6303では、制御部10は、検索結果として挙げられた会話例のそれぞれの「キーワード」フィールドの値の中に、キーワードテーブルの関連性2の値と一致するものがあるか否かを判断し、あると判断するとステップS6304へ処理を進め、ないと判断するとステップS6305へ処理を進める。
ステップS6304では、検索結果リストテーブルにおいて、ステップS6303において一致するものがあると判断した会話例の優先度の値を5加算更新して、ステップS6305へ処理を進める。
ステップS6305では、制御部10は、検索結果として挙げられた会話例のそれぞれの「キーワード」フィールドの値の中に、キーワードテーブルの関連性3の値と一致するものがあるか否かを判断し、あると判断するとステップS6306へ処理を進め、ないと判断するとステップS6307(図14参照)へ処理を進める。
ステップS6306では、制御部10は、検索結果リストテーブルのステップS6305で一致するものがあると判断した会話例についての優先度の値を4加算更新して、ステップS6307へ処理を進める。
図14を参照して、ステップS6307では、制御部10は、検索結果として得られた会話例のそれぞれの「キーワード」フィールドの値の中に、キーワードテーブルの「関連性1の項目名」と一致するものがあるか否かを判断し、あると判断するとステップS6308へ処理を進め、ないと判断するとステップS6309へ処理を進める。
ステップS6308では、制御部10は、検索結果リストテーブルにおいてステップS6307で一致すると判断した会話例についての優先度の値を3加算更新して、ステップS6309へ処理を進める。
ステップS6309では、制御部10は、検索結果として得られた会話例の「キーワード」フィールドの値の中にキーワードテーブルの「関連性2の項目名」と一致するものがあるか否かを判断し、あると判断するとステップS6310へ処理を進め、ないと判断するとステップS6311へ処理を進める。
ステップS6310では、制御部10は、検索結果リストテーブルのステップS6309で一致するものがあると判断した会話例についての優先度の値を2加算更新して、ステップS6311へ処理を進める。
ステップS6311では、制御部10は、検索結果として得られた会話例のそれぞれの「キーワード」フィールドの値の中にキーワードテーブルの「関連性3の項目名」と一致するものがあるか否かを判断し、あると判断するとステップS6312へ処理を進め、ないと判断するとステップS6313へ処理を進める。
ステップS6312では、制御部10は、検索結果リストテーブルのステップS6311で一致するものがあると判断した会話例についての優先度の値を1加算更新して、ステップS6313へ処理を進める。
ステップS6313では、検索結果として得られた会話例の中でステップS6301〜ステップS6312の処理による優先度の設定が行なわれていないものが存在するか否かを判断し、存在すると判断するとステップS6301へ処理を戻す。一方、存在しないと判断すると、処理をリターンさせる。
なお、以上図13および図14を参照して説明した、優先度の重み付けを行なう処理では、各関連性の値・各関連性の項目名に対して、固定値(6,5,4,3,2,1)を加算しているが、本発明に従った重み付けはこれに限定されず、関連性の高い項目に対応する優先度に対して低い項目に対応する優先度よりも高い値が加算されるようにされれば良い。
再度図8を参照して、ステップS630で、検索した会話例に含まれるキーワードをもとに優先度の重み付けを行なった後、制御部10は、ステップS640で、会話例を優先度の大きい順で提示する処理を行なう。この処理の内容を、当該処理のサブルーチンのフローチャートである図15を参照して説明する。
図15を参照して、会話例を優先度の大きい順で提示する処理では、まずステップS6401で、制御部10は、検索結果リストテーブルの優先度の数字に基づき、降順に会話例(レコードNo.)を並び替えて、ステップS6402へ処理を進める。
ステップS6402では、制御部10は、検索結果リストテーブルにレコードNo.を格納された会話例を表示部12にリスト表示して、処理をリターンさせる。
ステップS6402において表示部12に表示される画面の一例を図17に示す。
図17を参照して、画面120には、「1)」「2)」という順位を表わす数字とともに、各会話例が表示されている。
再度図8を参照して、ステップS640で会話例を優先度の大きい順で提示した後、制御部10は、ステップS650で、ユーザの選択結果から「分類とプロファイル項目の関連性テーブル」を構成する処理を実行する。この処理の内容を、当該処理のサブルーチンのフローチャートである図16を参照して説明する。
ユーザの選択結果から「分類とプロファイル項目の関連性テーブル」を更新する処理では、制御部10は、まずステップS6501で、ステップS6402(図15参照)において行なったリスト表示に対して、会話例を選択する情報を受付け、ステップS6502へ処理を進める。
ステップS6502では、会話事例テーブル(表2参照)から、ステップS6501で選択を受付けた会話例についての「キーワード」フィールドに格納された内容を取得し、ステップS6503へ処理を進める。
ステップS6503では、ステップS6502で取得した内容の中に、プロファイルデータテーブル(表4参照)において項目名として格納されている情報と一致するものがあるか否かを判断し、あると判断するとステップS6504へ処理を進め、ないと判断するとステップS6508へ処理を進める。
ステップS6504では、ステップS6503で一致すると判断した項目名が、現在の(キーワードテーブルにおける)分類に対応する項目名として登録されているか否かを判断し、登録されていると判断するとステップS6506へ処理を進め、登録されていないと判断するとステップS6507へ処理を進める。
ステップS6506では、制御部10は、関連性テーブルにおいて、ステップS6503で一致すると判断された項目名についての関連度を1加算更新して、ステップS6508へ処理を進める。
ステップS6507では、制御部10は、関連性テーブルの現在の分類に対応する項目名として、ステップS6503で一致すると判断された項目名を追加し、当該項目名に対応する関連度を1として、ステップS6508へ処理を進める。
ステップS6508では、制御部は、ステップS6503で一致すると判断したすべての項目名について、関連性テーブルにおける内容の更新が終了したか否かを判断し、終了したと判断するとステップS6509へ処理を進め、まだ終了していないと判断するとステップS6503へ処理を戻す。
ステップS6509では、制御部10は、関連性テーブルの各分類において、関連度が高い項目名から順に、関連性1、関連性2、関連性3に対応するように並べ替えを行なって、処理をリターンさせる。
以上図16を参照して説明した一連の処理により、分類とプロファイル項目の関連性について、常に最新のものに更新することができる。つまり、現在機器(携帯型翻訳機1)が存在する場所を元に、必要とされる分類を抽出し、その分類に関して、より関連性の高い項目順に並べることが常時出来るように、携帯型翻訳機1が構成されていることになる。これにより、その場所により適した精度の高い会話文を検索することが可能となる。その精度は、ユーザが機器を使用する回数が増えるほど、高くなっていくことになる。
図7に戻って、ステップS550の処理を終えると、制御部10は処理を図3に示されたフローチャートに戻す。
再度図3を参照して、ステップS6の処理の後、制御部10は、ステップS7で、ステップS6501で選択を受付けた会話例を表示させ(さらに対応する音声を出力させて)、そして、当該会話例を会話履歴DB(表13)に新たに登録して、処理を終了させる。なお、会話履歴DBとして新たに登録される情報は、同じ場所(店舗)において選択された会話例がひとまとめにされたものである。また、種類、名前、住所のフィールドの値は、その時点での建物情報テーブル(表8)に登録されている内容とされ、日時は、その時点の(たとえば、同じ場所で選択された会話例の中の最後の会話例が選択された時点の)日付および時刻が取得されて登録される。
以上説明した本実施の形態では、携帯型翻訳機1により、翻訳された会話文を出力する電子機器が構成されている。
携帯型翻訳機1では、ユーザのプロファイルデータが項目ごとに記憶されており、また、その項目のいずれかに位置情報と関連する情報が対応して記憶されていることから、現在の位置情報に関連する情報(たとえば、衣服や食品等の店舗の分類)に基づいて、ユーザのプロファイルデータをキーワードとして選出できる。そして、携帯型翻訳機1では、このように選出されたキーワードを利用して、その時点で出力する会話例が検索される。
なお、本実施の形態では、会話事例DB104により、会話文と会話文のキーワードとなる会話文キーワードとを記憶する会話文記憶手段が構成されている。
また、本実施の形態では、プロファイルDB1101により、ユーザに関する情報であるプロファイルデータと該プロファイルデータの項目となるプロファイル項目とを対応して記憶するプロファイルデータ記憶手段が構成されている。
また、本実施の形態では、図4〜図6を参照して説明した処理を実行する制御部10により、現在位置の詳細情報を取得する詳細情報取得手段が構成されている。
また、本実施の形態では、分類とプロファイル項目の関連性テーブルを記憶する関連性DB1102により、現在位置の詳細情報と、該詳細情報に関連するプロファイル項目とを対応して記憶する詳細情報プロファイル関連テーブルが構成されている。
また、本実施の形態では、ステップS6103(図9参照)等に示されるように関連性テーブルから情報を取得する制御部10により、詳細情報取得手段によって取得された詳細情報に関連するプロファイル項目を詳細情報プロファイル関連テーブルから取得するプロファイル項目取得手段が構成されている。
また、本実施の形態では、ステップS6104(図9参照)等に示されるように、プロファイルデータテーブルから、関連性テーブルから取得した情報に対応したプロファイルデータを取得する制御部10により、プロファイル項目取得手段によって取得されたプロファイル項目のプロファイルデータをプロファイルデータ記憶手段から取得するプロファイルデータ取得手段が構成されている。
また、本実施の形態では、ステップS6106(図9参照)等に示されるように、プロファイルデータテーブルから取得した値を、キーワードテーブルにセットする制御部10により、プロファイルデータ取得手段によって取得されたプロファイルデータから会話文を検索するためのキーワードである検索用キーワードを生成する検索キーワード生成手段が構成されている。
また、本実施の形態では、ステップS6202(図10参照)等に示されるように会話例の検索を行なう制御部10により、検索キーワード生成手段によって生成された検索用キーワードと一致するキーワードを、会話文キーワードから検索する会話文キーワード検索手段が構成されている。
そして、検索結果であるレコードNo.に対応した会話例の内容を会話事例DB104から取得する制御部10により会話文取得手段が構成され、また、取得した会話例を表示部12に表示させたりスピーカ15から音声として出力させたりする制御部10により出力手段が構成されている。
なお、携帯型翻訳機1では、ステップS6501で会話例を選択する情報を受付けた場合、表示部12では、当該選択された会話例のみが表示されるように、表示内容が更新される。また、更新後の画面には、選択された会話例のみでなく、さらに、当該選択された会話例の翻訳文(たとえば、選択された会話例が英文であれば、その和訳文)が表示されても良い。また、会話例の出力は、表示のみに限らず、音声とともに、または、音声のみによって行なわれても良い。このような場合、会話例に対応する音声データは、たとえば会話事例DB104(音声データ記憶部17)に格納されている。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 携帯型翻訳機、10 制御部、11 入力部、12 表示部、13 D/A変換部、14 出力アンプ、15 スピーカ、16 辞書データ記憶部、17 音声データ記憶部、18 情報記憶部、19 通信部、20 タイマ、104 会話事例DB、105 翻訳・辞書DB、108 会話履歴DB、110 情報変換用DB、1101 プロファイルDB、1102 関連性DB、1103 キーワードDB、1104 建物情報DB、1105 店情報DB、1106 検索結果DB。