以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
図1は、本発明に係る情報検索装置の一実施形態の構成図である。本実施形態に係る情報検索装置1は、例えばユーザに携帯される携帯端末等のユーザ端末であって、ユーザ利便性及び操作性を向上させるために、ユーザの発話音声に基づく検索サービスを提供可能としたものである。具体的には、情報検索装置1は、ユーザの発話音声を音声認識して得られた1以上の文字列情報を検索用情報として取得し、当該検索用情報を用いて所定のデータベースを検索する装置である。
本実施形態では、所定のデータベースとして、人の氏名を示す文字列情報と電話番号を示す情報とを関連付けて格納した電話帳データベースを想定している。即ち、情報検索装置1は、上述の検索用情報を検索キーワードとし、電話帳データベースに格納された人の氏名を示す文字列情報を検索対象として電話帳データベースを検索することにより、電話帳データベースから該当する情報(人の氏名及び電話番号)を取得する電話帳検索の機能をユーザに提供する装置である。
ただし、情報検索装置1の形態は上記に限定されない。例えば、情報検索装置1の各機能は、ユーザ端末から通信ネットワークを介して利用可能なサーバ上に備えられてもよい。この場合、ユーザはユーザ端末を介して情報検索装置1が提供する機能を利用することができる。また、情報検索装置1の各機能は、例えばユーザ端末とサーバとで分散され、ユーザ端末及びサーバが互いに協働して動作することにより実現されてもよい。
図1に示すように、本実施形態に係る情報検索装置1は、音声認識部11と、文字列情報取得部12と、文字数計数部13と、電話帳データベースである文字列情報データベース14と、検索処理を実行する検索部15及び第2検索部16と、検索結果を出力する検索結果出力部17とを備える。
図2は、本実施形態に係る情報検索装置1のハードウェア構成図である。図2を用いて、情報検索装置1のハードウェア構成について説明する。図2に示すように、情報検索装置1は、オペレーティングシステムやアプリケーションプログラムなどを実行するCPU101と、ROM及びRAMで構成される主記憶部102と、ハードディスクメモリなどで構成される補助記憶部103と、データ通信を行う通信制御部104と、液晶モニタなどで構成される出力部105と、入力デバイスであるキーボード、マウス及びマイク等で構成される入力部106と、USBメモリ、CD−ROM、DVDなどの記録媒体108を読み取る記録媒体読取部107とを備える。
図1に示す情報検索装置1の各機能は、CPU101の制御の下で、主記憶部102に所定のソフトウェアプログラムを読み込ませて実行することにより実現される。その際、CPU101は、ソフトウェアプログラムの処理手順に従い、主記憶部102及び補助記憶部103におけるデータの読み出し及び書き込み動作を制御し、入力部106、出力部105及び通信制御部104の動作を制御する。以下、図1に示す情報検索装置1の各機能要素について説明する。
音声認識部11は、ユーザの一連の発話音声を入力し、当該発話音声に対して従来の音声認識技術を用いて音声認識処理を実行し、音声認識結果としての文字列情報を生成する音声認識手段である。音声認識部11は、例えば情報検索装置1に内蔵されたマイク等の音声入力を行うハードウェアと、当該ハードウェアを介して入力された音声に対して音声認識処理を実行して文字列情報を生成する音声認識ミドルウェアとを備えるものとして実現される。
音声認識部11は、例えば「斎藤陽子さんに電話」という内容をユーザが意図して発話した音声を入力すると、当該発話音声に対して形態素解析等を用いて音声認識処理を実行する。その結果、音声認識部11は、ヨミを示す文字列情報として、例えばカタカナ(第1の文字種別)で示される「サ/イトウ/ヨウコ/サン/ニ/デンワ」という文字列情報(第1の文字列情報)を取得する。ここで、「/」は、音声認識部11が音声認識により単語の境界であると判定した箇所を示す。音声認識部11は、「/」を境界として分節(分割)された一群の文字列情報(「/」で区切られた各々の単語が1つの文字列情報)を音声認識結果として取得する。なお、音声認識部11が取得する音声認識結果は、必ずしも分節されている必要はなく、区切りのない1つの文字列情報であってもよい。
また、音声認識部11は、第1の文字列情報に対応し、表記を示す文字列情報(第2の文字列情報)として、例えばひらがな、カタカナ及び漢字等が混在する文字種別(第2の文字種別)で示される「差/伊藤/洋子/さん/に/電話」という文字列情報(第2の文字列情報)を併せて取得してもよい。このような第2の文字列情報は、例えば情報検索装置1が内部に保持する変換辞書(ヨミを示す文字列と当該単語のかな漢字表記を示す文字列とを関連付けて格納した辞書)を用いて第1の文字列情報を変換すること等により得ることができる。
ここで、音声認識処理の精度は、周囲の雑音、及びユーザの発音の明瞭性等に依存するため、正しい音声認識結果が常に得られるとは限らない。そこで、音声認識部11は、音声認識結果の候補(i−Best認識結果)を複数取得するものであってもよい。図3に、ユーザの発話音声に対する音声認識結果の例を示す。図3に示すように、例えば、音声認識部11は、「斎藤陽子さんに電話」という内容をユーザが意図して発話した音声に対して音声認識処理を実行し、音声認識結果の第1候補(1−Best認識結果)として、「サ/イトウ/ヨウコ/サン/ニ/デンワ」及び「差/伊藤/洋子/さん/に/電話」を取得し、第2候補(2−Best認識結果)として、「サイトー/ヨウコ/サン/ニ/デンワ」及び「斎藤/陽子/さん/に/電話」を取得してもよい。ここで、「i−Best認識結果」における「i」の値が小さいほど音声認識順位(音声認識の推定精度の順位)が高いことを示している。なお、上記の音声認識結果の候補の例は一例である。
文字列情報取得部12は、1つの検索用情報として、文字列情報を1以上取得する文字列情報取得手段である。「1つの検索用情報」とは、例えば、音声認識結果の1つの候補(i−Best認識結果)に含まれる1以上の文字列情報である。具体的には、1つの検索用情報には、ヨミを示す第1の文字列情報(例えば「サ/イトウ/ヨウコ/サン/ニ/デンワ」)と、表記を示す第2の文字列情報(例えば「差/伊藤/洋子/さん/に/電話」)とが含まれる。後述する検索部15及び第2の検索手段16による検索によって、1つの検索用情報に対して1つの検索結果(順位付けされた検索結果)が得られる。
文字列情報取得部12は、音声認識部11により生成された音声認識結果(文字列情報)を取得する。図3に示すように、音声認識部11が2つの音声認識結果の候補を生成した場合には、「1−Best認識結果」に対応する文字列情報(ヨミ・表記)及び「2−Best認識結果」に対応する文字列情報(ヨミ・表記)をそれぞれ1つの検索用情報として取得する。文字列情報取得部12によって取得された第1の文字列情報(ヨミ)は、後述する検索部15による検索に用いられ、第2の文字列情報(表記)は、後述する第2の検索部16による検索に用いられる。音声認識結果の候補毎に得られる順位付けされた検索結果は、後述する検索結果出力部17によって総合的に評価され、最終的に出力(ユーザに提示)されるユーザによる1つの発話に対応する1つの検索結果が生成及び出力される。
また、文字列情報取得部12は、形態素解析等の技術を用いることによって、上述のように取得した文字列情報に対して、敬称削除及び名詞取得等の処理を行ってもよい。このような処理を行うことにより、文字列情報データベース14を検索する際に適切な検索キーワードとなり得る文字列情報を効率よく抽出することができる。例えば、図3に示す「1−Best認識結果」に対応する検索用情報について敬称削除及び名詞取得の処理を行った場合には、敬称を示す「サン(さん)」が特定されて削除される。さらに残った文字列情報の中からある基準を満たす名詞文節(例えば、「サ(差)」、「イトウ(伊藤)」、「ヨウコ(洋子)」)が特定及び取得される。ただし、上述の処理は、情報検索装置1において必須の処理ではなく省略されてもよい。
文字数計数部13は、文字列情報取得部12により取得された第1の文字列情報毎に、当該文字列情報が示す文字列の文字数を計数する文字数計数手段である。文字数計数部13は、文字列を構成する文字の個数をカウントすることで第1の文字列情報毎の文字数を取得する。具体的には、文字数計数部13は、例えば「サ」については1文字、「イトウ」については3文字と計数する。文字数計数部13により計数された第1の文字列情報毎の文字数は、後述する検索部15により利用される。
文字列情報データベース14は、情報検索装置1において検索対象となる文字列情報を含むデータ(レコード)を記憶する記憶手段である。具体的には、文字列情報データベース14は、人の氏名を示す文字列情報と電話番号を示す情報とを関連付けて記憶した電話帳データベースである。文字列情報データベース14には、例えば、氏名の表記をひらがな、カタカナ及び漢字等により示す文字列情報(例えば「斎藤洋子」)と、氏名のヨミをカタカナにより示す文字列情報(例えば「サイトウヨウコ」)と、電話番号を示す情報とを相互に関連付けたレコード情報が、ユーザによる操作(情報入力及び登録)等により予め複数記憶されている。
検索部15は、文字列情報取得部12により取得された検索用情報のうちの第1の文字列情報を用いて、文字数計数部13により計数された第1の文字列情報毎の文字数に応じた検索を実行することにより検索結果(第1の検索結果)を取得する検索手段である。第2検索部16は、文字列情報取得部12により取得された検索用情報のうちの第2の文字列情報を用いて検索を実行することにより検索結果(第2の検索結果)を取得する検索手段(第2の検索手段)である。検索結果出力部17は、第1の検索結果と第2の検索結果とを総合的に評価した結果に基づいて最終的にユーザに提示する検索結果を出力する検索結果出力手段である。検索部15、第2検索部16、及び検索結果出力部17の具体的な機能については、以下に示す具体例の中で詳細に説明する。
(第1の例)
第1の例における情報検索装置1では、検索部15Aは、文字数が1文字の文字列情報を除外する。具体的には、検索部15Aは、文字列情報取得部12が検索用情報として取得した文字列情報のうち第1の文字列情報について、文字数計数部13によって計数された文字数を取得し、当該文字数が1文字であると判定した場合に、当該第1の文字列情報を検索用情報から除外(削除・破棄)する。
例えばユーザが「加護(かご)」という内容を意図して発話した際に、音声認識部11が誤認識して取得した第1の文字列情報「タ/ゴ」が、文字列情報取得部12により検索用情報として取得された場合を考える。この場合、検索部15Aは、文字数計数部13が計数した各第1の文字列情報(「タ」及び「ゴ」)の文字数を取得し、これらの第1の文字列情報の文字数が1文字であるか否かを判定する。「タ」及び「ゴ」はいずれも1文字であるため、検索部15Aは、「タ」及び「ゴ」を検索用情報から除外する。検索部15Aは、文字数が2文字以上の第1の文字列情報(例えば「カゴ」、「タナカ」等)については除外せず、当該文字列情報を検索キーワードとして用いて検索を実行する。
検索部15Aは、例えば「あいまい検索」による検索を実行する。具体的には、検索部15Aは、個々の第1の文字列情報を個々の検索キーワード(検索用文字列)とし、検索キーワード毎に、検索対象の文字列情報(文字列情報データベース14に記憶された文字列情報)との比較を行い、ある特定の基準を満たすか否かを判定し、当該基準を満たすと判定した場合に、当該検索対象の文字列情報を含むレコード情報を検索結果として取得する検索方法である。
あいまい検索の具体例としては、完全一致検索及び部分一致検索により検索する方法がある。完全一致検索とは、検索キーワードと検索対象の文字列情報とが完全に一致するか否かを判定し、完全に一致すると判定した場合に、当該文字列情報を検索結果として取得する検索方法である。また、部分一致検索とは、検索キーワードが検索対象の文字列情報に部分的に含まれるか否かを判定し、含まれると判定した場合に、当該文字列情報を検索結果として取得する検索方法である。部分一致検索には、検索対象の文字列情報の前方部分、後方部分、及びこれら以外の部分に検索キーワードが含まれるか否かを判定する方法(前方部分一致、後方部分一致、及び部分一致)等の種類がある。部分一致検索においては、これらの種類のうち1つだけを用いてもよいし、複数組み合わせて用いてもよい。
例えば、検索キーワードが「加護」である場合、検索対象の文字列情報が「加護」であれば完全一致検索により検索結果として取得される。また、検索対象の文字列情報が「加護ちゃん」、「東京の加護」、及び「東京の加護ちゃん」の場合には、それぞれ前方部分一致、後方部分一致、及び部分一致に分類される部分一致検索により検索結果として取得される。
その他のあいまい検索の例として、子母音マッチングによる検索方法がある。子母音マッチングとは、検索キーワードと検索対象の文字列情報との比較において、例えば第一ワード(1番目の文字)の母音同士が一致し且つ第2ワード(2番目の文字)の子音同士及び母音同士がそれぞれ一致するか否かを判定し、一致すると判定した場合に検索対象の文字列情報を検索結果として取得する方法である。ただし、ここで用いられる判定方法は上記に限定されず、例えば上記条件を緩和して、第1ワードの母音同士及び第2ワードの母音同士がそれぞれ一致する場合等に、検索対象の文字列情報を検索結果として取得するようにしてもよい。
例えば、検索キーワードが「加護(kago)」である場合、検索対象の文字列情報が「田護(tago)」であれば、第1ワードの母音(a)同士が一致し且つ第2ワードの子音(g)同士及び母音(o)同士がそれぞれ一致するため、上記いずれの子母音マッチングによる検索方法によっても、検索対象の文字列情報が検索結果として取得される。一方、検索対象の文字列情報が「賀古(kako)」であれば、第1ワードの母音(a)同士及び第2ワードの母音(a)同士がそれぞれ一致するが、第2ワードの子音は一致しない(gとk)。したがって、この場合には、検索対象の文字列情報は、前者の子母音マッチングによる検索方法では検索結果として取得されないが、後者の子母音マッチングによる検索方法では検索結果として取得される。
検索部15Aは、2文字以上の第1の文字列情報を用いてあいまい検索を実行する前に、当該第1の文字列情報の一部又は全部として含まれる部分文字列を特定の文字に変換する処理を行ってもよい。具体的には、例えば、検索部15Aは、変換前の文字列と変換後の文字列との対応情報を記憶する辞書データを予め保持しておく。検索部15Aは、当該辞書データを参照することにより、第1の文字列情報に含まれる全ての部分文字列について、辞書データに記憶されている変換前の文字列と一致するか否かを判定する。検索部15Aは、上記判定により変換前の文字列と一致すると判定された部分文字列を、当該変換前の文字列と対応する変換後の文字列に変換する。これにより、検索部15Aは、変換後の第1の文字列情報を取得する。
図4は、特定の文字についての変換の一例(長音ヨミ変換)を示す図である。このような変換により、例えば「オーノ」及び「サイトー」等の長音記号を含む第1の文字列情報から、「オオノ」及び「サイトウ」等の長音記号を含まない第1の文字列情報を取得することができる。通常、人の氏名のフリガナ(ヨミを示す文字列情報)として登録されるデータには長音記号は含まれないと想定されるため、上記変換処理によって、より検索に適した検索キーワードを取得することができる。なお、検索部15Aは、変換後の第1の文字列情報のみを用いて検索を実行してもよいし、変換前及び変換後両方の第1の文字列情報を用いて検索を実行してもよい。
検索部15Aは、文字数が2文字以上の第1の文字列情報を検索キーワードとして用いて文字列情報データベース14を検索(文字列情報毎に検索)し、検索用情報毎に、検索ヒットした(検索により取得された)文字列情報データベース14上のレコードに関連付けて、検索ヒット回数に応じた検索スコア(初期値は「0」)を算出する。「検索スコア」は、1回の検索ヒットに対して固定値(例えば「1」)を加算するものであってもよいし、例えば第1候補(1−Best認識結果)に対応する第1の文字列情報を検索キーワードとして検索ヒットした場合には「1」を加算し、第2候補(2−Best認識結果)に対応する第1の文字列情報を検索キーワードとして検索ヒットした場合には「0.8」を加算する等、音声認識順位がより高い文字列情報を用いて検索ヒットした際により多くの検索スコアが加算されるように設定されてもよい。
本実施形態においては、検索スコアは後者の方法で計算されるものとする。ここで、各レコードに関連付けられた検索用情報毎の検索スコアを示す情報は、例えば情報検索装置1上において一時的に確保された記憶領域上に記憶され、後述する検索結果出力部17が検索結果を出力する際等に参照される。
第2検索部16は、検索用情報として取得した第2の文字列情報を用いて、検索部15Aと同様に、「あいまい検索」による検索を実行する。ただし、第2の文字列情報にヨミを示す情報(子音及び母音を示す情報)が含まれない場合には、子母音マッチングによるあいまい検索を除く。また、第2検索部16は、検索部15Aと同様の方法により、検索により取得されたレコード毎に関連付けて検索用情報毎の検索スコアを算出する。
検索結果出力部17は、検索用情報毎に、検索部15Aが第1の文字列情報を用いた検索により算出した検索スコアと、第2検索部16が第2の文字列情報を用いた検索により算出した検索スコアとの和を算出する。そして、検索結果出力部17は、検索スコアの和が大きい順に、文字列情報データベース13に記憶されたレコード情報に含まれる文字列情報(例えば氏名及び電話情報を示す情報)を並べて検索結果として出力する。
ここで、複数の検索用情報(複数の音声認識結果の候補)を用いて検索を行った場合には、上述のとおり、各検索結果(レコード)の検索スコアは、検索用情報毎に算出されることになる。この場合には、例えば、検索結果出力部17は、各レコードについて、検索用情報毎に算出された検索スコアのうち最大の検索スコアを各レコードに関連付けられる検索スコア(代表スコア)として抽出する。これについて、以下に具体例を用いて説明する。
例えば、第1候補の音声認識結果に対応する検索用情報が「田/後(タ/ゴ)」であり、第2候補の音声認識結果に対応する検索用情報が「加/護(カ/ゴ)」であったような場合を考える。この場合において、「加護(カゴ)」を含むレコードの第1候補についての検索スコアが「1」であり、第2候補についての検索スコアが「1.6」であったような場合には、検索結果出力部17は、「加護(カゴ)」を含むレコードに関連付けられる代表スコアとして「1.6」を取得する。これにより、各レコードについて、最も検索スコアが高く算出された(検索適合度が高かった)方の検索スコアを代表スコアとして抽出できる。このような代表スコアは、レコード間の検索順位(検索適合順位)を比較するにあたって適切な指標の1つと考えられる。
このような処理を行うことにより、検索結果出力部17は、レコード毎に一意に関連付けられた代表スコアを取得する。検索結果出力部17は、例えば情報検索装置1が備えるディスプレイ等の出力部105に、当該代表スコアが高い順に検索結果(例えば氏名及び電話情報を示す情報)を検索スコア順に並べて出力表示する。
ここで、検索結果出力部17が第1の検索結果(ヨミを示す第1の文字列情報による検索結果)と第2の検索結果(表記を示す第2の文字列情報による検索結果)の両方の検索スコアに基づいて検索結果を出力する理由について、上記とは別の例を用いて説明する。
例えば、文字列情報データベース14に、「斎藤洋子(サイトウヨウコ)」、「斎藤ひろし(サイトウヒロシ)」、「小野ヨーコ」等の文字列情報を含むレコードが記憶されている場合を考える。この場合において、ヨミを示す第1の文字列情報として「サイトウ/ヨウコ」が取得され、表記を示す第2の文字列情報(表記)として「斎藤/陽子」が取得された場合、第1の文字列情報による検索では、「斎藤洋子」と「小野ヨーコ」の両方に同一の検索スコアが付き、第2の文字列情報による検索では、「斎藤洋子」と「斎藤ひろし」の両方に同一の検索スコアが付くような場合が想定される。
このように、第1の文字列情報又は第2の文字列情報のいずれか一方のみを用いて検索した場合には、検索スコアに差がつかない場合であっても、第1の文字列情報及び第2の文字列情報の両方を総合(検索スコアを合算)して判断することにより、ユーザの意図する「斎藤洋子」の検索スコアが大きくなるようにし、上位に表示させることが期待できる。
続いて、図5及び図6を用いて、第1の例における情報検索装置1により実行される処理の動作について説明する。図5は、情報検索装置1により実行される処理を説明するために用いる情報の例を示す図である。図6は、第1の例における情報検索装置1の動作を示すフロー図である。また、以下の説明において、検索部15A及び第2検索部16は、上述の完全一致検索及び部分一致検索(前方部分一致、後方部分一致、及び部分一致の全てを含む)をあいまい検索として実行するものとする。
まず、音声認識部11は、ユーザが「加護さんに電話」という内容を意図して発話した音声を入力し、音声認識処理を実行する(ステップS101)。続いて、文字列情報取得部12は、当該音声認識処理により生成された文字列情報(第1候補の音声認識結果として「タ/ゴ/サン/ニ/デンワ」及び「田/後/さん/に/電話」、第2候補の音声認識結果として「カゴ/サン/ニ/デンワ」及び「加護/さん/に/電話」)を取得する(ステップS102)。文字列情報取得部12は、第1候補の音声認識結果を取得し(ステップS103)、敬称削除及び名詞取得の処理を実行することにより、検索用情報(「タ/ゴ」及び「田/後」)を取得する(ステップS104、文字列情報取得ステップ)。ここで、ステップS104の処理を行わない場合には、ステップS103が文字列情報取得ステップに相当する。
続いて、文字数計数部13は、文字列情報取得部12が取得したヨミを示す検索用情報(「タ/ゴ」)に含まれる各文字列情報の文字数を計数する(ステップS105,文字数計数ステップ)。これにより、文字数計数部13は、「タ」及び「ゴ」それぞれの文字数(1文字)を取得する。
続いて、検索部15Aは、ステップS105で計数された文字数に基づいて検索処理を実行する(ステップS106、検索ステップ)。具体的には、検索部15Aは、文字列情報取得部12が取得した文字列情報「タ」を取得し(ステップS106A)、文字数が1文字か否かを判定する(ステップS106B)。ここで、「タ」の文字数は1文字であるため、検索部15Aは、「タ」を用いた検索処理(あいまい検索)をスキップ(「タ」を検索用情報から除外)する(ステップS106B:YES)。その後、次の文字列情報「ゴ」についても、検索部15Aにより同様の処理がされる(ステップS106E:NO,S106A,S106B:YES)。
一方、第2検索部16は、文字列情報取得部12が取得した表記を示す文字列情報(「田/後」)から、文字列情報「田」を取得し(ステップS107)、当該文字列情報を用いてあいまい検索を実行する(ステップS108)。ここで、第2検索部16は、当該あいまい検索により検索ヒットした「田原」及び「田辺」を含むレコードの第1候補についての検索スコアを1だけ加算する。
続いて、第2検索部16は、「田」の次の文字列情報「後」を用いたあいまい検索を実行する(ステップS109:NO,S107,S108)。ここで、第2検索部16は、当該あいまい検索により検索ヒットした「後藤」を含むレコードの第1候補についての検索スコアを1だけ加算する。
第1候補の音声認識結果に対応する検索用情報に含まれる全ての文字列情報についての検索部15A及び第2検索部16による検索処理が完了したら(ステップS106E:YES,S109:YES)、それぞれの検索により得られたレコード毎の検索スコアが合算されて、第1候補の音声認識結果に対応する検索用情報に関する各レコードの検索スコアが確定する(ステップS110)。即ち、「後藤」を含むレコード、「田原」を含むレコード、及び「田辺」を含むレコードの第1候補についての検索スコアがそれぞれ「1」と確定する。
続いて、文字列情報取得部12は、第2候補の音声認識結果を取得し(ステップS111:NO,S103)、敬称削除及び名詞取得の処理を実行することにより、検索用情報(「カゴ」及び「加護」)を取得する(ステップS104、文字列情報取得ステップ)。
続いて、文字数計数部13は、文字列情報取得部12が取得したヨミを示す検索用情報(「カゴ」)に含まれる各文字列情報の文字数を計数する(ステップS105,文字数計数ステップ)。これにより、文字数計数部13は、「カゴ」の文字数(2文字)を取得する。続いて、検索部15Aは、「カゴ」を取得し(ステップS106A)、文字数が1文字か否かを判定する(ステップS106B)。「カゴ」の文字数は2文字であるため、検索部15Aは、「カゴ」について特定の文字を変換する処理(例えば図4に示す長音ヨミ変換)を必要に応じて実行し(ステップS106B:NO,S106C)、「カゴ」を用いてあいまい検索を実行する(ステップS106D)。検索部15Aは、当該あいまい検索により検索ヒットした「カゴ」を含むレコードの第2候補についての検索スコアを0.8だけ加算する。
一方、第2検索部16は、文字列情報取得部12が取得した表記を示す検索用情報(「加護」)を取得し(ステップS107)、当該文字列情報を用いてあいまい検索を実行する(ステップS108)。ここで、第2検索部16は、当該あいまい検索により検索ヒットした「加護」を含むレコードの第2候補についての検索スコアを0.8だけ加算する。
検索部15A及び第2検索部16によって検索用情報に含まれる全ての文字列情報についての検索処理が完了したら(ステップS106E:YES,S109:YES)、それぞれの検索により得られたレコード毎の検索スコアが合算されて、第2候補の音声認識結果に対応する検索用情報に関する各レコードの検索スコアが確定する(ステップS110)。即ち、「加護」を含むレコードの第2候補についての検索スコアが「1.6」と確定する。
全ての音声認識結果の候補について処理が完了したら(ステップS111:YES)、検索結果出力部17が、検索部15A及び第2検索部16により取得された検索結果について代表スコアを抽出する。検索結果出力部17は、当該検索結果を代表スコア順(「加護」(1.6)→「後藤」(1)→「田原」(1)→「田辺」(1)→…。ここで、括弧内の数字は代表スコアを示す。)に並べて、情報検索装置1が備えるディスプレイ等の出力部105に出力する(ステップS112、検索結果出力ステップ)。
以上の処理において、仮に文字数計数部13及び検索部15AによるステップS106及びステップS107Aの処理がされなければ、「タ」及び「ゴ」についての検索処理がスキップされず、ステップS107Cにおいてあいまい検索がされる。その結果、「後藤」を含むレコード、「田原」を含むレコード、及び「田辺」を含むレコードの検索スコア(代表スコア)は、「2」となり、「加護」を含むレコードの検索スコア(代表スコア)である「1.6」を上回る。したがって、ステップS113において検索結果出力部17により並べられる順序は、「後藤」→「田原」→「田辺」→「加護」となってしまい、ユーザが意図(所望)する「加護」を含むレコードよりもユーザの意図しないレコードが上位に表示されてしまうという問題が生じる。特に上記例のように、1文字のキーワードを用いてあいまい検索を行った場合には、ユーザの意図しないレコードが多数検索ヒットして検索スコアが高く算出されてしまうおそれが高くなると考えられる。
第1の例における情報検索装置1によれば、上述のとおり、検索誤りを生じる可能性の高い文字列情報(文字数が1文字の文字列情報)を検索キーワードから除外することにより、検索誤りによる影響を低減できる。即ち、検索誤りによってユーザの意図しない検索結果が大量に表示(上位に表示)されてしまい、ユーザの所望する検索結果が表示されない(又は下位に表示される)といった状況が生じるおそれを低減できる。
(第2の例)
第2の例における情報検索装置1について、第1の例と主に相違する点について説明する。第2の例における情報検索装置1では、文字列情報取得部12は、予め順序付けされた文字列情報を検索用情報として取得する。文字列情報取得部12は、例えば図3に示すような音声認識結果から、分節された各文字列を先頭から順に取得し、取得した順序を各文字列の順序として対応付けることができる。また、検索部15Bは、順序付けに基づいて文字数が1文字の異なる2つの文字列情報が互いに隣接するか否かを判定する。具体的な判定処理の手順の一例については、後述のフローの説明において示す。検索部15Bは、当該2つの文字列情報が互いに隣接すると判定した場合には、当該2つの文字列情報が示す文字列同士を連結して新たな文字列を生成し、当該新たな文字列を示す情報を含む文字数が2文字以上の文字列情報を用いて検索を実行する。
続いて、図5及び図7を用いて、第2の例における情報検索装置1により実行される処理の動作を説明する。図7は、第2の例における情報検索装置1の動作を示すフロー図である。ただし、ステップS201〜S205,S207〜S212の処理は、図6に示す第1の例における情報検索装置1により実行されるステップS101〜S105,S107〜S112の処理と同様であるため詳細な説明を省略する。また、以下の説明において、検索部15B及び第2検索部16は、上述の完全一致検索及び部分一致検索(前方部分一致、後方部分一致、及び部分一致の全てを含む)をあいまい検索として実行するものとする。
ステップS201〜S204の処理によって、文字列情報取得部12は、検索用情報(「タ/ゴ」及び「田/後」)を取得する。続いて、ステップS205の処理によって、文字数計数部13は、文字列情報「タ」及び「ゴ」それぞれの文字数(1文字)を計数により取得する。
続いて、検索部15Bは、ステップS205で計数された文字数に基づいて検索処理を実行する(ステップS206、検索ステップ)。具体的には、検索部15Bは、文字列情報取得部12が取得した文字列情報「タ」を取得し(ステップS206A)、文字数が1文字か否かを判定する(ステップS206B)。ここで、「タ」の文字数は1文字であるため、検索部15Bは、1つ次の文字列情報(次分節)が1文字か否かを判定する(ステップS206C)。ここで、文字列情報「タ」の次の文字列情報「ゴ」も1文字であるため(ステップS206C:YES)、「タ」と「ゴ」とを連結して新たな文字列「タゴ」を生成する(ステップS206D)。
続いて、検索部15Bは、当該新たな文字列「タゴ」について特定の文字を変換する処理(例えば図4に示す長音ヨミ変換)を必要に応じて実行し(ステップS206E)、「タゴ」を用いてあいまい検索を実行する(ステップS206F)。図5に示す文字列情報データベース13に格納された文字列情報の中には「タゴ」を用いたあいまい検索により検索ヒットするレコードはないため、どのレコードの検索スコアも加算されない。
その後、第2検索部16による検索処理(ステップS207〜S209)を含め、全ての音声認識結果の候補についての処理が完了したら(ステップS211:YES)、検索結果出力部17が、検索部15B及び第2検索部16により取得された検索結果について代表スコアを抽出する。検索結果出力部17は、当該検索結果を代表スコア順(「加護」(1.6)→「後藤」(1)→「田原」(1)→「田辺」(1)→…。ここで、括弧内の数字は代表スコアを示す。)に並べて、情報検索装置1が備えるディスプレイ等の出力部105に出力する(ステップS212、検索結果出力ステップ)。
以上のように、第2の例における情報検索装置1によれば、検索部15Bが互いに隣接する1文字の文字列情報(「タ」と「ゴ」)を連結して「タゴ」(新たな文字列)を生成し、当該新たな文字列を検索用文字列として用いて検索することによって、第1の例と同様に、検索誤りによる影響を低減できる。
また、例えばユーザが「加護さんに電話」という内容を意図して発話した場合であって、音声認識誤りによって「カ/ゴ」と分節された文字列情報が得られた場合を考える。この場合、検索部15Bが、互いに隣接する1文字の文字列情報である「カ」及び「ゴ」を除外するのではなく、これらの文字列情報を連結して生成した新たな文字列情報「カゴ」を用いて検索することにより、ユーザの意図する「加護(カゴ)」を含むレコードを検索結果として取得し、当該レコードの検索スコアを加算することができる。したがって、ユーザの意図する「加護(カゴ)」を含むレコードが、検索結果出力部17により上位に出力(表示)される可能性を高めることができ、検索精度を向上させることが期待できる。
なお、第2の例では、検索部15Bは、文字列情報を順次処理し、1つ次の文字列情報が1文字か否かを判定することにより文字列情報同士を連結するか否かを判定するものとして説明したが、判定方法はこれに限定されない。例えば、検索部15Bは、文字列情報を順次処理し、1つ前の文字列情報が1文字か否かを判定することにより文字列情報同士を連結するか否かを判定してもよい。また、検索部15Bは、順序付けされた文字列情報を最初に全て走査し、1文字の文字列情報が隣接する箇所を検出したら当該文字列情報同士を連結するようにしてもよい。
(第3の例)
第3の例における情報検索装置1について、第1の例と主に相違する点について説明する。第3の例における情報検索装置1では、検索部15Cは、文字数が1文字の文字列情報を用いた検索と文字数が2文字以上の文字列情報を用いた検索とについて、互いに異なる検索条件に基づいて検索を実行する。具体的には、検索部15Cは、文字数が2文字以上の第1の文字列情報については上述のあいまい検索を実行し、文字数が1文字の第1の文字列情報については完全一致検索のみを実行する。
続いて、図5及び図8を用いて、第3の例における情報検索装置1により実行される処理の動作を説明する。図8は、第3の例における情報検索装置1の動作を示すフロー図である。ただし、ステップS301〜S305,S307〜S312の処理は、図6に示す第1の例における情報検索装置1により実行されるステップS101〜S105,S107〜S112の処理と同様であるため詳細な説明を省略する。また、以下の説明において、検索部15C及び第2検索部16は、上述の完全一致検索及び部分一致検索(前方部分一致、後方部分一致、及び部分一致の全てを含む)をあいまい検索として実行するものとする。
ステップS301〜S304の処理によって、文字列情報取得部12は、検索用情報(「タ/ゴ」及び「田/後」)を取得する。続いて、ステップS305の処理によって、文字数計数部13は、文字列情報「タ」及び「ゴ」それぞれの文字数(1文字)を計数により取得する。
続いて、検索部15Cは、ステップS305で計数された文字数に基づいて検索処理を実行する(ステップS306、検索ステップ)。まず、検索部15Cは、文字列情報取得部12が取得した文字列情報「タ」を取得し(ステップS306A)、特定の文字を変換する処理(例えば図4に示す長音ヨミ変換)を必要に応じて実行する(ステップS306B)。続いて、検索部15Cは、文字列情報「タ」について文字数が1文字か否かを判定する(ステップS306C)。ここで、「タ」の文字数は1文字であるため、検索部15Cは、文字列情報「タ」を用いて完全一致検索を実行する(ステップS306D)。ここで、文字列情報データベース13は、「タ」と完全一致する文字列情報を記憶していないため、検索ヒットするレコードは存在せず、どのレコードの検索スコアも加算されない。その後、次の文字列情報「ゴ」についても、検索部15Cにより同様の処理がされる(ステップS306F:NO,S306A,S306B,S306C:YES,S306D)。
その後、第2検索部16による検索処理(ステップS307〜S309)を含め、全ての音声認識結果の候補についての処理が完了したら(ステップS311:YES)、検索結果出力部17が、検索部15C及び第2検索部16により取得された検索結果について代表スコアを抽出する。検索結果出力部17は、当該検索結果を代表スコア順(「加護」(1.6)→「後藤」(1)→「田原」(1)→「田辺」(1)→…。ここで、括弧内の数字は代表スコアを示す。)に並べて、情報検索装置1が備えるディスプレイ等の出力部105に出力する(ステップS312、検索結果出力ステップ)。
以上のように、検索部15Cが1文字の文字列情報(「タ」と「ゴ」)についてはあいまい検索を許容せず、完全一致検索を実行することにより、1文字の文字列情報を用いてあいまい検索を行った場合に生じ得る大量の検索誤りによる影響を低減できる。
また、例えばユーザが「李さんに電話」という内容を意図して発話した場合であって、正しく音声認識されて文字列情報「リ」が得られた場合を考える。この場合、検索部15Cが、「リ」を単純に除外するのではなく、「リ」を用いて完全一致検索を実行することにより、ユーザの所望する情報(「李(リ)」を含むレコード)を取得する(当該レコードの検索スコアを高くし、検索結果出力部17により上位に表示させる)ことができる。
以上、本実施形態に係る情報検索装置1について第1の例から第3の例まで説明したが、これらの例において、第2検索部16は、検索用情報として取得した第2の文字列情報に対して、検索部15が当該第2の文字列情報と対応する第1の文字列情報に対して当該第1の文字列情報の文字数に応じて実行する処理と同一の処理を実行し、当該第2の文字列情報を用いて検索を実行してもよい。
例えば、図5に示す例において、検索部15が除外処理を行った第1の文字列情報「タ」と対応する第2の文字列情報「田」については、第2検索部16は検索部15と同様に除外処理を行ってもよい。例えば、検索部15が、そのまま検索用情報として用いるのに適さないと判断して第1の文字列情報を除外及び連結等の処理を実行した場合には、当該第1の文字列情報に対応する第2の文字列情報についても同様に検索用情報として用いるのに適さない可能性が高いと考えられる。したがって、上記構成によれば、第1の文字列情報と当該第1の文字列情報に対応する第2の文字列情報とについて、同一の考え方に則った同一の方法(除外・連結等の処理、及び検索方法(完全一致検索及び部分一致検索等)等)によって検索を実行するため、検索誤りをより効率よく低減することができる。
上記構成によれば、上述の第1の例〜第3の例において、第2検索部16によって「田」及び「後」を用いたあいまい検索が実行されないため、「後藤」、「田原」、及び「田辺」を含むレコードは検索結果として取得されず、検索スコアが加算されない。これにより、検索結果出力部17によって、検索結果として取得された「加護」のみが表示される。即ち、上記構成によれば、ユーザの意図しない検索結果の表示(誤りデータ件数)を抑制できることがわかる。
また、情報検索装置1は、第1の例と第2の例とを組み合わせた構成として実現されてもよい。即ち、検索部15による処理において、検索用情報として取得した第1の文字列情報について、互いに隣接する2つの1文字の文字列情報については連結し、互いに隣接しない1文字の文字列情報については除外する構成としてもよい。
また、情報検索装置1は、第2の例と第3の例とを組み合わせた構成として実現されてもよい。即ち、検索部15による処理において、検索用情報として取得した第1の文字列情報について、互いに隣接する2つの1文字の文字列情報については連結し、互いに隣接しない1文字の文字列情報については完全一致検索を実行する構成としてもよい。
なお、本実施形態では、文字列情報データベース14が電話帳データベースであり、情報検索装置1が電話帳検索の機能をユーザに提供する装置である場合の例を示したが、必ずしもこれらに限定されるものではない。文字列情報データベース14は、検索対象となり得る文字列情報(例えば、人名及び地名等の固有名詞を示す情報)を含むものであれば何でもよく、情報検索装置1は、例えば電話帳検索と同様に人の氏名等を示す文字列情報を検索キーワードとしてメール検索(送信者による宛先メールアドレスの検索)及びスケジュール検索(特定個人のスケジュールの検索)等を行う検索装置に適用可能である。また、駅名及び地名等の固有名詞を示す文字列情報を検索キーワードとして駅名検索及び地図(地名)検索等を行う検索装置にも適用可能である。
上記情報検索装置では、文字列情報取得手段は、予め順序付けされた複数の文字列情報を取得し、検索手段は、上記順序付けに基づいて文字数が1文字の異なる2つの文字列情報が互いに隣接するか否かを判定し、当該2つの文字列情報が互いに隣接する場合には、当該2つの文字列情報が示す文字列同士を連結して新たな文字列を生成し、当該新たな文字列を示す情報を含む文字数が2文字以上の文字列情報を用いて検索を実行する。
即ち、本発明に係る情報検索方法は、1つの検索用情報として、文字列を示す文字列情報を1以上取得する文字列情報取得ステップと、文字列情報取得ステップにおいて取得された文字列情報毎に、当該文字列情報が示す文字列の文字数を計数する文字数計数ステップと、文字列情報取得ステップにおいて取得された検索用情報を用いて、文字数計数ステップにおいて計数された当該文字列情報毎の文字数に応じた検索を実行することにより検索結果を取得する検索ステップと、検索ステップにおいて取得された検索結果を出力する検索結果出力ステップと、を含み、検索ステップにおいて、文字数が1文字の文字列情報を除外し、文字数が2文字以上の文字列情報を用いて検索を実行する。また、本発明に係る情報検索方法は、1つの検索用情報として、文字列を示す文字列情報を1以上取得する文字列情報取得ステップと、文字列情報取得ステップにおいて取得された文字列情報毎に、当該文字列情報が示す文字列の文字数を計数する文字数計数ステップと、文字列情報取得ステップにおいて取得された検索用情報を用いて、文字数計数ステップにおいて計数された当該文字列情報毎の文字数に応じた検索を実行することにより検索結果を取得する検索ステップと、検索ステップにおいて取得された検索結果を出力する検索結果出力ステップと、を含み、文字列情報取得ステップにおいて、予め順序付けされた複数の文字列情報を取得し、検索ステップにおいて、上記順序付けに基づいて文字数が1文字の異なる2つの文字列情報が互いに隣接するか否かを判定し、当該2つの文字列情報が互いに隣接する場合には、当該2つの文字列情報が示す文字列同士を連結して新たな文字列を生成し、当該新たな文字列を示す情報を含む文字数が2文字以上の文字列情報を用いて検索を実行する。