以下,本実施の形態について,図を用いて説明する。
認識結果のデータを検索対象データとし,文字認識誤りを考慮したキーワード検索は,従来からいくつかの技術が提案されている。
例えば,文字の認識誤りの傾向をデータベース化しておき,検索キーワードをそのデータベースに従って展開し,生成された文字列も検索キーワードに含めるという技術がある。この技術では,例えば,「字」と「宇」とは互いに類似文字であるとデータベースに登録しておく。「宇宙」を検索キーワードとした検索が行われるときには,データベースに基づいて「宇宙」と共に「字宙」のも検索が行われ,そのいずれかが発見された場合に,「宇宙」が検出されたものとして,その結果がユーザに示される。
また,文字認識誤りを考慮したキーワード検索の別の技術として,文字の脱落や挿入,文字認識結果の第N候補の入替えを考慮した技術がある。この技術では,検索対象のデータには,文字ごとに文字認識結果の第N候補までが記録されており,第N候補までの組合せによって検索キーワードが形成できた場合に,検索キーワードが発見されたと判断される。
例えば,紙上の画像に「宇宙」と言う文字列があったものとする。このとき,紙上の「宇」の文字に対する文字認識結果の候補は,第1候補:「宇」,第2候補:「字」,第3候補:「宅」であったものとする。また,紙上の「宙」の文字に対する文字認識結果の候補は,第1候補:「笛」,第2候補「宙」,第3候補:「富」であったものとする。
このとき,検索対象データに対して検索キーワード「宇宙」で検索を行うものとする。「宇宙」の「宇」が第1候補,「宇宙」の「宙」が第2候補に存在するので,それぞれ第1候補の「宇」と第2候補の「宙」と組み合わせると,「宇宙」の文字列が形成される。したがって,検索キーワード「宇宙」で検索を行ったときに,紙上の「宇宙」が正しく発見される。
これらの技術については,例えば,次の参考文献1に記載されている。
〔参考文献1〕
丸川勝美,藤澤浩道,嶋好博, 「認識機能の出力あいまい性を許容した情報検索手法の一検討」, 電子情報通信学会論文誌 D Vol.J79-D2 No.5 pp.785-794,1996.05
また,検索キーワード中の文字の脱落や,文字の置換,ノイズ文字の挿入を所定の範囲内で許容し,キーワードを検索するあいまい検索の技術がある。この技術については,例えば,次の参考文献2に記載されている。
〔参考文献2〕
喜田拓也, 「誤りを許したVLDCパタン照合アルゴリズム」,社団法人電子情報通信学会技術研究報告, コンピュテーション,Vol.103 ,No.622(20040122) pp.61-68
類似文字を登録したデータベースを使用し,検索キーワードを展開し,検索キーワード数を増やす技術では,データベースに含まれない認識誤りが発生した場合に,キーワード検索に失敗する。また,第N候補までを確認する技術では,正しい文字認識結果が第N候補までに認識できなければ,キーワード検索に失敗する。
これに対して,文字の置換・挿入・脱落が考慮されたあいまい検索の技術では,上記の2つの技術に比べ,検索キーワード抽出に失敗する可能性が低い。しかし,その反面,検索ノイズが増えるという問題が発生する。検索ノイズは,検索結果に含まれる,検索の目的としない文字列を指す。
あいまい検索では,例えば,「公立小学校」を検索した場合に,「公立中学校」も検索結果に含まれるようになる。この場合,「公立中学校」は目的とする検索結果ではないため,検索ノイズとなる。
前者の2つの技術では,「小」と「中」は,互いに類似文字ではなく,また「中」の文字認識結果の上位候補に「小」が入ることは稀であるため,「公立中学校」が検索で引っかからず,検索ノイズが発生しない。つまり,文字に置換・挿入・脱落を許容するあいまい検索では,検索キーワードの発見率は高いが,検索ノイズの発生率も高いという問題がある。
ここで,あいまい検索について,少し詳しく説明する。
なお,本実施の形態では,検索対象データとして,主にOCR(Optical Character Recognition :光学文字認識)結果のデータを例として,説明を行う。検索対象データとしては,OCR結果のデータ以外にも,例えば,音声認識結果のデータ,手書き文字認識結果のデータ,点字認識結果のデータなど,様々な認識結果のデータがある。
文字認識では,認識精度が100%でないため,認識結果のデータの中に認識誤りが含まれることがある。例えば,
「神奈川県厚木市にある吹奏楽部が部員を募集しています。」
という認識対象文書に対する文字認識を行うものとする。その結果として,文字認識に誤りが発生した場合に,例えば,次のような認識結果のデータが得られる。
「ネ申奈ノil県厚柿(こある吹泰楽学部が部員を慕集しています。」
この例では,文字認識において,「神」が「ネ申」と誤認識されたり,「木市」が「柿」と誤認識されている。そのため,得られた認識結果である検索対象データに対して,検索キーワードとして「神奈川県」や「厚木市」を用いた完全一致検索を行うと,もとの文書の該当文字列を発見することができない。そこで,OCR結果に対する検索では,検索キーワードに完全に一致していなくても所定の範囲内で一致する文字列を,検索対象データから発見するあいまい検索が用いられる。
ここでは,文字の置換・脱落・挿入を許容するあいまい検索を考える。
置換は,他の文字への入れ替えを意味する。例えば,「公立中学校」を検索キーワードとして検索を行うときに,1文字の置換を許容すると,「中」が「巾」と誤認識されていても,「公立巾学校」があいまい検索にヒットする。結果的に,目的とする「公立中学校」の文字列画像を発見することができる。
脱落は,検索キーワード中の文字が,検索対象データ上では欠落していることを示す。例えば,「サポート」を検索キーワードとして検索を行うときに,1文字の脱落を許容すると,「ー」が薄い印刷で消えてしまい「サポト」となっていても,あいまい検索にヒットする。
挿入は,検索キーワードの任意の文字の間に,他の文字が挿入されていることを示す。例えば,「10時」を検索キーワードとして検索を行うときに,「1」と「0」の間に汚れがあって認識結果が「1.0時」となっていても,あいまい検索にヒットする。
しかし,このような置換・脱落・挿入を許容したあいまい検索では,検索キーワードで与えられる目的の文字列の発見率は非常に高くなるが,その代わりに,不要な結果である検索ノイズも非常に多くなる。置換・脱落・挿入のすべてを許容すると,様々な結果が得られる。
例えば,「高層マンション」を検索キーワードとして,50%以上の文字が一致した場合に検索ヒットと判定するようにすると,「高級マシンガン」が検索にヒットする。すなわち,「層」が「級」に置換,「ン」が脱落,「ョ」が「ン」に置換,「ガ」が挿入で,一致文字数の割合は4文字/7文字となり,検索ヒットとなる。しかし,検索ヒットとなる「高級マシンガン」が,「高層マンション」に対する文字認識誤りで「高級マシンガン」に認識された結果であるとは考えにくい。すなわち,「高級マシンガン」は,本来目的とする検索結果ではなく,検索ノイズである可能性が非常に高い。
図1は,あいまい検索を適用した際の検索結果を分類した例を示す図である。
図1において,認識対象文字列は,文字認識前の画像の文字列である。図1において,認識結果文字列は,認識結果として得られた文字列である。図1において,検索キーワードは,あいまい検索で用いられた検索キーワードである。
図1において,認識対象文字列と認識結果文字列とが異なる場合には,認識誤りが発生している。認識対象文字列と認識結果文字列とが同じ場合には,認識誤りが発生していない。また,図1において,認識結果文字列と検索キーワードとが同じ場合には,完全一致の検索結果となる。認識結果文字列と検索キーワードとが異なる場合には,許容された範囲で一致すると判定された検索結果となる。また,図1において,認識対象文字列と検索キーワードとが同じ場合には,検索結果の文字列は適切な検索結果である。認識対象文字列と検索キーワードとが異なる場合には,検索結果の文字列は検索ノイズである。
検索対象データに対して,あいまい検索を適用した結果として検出される文字列は,次の5つのパターンに分類することができる。
図1において,パターン#1は,認識誤りが発生していない下で,検索キーワードと検索ヒット文字列とが完全一致しているパターンである。このケースでは,目的とする検索キーワードが,検索対象データから正しく発見されていることになるので,検索結果の文字列は,適切な検索結果である。
図1において,パターン#2は,認識誤りが発生していない下で,検索キーワードと検索ヒット文字列が許容された範囲で一致すると判定されたパターンである。本来,あいまい検索の置換・脱落・挿入は,認識誤りに対応するために導入する仕組みであるが,副作用として,検索キーワードに類似する別の単語を検出してしまうケースがある。パターン#2が,このケースに相当する。図1のパターン#2に示す例は,検索キーワードが「中学校」であり,文字の一致度が60%以上の文字列をヒットとするあいまい検索を行った結果,「小学校」の文字列も検索にヒットしてしまった例である。この例では,認識誤りが発生していないので,認識対象文字列と,検索キーワードとは異なる文字列である。すなわち,パターン#2に示すあいまい検索結果は,検索ノイズである。
図1において,パターン#3は,認識誤りが発生している下で,検索キーワードと検索ヒット文字列とが完全一致しているパターンである。認識誤りが発生しているにもかかわらず,検索キーワードと検索ヒット文字列とが完全に一致するという状態は,非常に稀である。
通常,認識誤りが発生した場合,誤った出力は,言語として成立しない単語を形成することが多い。例えば,「神奈川」の認識結果が「ネ申奈ノi|」と誤認識された場合,認識結果「ネ申奈ノi|」は,実際には存在しない言葉である。同様に,「吹奏楽」を誤認識した「吹泰楽」なども,現実には存在しない単語となる。これに対し,検索キーワードは,ユーザ自身が自ら入力する言葉なので,通常,誤りは含まれていない。すなわち,ユーザ自身がみずから入力する検索キーは,通常,言語として成立する言葉である。そのため,認識誤りのある文字列とユーザの入力した検索キーとが完全一致することは,珍しい。
パターン#3によるあいまい検索結果は,認識誤りがあるにもかかわらず検索キーワードと完全一致することから,偶然,認識誤りが発生したことにより,検索キーワードと全く同じ単語が発生したと解釈できる。図1に示す例は,紙上の単語「金額」が認識誤りの結果,認識結果である検索対象データに「全額」と出力され,たまたま検索キーワードに「全額」が入力されたために,完全一致した例である。パターン#3のあいまい検索結果は,検索ノイズである。
図1において,パターン#4は,認識誤りが発生している下で,検索キーワードと検索ヒット文字列が許容された範囲で一致すると判定されたパターンである。このパターンでは,認識誤りが発生しているため,検索キーワードによる完全一致検索では,検索ヒットとならない文字列が検索ヒットとなる。パターン#4では,認識対象文字列と検索キーワードとが一致しているので,検索結果の文字列は,適切な検索結果である。あいまい検索の目的は,パターン#4のような文字列を見つけ出すことである。
図1において,パターン#5は,パターン#4と同様に,認識誤りが発生している下で,検索キーワードと検索ヒット文字列が許容された範囲で一致すると判定されたパターンである。ただし,パターン#5では,認識対象文字列と検索キーワードとが一致していないので,検索結果の文字列は,検索ノイズである。
図1に示す検索結果が検索ノイズとなるパターンの中でも,パターン#2は多く発生する。以下の実施の形態1〜4では,検索結果からパターン#2の検索ノイズを除外することで,あいまい検索の検索精度を向上させる技術の例を説明する。
〔実施の形態1〕
図2は,本実施の形態による文字列検索装置の構成例を示す図である。
本実施の形態による文字列検索装置10は,認識結果である検索対象データに対して,検索キーワードを用いた検索を行う装置である。文字列検索装置10は,検索対象データ記憶部11,キーワード記憶部12,検索実行部13,検索結果記憶部14,一致判定部15,認識誤り評価部16,除外部17を備える。
検索対象データ記憶部11は,文字認識,音声認識,点字認識などの認識結果である検索対象データを記憶する,コンピュータがアクセス可能な記憶部である。本実施の形態では,検索対象データは,例えば,OCR結果のデータである。
キーワード記憶部12は,検索キーワードを記憶する,コンピュータがアクセス可能な記憶部である。キーワード記憶部12に記憶された検索キーワードは,例えば,ユーザにより入力された検索キーワードを文字列検索装置10が受け付けたものである。
検索実行部13は,検索対象データに対して,検索キーワードを用いたあいまい検索を行う。あいまい検索では,検索キーワードとの所定以内の不一致を許容する検索が行われる。検索実行部13は,検索結果文字列を検索結果記憶部14に記憶する。検索結果記憶部14は,検索結果文字列を記憶する,コンピュータがアクセス可能な記憶部である。
一致判定部15は,検索結果文字列が検索キーワードに完全一致するか否かを判定する。
認識誤り評価部16は,検索結果文字列が検索キーワードと完全一致しない場合に,検索結果文字列に認識誤りが発生している可能性を判断する。
除外部17は,検索結果文字列に認識誤りが発生していないと判断された場合に,検索結果文字列を検索結果から除外する。除外部17は,検索結果記憶部14から,除外となった検索結果文字列を削除する。
検索結果記憶部14に記憶された検索結果は,例えばディスプレイなどの表示装置に出力される。
図2に示す文字列検索装置10の構成は,本実施の形態1のみの構成ではなく,後述の実施の形態2〜実施の形態4についても同様の構成となる。各実施の形態では,認識誤り評価部16の動作のみが異なる。
図3は,本実施の形態1による認識誤り評価部の構成例を示す図である。
図3に示す認識誤り評価部16aは,図2に示す文字列検索装置10が備える認識誤り評価部16の一例である。認識誤り評価部16aは,検索結果文字列に含まれる文字について,認識時に得られた認識の信頼性を示す情報を取得する。認識誤り評価部16aは,認識の信頼性を示す情報に基づいて,検索結果文字列に含まれるすべての文字についてそれぞれが所定以上の信頼性があると判定された場合に,検索結果文字列に認識誤りが発生していないと判断する。認識誤り評価部16aは,認識信頼性情報取得部110,認識誤り判断部111を備える。
認識信頼性情報取得部110は,検索結果文字列に含まれる文字について,認識時に得られた認識の信頼性を示す情報を取得する。認識の信頼性を示す情報は,文字認識の過程で得られる数値情報である。本実施の形態1の検索対象データ記憶部11には,認識結果である検索対象データとともに,文字認識の過程で得られる文字ごとの認識の信頼性を示す情報が記憶されているものとする。
認識誤り判断部111は,認識の信頼性を示す情報に基づいて,検索結果文字列に含まれるすべての文字についてそれぞれが所定以上の信頼性があると判定された場合に,検索結果文字列に認識誤りが発生していないと判断する。
図4は,本実施の形態による文字列検索装置を実現するハードウェアの構成例を示す図である。
図2に示す本実施の形態の文字列検索装置10は,例えば,CPU(Central Processing Unit )2,主記憶となるメモリ3,記憶装置4,通信装置5,媒体読取・書込装置6,入力装置7,出力装置8等を備えるコンピュータ1によって実現される。記憶装置4は,例えばHDD(Hard Disk Drive )などである。媒体読取・書込装置6は,例えばCD−R(Compact Disc Recordable )ドライブやDVD−R(Digital Versatile Disc Recordable )ドライブなどである。入力装置7は,例えばキーボード・マウスなどである。出力装置8は,例えばディスプレイ等の表示装置などである。
図2に示す文字列検索装置10および文字列検索装置10が備える各機能部は,コンピュータ1が備えるCPU2,メモリ3等のハードウェアと,ソフトウェアプログラムとによって実現することが可能である。コンピュータ1が実行可能なプログラムは,記憶装置4に記憶され,その実行時にメモリ3に読み出され,CPU2により実行される。
コンピュータ1は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ1は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータ1で読み取り可能な記録媒体に記録しておくことができる。
このような文字列検索装置10を実現するコンピュータ1の構成の例は,本実施の形態1に限らず,後述の実施の形態2〜実施の形態4の文字列検索装置10や,後述の実施の形態5の文字列検索装置20についても同様である。
ここで,認識の信頼性を示す情報の例について説明する。
文字認識では,認識したい入力文字に対する,あらかじめ用意された文字の形などを記録してある文字のテンプレートの照合が行われ,最も近い形の文字が認識結果に選ばれる。このとき,入力文字とテンプレート文字の類似の程度を表す認識距離を得ることができる。認識距離には,例えば,2値化された2つの文字画像のハミング距離を用いたり,それぞれの文字を文字ストロークの方向成分を要素に持つ特徴ベクトルに変換した後のマハラノビス距離を用いたりすることができる。認識距離を求める技術には,様々な技術がある。例えば,次の参考文献3に,認識距離を求める技術の一例が記載されている。
〔参考文献3〕特開昭59−177684号公報
ハミング距離やマハラノビス距離は,その値が小さいほど,2つの文字が似ていることを示す。逆に大きい値であると,両者の文字画像は,全く異なる他の文字画像であることを示す。すなわち,認識結果の文字の認識距離が所定以上の値であれば,認識誤りが発生している可能性があると判定できる。
図5は,本実施の形態1による認識結果・認識距離データの例を示す図である。
図5に示す認識結果・認識距離データ300は,検索対象データ記憶部11に記憶される検索対象データの一例である。認識結果・認識距離データ300では,認識結果の文字コードとともに,認識の信頼性を示す情報である認識距離が記録されている。
また,認識の信頼性を示す情報として,各文字の信頼度を用いてもよい。各文字の信頼度の計算方法には,様々な例がある。各文字の信頼度の計算方法の例は,例えば,次に示す参考文献4に記載されている。
〔参考文献4〕
藤本,鎌田,“正読確率を用いた高速高精度な文字認識方式”,信学会情報・システムソサイエティ大会,D-361 ,Sep.1996
参考文献4では,各文字の信頼度が,正読確率と呼ばれている。参考文献4で紹介された信頼度の計算方法では,文字認識結果の第1候補と第2候補の認識距離に大きな差がない場合には,認識誤りの可能性があるとして,低い信頼度が得られる。また,文字認識結果の第1候補と第2候補の認識距離に大きな差がある場合には,認識誤りの可能性が低いとして,高い信頼度が得られる。
例えば,認識対象文字「田」の認識結果の第1候補が“田”(認識距離300)で,第2候補が“口”(認識距離1000)である場合には,信頼度の値は大きくなる。これに対して,認識対象文字「田」の認識結果の第1候補が“口”(認識距離500)で,第2候補が“ロ”(認識距離550)である場合には,信頼度の値は小さくなる。
図6は,本実施の形態1による認識結果・信頼度データの例を示す図である。
図6に示す認識結果・信頼度データ301は,検索対象データ記憶部11に記憶される検索対象データの一例である。認識結果・信頼度データ301では,認識結果の文字コードとともに,認識の信頼性を示す情報である信頼度が記録されている。
図7は,本実施の形態の文字列検索装置による文字列検索処理フローチャートである。
文字列検索装置10において,検索実行部13は,検索対象データに対する検索キーワードを用いたあいまい検索を実行する(ステップS10)。検索結果として得られた検索結果文字列Ai(i=0,1,2,... )は,検索結果記憶部14に記憶される。
文字列検索装置10は,カウンタiを0に設定する(ステップS11)。
文字列検索装置10は,検索結果文字列Aiを取得する(ステップS12)。一致判定部15は,検索結果文字列Aiが検索キーワードと完全一致するかを判定する(ステップS13)。
検索結果文字列Aiが検索キーワードと完全一致する場合には(ステップS13のYES),文字列検索装置10は,ステップS18の処理に進む。
検索結果文字列Aiが検索キーワードと完全一致しない場合には(ステップS13のNO),認識誤り評価部16は,認識誤り評価処理を行う(ステップS14)。認識誤り評価処理では,検索結果文字列Aiに認識誤りが発生している可能性が判断される。
文字列検索装置10は,認識誤り評価部16による評価結果が,検索結果文字列Aiについて認識誤り有りであるかを判定する(ステップS15)。
検索結果文字列Aiについて認識誤り有りであれば(ステップS15のYES),文字列検索装置10は,ステップS18の処理に進む。
検索結果文字列Aiについて認識誤り有りでなければ(ステップS15のNO),すなわち認識誤り無しであれば,除外部17は,検索結果文字列Aiが検索ノイズであると判定する(ステップS16)。除外部17は,検索結果文字列Aiを検索結果から除外する(ステップS17)。除外部17により,検索結果文字列Aiが,検索結果記憶部14から削除される。
文字列検索装置10は,すべての検索結果文字列について処理が終了したかを判定する(ステップS18)。すべての検索結果文字列について処理が終了していなければ(ステップS18のNO),文字列検索装置10は,カウンタiをインクリメントし(ステップS19),ステップS12に戻って,次の検索結果文字列についての処理に移る。すべての検索結果文字列について処理が終了していれば(ステップS18のYES),文字列検索装置10は,処理を終了する。
図7に示す文字列検索処理の例は,ステップS14の認識誤り評価処理を除いて,原則として実施の形態1〜実施の形態4で共通の処理例となる。
図8は,本実施の形態1の認識誤り評価部による認識誤り評価処理フローチャートである。
図8に示す認識誤り評価処理は,本実施の形態1の認識誤り評価部16aによる,図7のステップS14に示す処理の一例である。なお,図8に示す例は,認識の信頼性を示す情報として,認識距離が用いられた場合の例である。
認識誤り評価部16aは,カウンタjを0に設定する(ステップS110)。
認識信頼性情報取得部110は,検索結果文字列Ai中の文字Bjの認識距離を取得する(ステップS111)。ここでは,例えば検索結果文字列Aiの先頭の文字から末尾の文字に向かって順に文字B0,文字B1,... とする。
認識誤り判断部111は,文字Bjの認識距離が所定値以下であるかを判定する(ステップS112)。
文字Bjの認識距離が所定値以下でなければ(ステップS112のNO),認識誤り判断部111は,検索結果文字列Aiについて認識誤り有りと判断し(ステップS113),処理を終了する。認識距離は,値が大きければ大きいほど,認識の信頼性が低くなる。検索結果文字列Aiに認識距離が大きい文字が1文字でも含まれていれば,その検索結果文字列Aiに認識誤りが含まれている可能性は高くなる。
文字Bjの認識距離が所定値以下であれば(ステップS112のYES),認識誤り評価部16aは,検索結果文字列Ai中のすべての文字について処理が終了したかを判定する(ステップS114)。
検索結果文字列Ai中のすべての文字について処理が終了していなければ(ステップS114のNO),認識誤り評価部16aは,カウンタjをインクリメントし(ステップS115),ステップS111に戻って,次の文字Bjの処理に移る。
検索結果文字列Ai中のすべての文字について処理が終了していれば(ステップS114のYES),認識誤り判断部111は,検索結果文字列Aiについて認識誤り無しと判断し(ステップS116),処理を終了する。認識距離は,値が小さければ小さいほど,認識の信頼性が高くなる。検索結果文字列Aiに認識距離が大きい文字が1文字も含まれていなければ,その検索結果文字列Aiに認識誤りが含まれている可能性は低くなる。
図8に示す処理の例では,認識の信頼性を示す情報として認識距離を用いているが,例えば上記の信頼度など,他の情報を用いてもよい。認識の信頼性を示す情報として上記の信頼度を用いる場合には,ステップS111で取得する情報が文字Bjの信頼度となる。また,ステップS112の判定は,文字Bjの信頼度が所定値以上であるかの判定となる。信頼度は,値が大きければ大きいほど認識の信頼性が高くなり,値が小さければ小さいほど認識の信頼性が低くなる。
本実施の形態1の文字列検索装置10によって,検索対象データに対するあいまい検索において,上記パターン#2の検索ノイズを減らして,検索精度を向上させることが可能となる。
〔実施の形態2〕
本実施の形態2の文字列検索装置10は,前述の実施の形態1と同様に,図1に示す通りとなる。本実施の形態2は,前述の実施の形態1と,認識誤り評価部16の処理のみが異なる。
図9は,本実施の形態2による認識誤り評価部の構成例を示す図である。
図9に示す認識誤り評価部16bは,図2に示す文字列検索装置10が備える認識誤り評価部16の一例である。認識誤り評価部16bは,使用言語の単語を記録した言語辞書を用い,検索結果文字列を含む検索対象データ中の文字列が,言語辞書に存在するか否かを判定し,存在していれば検索結果文字列に認識誤りが発生していないと判断する。認識誤り評価部16bは,言語辞書記憶部120,単語検索部121,検索結果単語記憶部122,検索結果調整部123,認識誤り判断部124を備える。
言語辞書記憶部120は,言語辞書を記憶する,コンピュータがアクセス可能な記憶部である。言語辞書には,検索キーワードとなり得る単語,例えば,その言語の全名詞などが登録されている。例えば,使用言語が日本語であれば,日本語で用いられる固有名詞を含む全名詞や,形容詞,慣用句などが,言語辞書に登録されている。
図10は,本実施の形態2による言語辞書の例を示す図である。
図10に示す言語辞書302の例では,五十音順に単語が登録されている。
なお,言語辞書には,単語の検索を速くするために,単語をあらかじめ文字コード順にソートしておいたり,ハッシュ値を記録しておき高速検索を実現するなどの,従来の高速テキスト検索方式を適用することができる。
単語検索部121は,言語辞書に対して検索キーワードを用いたあいまい検索を実行する。言語辞書に対する検索で得られた単語は,検索結果単語記憶部122に記憶される。本実施の形態では,言語辞書に対する検索で得られた単語を検索結果単語と呼ぶ。検索結果単語記憶部122は,検索結果単語を記憶する,コンピュータがアクセス可能な記憶部である。
検索結果調整部123は,検索対象データにおいて,検索結果文字列の文字数を検索結果単語の文字数に調整する。本実施の形態では,検索結果文字列の文字数を検索結果単語の文字数に調整した文字列を,調整文字列と呼ぶ。
認識誤り判断部124は,検索結果単語と調整文字列とが一致する場合に,検索結果文字列に認識誤りが発生していないと判断する。
図11は,本実施の形態2による認識誤り評価の例を説明する図(1)である。
図11では,検索キーワードとして「コンピュータ」が指定されている場合の例を説明する。
図11(A)は,言語辞書に対して検索キーワード「コンピュータ」を用いたあいまい検索を実行した結果の例を示す。図11(A)に示す例では,検索結果単語として,「コントロール」,「コンピュータ」,「コンピューティング」等の検索結果単語が得られている。
ここで,文字認識結果の検索対象データに対するあいまい検索結果として,検索結果文字列Ai=「コンピューテ」が得られ,また,言語辞書に対するあいまい検索結果として,検索結果単語Cj=「コンピューティング」が得られた場合の例を説明する。
図11(B)は,検索キーワードと,検索結果文字列Ai/検索結果単語Cjとの対応を示す。あいまい検索は,検索キーワードの各文字と,検索ヒットする部分文字列の各文字との対応関係に,文字の置換・脱落・挿入による不一致を許容する。そのため,検索キーワードの“タ”が“テ”に置換されている検索結果文字列Ai「コンピューテ」が,文字認識結果の検索対象データから抽出されている。同様に,言語辞書から抽出された検索結果単語Cj「コンピューティング」については,部分文字列の“コンピューテ”が,検索キーワードの“コンピュータ”と6文字中5文字が一致している。
あいまい検索では,図11(B)に示すように,検索キーワードと検索結果文字列Aiとの間の各文字の対応関係がわかる。そのため,検索キーワードの先頭文字および最後尾文字が,検索結果文字列Aiのどの文字に対応するかを検出することができる。図11(B)に示す例では,検索キーワードの先頭文字“コ”に対応する認識結果文字列Aiの文字は“コ”であり,検索キーワードの最後尾文字の“タ”に対応する認識結果文字列Aiの文字は“テ”である。
同様に,図11(B)に示すように,言語辞書に対するあいまい検索結果でも検索キーワードの各文字に対応する文字がわかる。図11(B)に示す例では,検索キーワードの先頭文字“コ”に対応する検索結果単語Cjの文字は“コ”であり,検索キーワードの最後尾文字の“タ”に対応する検索結果単語Cjの文字は“テ”である。
これらの事実より,検索結果文字列Aiの“コ”は検索結果単語Cjの“コ”,検索結果文字列Aiの“テ”は検索結果単語Cjの“テ”に対応することがわかる。
ここで,言語辞書には単語単位で文字列が登録されているので,単語を形成するために必要な文字がわかる。上記の例では,検索キーワードの“コンピュータ”は,言語辞書に登録されている検索結果単語Cj=“コンピューティング”という単語の“コンピューテ”にヒットしており,単語が形成されるには,さらに“ィング”の3文字が追加されなければいけないことがわかる。
検索結果調整部123は,検索対象データにおいて,検索結果文字列Aiの前後に,検索結果単語Cjの単語長と同じになるように文字を拡張する。
図11(C)は,検索結果文字列Aiを拡張した例を示す。本実施の形態では,検索結果単語Cjの単語長に合わせて,検索対象データにおいて検索結果文字列Aiを拡張した文字列を,調整文字列A’iと呼ぶ。なお,図11(C)に示す例では,先頭文字に関しては,検索結果文字列Aiの先頭文字は,検索結果単語Cjの先頭文字に対応しているため,検索結果文字列Aiの先頭部分での文字数の拡張は行われない。
例えば,検索結果文字列Aiが,文字認識結果の検索対象データ中の文書「夏休みに開催されるコンピューティング速度コンテスト」の“コンピューテ”にヒットしている状態であるものとする。このとき,検索結果調整部123は,検索結果単語Cj=“コンピューティング”の文字数に応じて,検索結果文字列Aiを3文字分だけ後方に拡張して,調整文字列A’i=“コンピューティング”とする。
その後,認識誤り判断部124は,調整文字列A’iと検索結果単語Cjとを比較する。図11(C)に示す例では,双方の文字列が一致するので,認識誤り判断部124は,検索結果文字列Aiに認識誤りが発生していないと判断する。すなわち,図11に示す検索結果文字列Ai=「コンピューテ」は,検索ノイズであると判定される。
図12は,本実施の形態2による認識誤り評価の例を説明する図(2)である。
図12では,検索キーワードとして「ミシン針」が指定されている場合の例を説明する。
図12(A)に示すように,文字認識結果の検索対象データから検索結果文字列Ai=「ミシン金」があいまい検索にヒットしている。また,言語辞書から検索結果単語Cj=「サミシンボウ」があいまい検索にヒットしている。
この場合,検索結果文字列Aiの文字列長を検索結果単語Cjに合わせるために,図12(B)に示すように,検索結果文字列Aiの前後に文字を増やし,調整文字列A’iは,「いミシン金十」となる。
その後,認識誤り判断部124は,調整文字列A’iと検索結果単語Cjとを比較する。図12(B)に示す例では,双方の文字列が一致しないので,認識誤り判断部124は,この結果だけでは,検索結果文字列Aiについての認識誤りを判断しない。
以下,本実施の形態2の文字列検索装置10による処理の流れを説明する。ただし,文字列検索装置10による文字列検索処理については,原則として図7に示す処理と同様であるので,説明を省略する。
図13は,本実施の形態2の認識誤り評価部による単語検索処理フローチャートである。
図13に示す単語検索処理は,例えば,図7のステップS10に示す処理と同時に実行される。
認識誤り評価部16bにおいて,単語検索部121は,言語辞書に対して,検索キーワードを用いたあいまい検索を実行する(ステップS120)。結果として得られた検索結果単語Cj(j=0,1,... )は,検索結果単語記憶部122に記憶される。
図14は,本実施の形態2の認識誤り評価部による認識誤り評価処理フローチャートである。
図14に示す認識誤り評価処理は,本実施の形態2の認識誤り評価部16bによる,図7のステップS14に示す処理の一例である。
認識誤り評価部16bは,カウンタjを0に設定する(ステップS121)。
認識誤り評価部16bは,検索結果単語Cjを取得する(ステップS122)。検索結果調整部123は,検索対象データにおいて,検索結果文字列Aiの文字数を,検索結果単語Cjの文字数に調整した調整文字列A’iを取得する(ステップS123)。
認識誤り判断部124は,調整文字列A’iと検索結果単語Cjとが完全一致するかを判定する(ステップS124)。
調整文字列A’iと検索結果単語Cjとが完全一致すれば(ステップS124のYES),認識誤り判断部124は,検索結果文字列Aiについて認識誤り無しと判断し(ステップS125),処理を終了する。
調整文字列A’iと検索結果単語Cjとが完全一致しなければ(ステップS124のNO),認識誤り評価部16bは,すべての検索結果単語について処理が終了したかを判定する(ステップS126)。
すべての検索結果単語について処理が終了していなければ(ステップS126のNO),認識誤り評価部16bは,カウンタjをインクリメントし(ステップS127),ステップS122に戻って,次の検索結果単語Cjの処理に移る。
すべての検索結果単語について処理が終了していれば(ステップS126のYES),認識誤り判断部124は,検索結果文字列Aiについて認識誤り有りと判断し(ステップS128),処理を終了する。
本実施の形態2の文字列検索装置10によって,検索対象データに対するあいまい検索において,上記パターン#2の検索ノイズを減らして,検索精度を向上させることが可能となる。
〔実施の形態3〕
本実施の形態3の文字列検索装置10は,前述の実施の形態1と同様に,図1に示す通りとなる。本実施の形態3は,前述の実施の形態1と,認識誤り評価部16の処理のみが異なる。
図15は,本実施の形態3による認識誤り評価部の構成例を示す図である。
図15に示す認識誤り評価部16cは,図2に示す文字列検索装置10が備える認識誤り評価部16の一例である。認識誤り評価部16cは,検索対象データにおける検索結果文字列の出現頻度を算出し,検索結果文字列の出現頻度が所定の値以上である場合に,検索結果文字列に認識誤りが発生していないと判断する。認識誤り評価部16cは,頻度算出部130,頻度記憶部131,認識誤り判断部132を備える。
頻度算出部130は,検索対象データにおける検索結果文字列の出現頻度を算出する。例えば,頻度算出部130は,検索結果に現れる文字列ごとに,検索対象データにおける出現数を集計する。得られた出現頻度の算出結果は,頻度記憶部131に記憶される。頻度記憶部131は,検索結果に現れる文字列ごとの出現頻度を記憶する,コンピュータがアクセス可能な記憶部である。
認識誤り判断部132は,検索結果文字列の出現頻度が所定の値以上である場合に,検索結果文字列に認識誤りが発生していないと判断する。
例えば,小説など文書量が大きいデータの場合,必然的にその文書中に同じ単語が登場する頻度は高くなる。文字認識において,認識誤りは不安定である。そのため,通常は,同じ文字の認識誤りでも,発生するたびに異なる文字の出力となることが多い。これらのことから,出現頻度が高い文字列は認識誤りが無い可能性が高く,出現頻度が低い文字列は認識誤りの可能性が高くなる。本実施の形態3では,このような性質を利用して,あいまい検索の結果が,検索ノイズであるか否かを判断する。
図16は,本実施の形態3による認識誤り評価の例を説明する図である。
図16の左図は,検索結果の例を示す。ここでは,検索対象データに対して,検索キーワード「クロス」であいまい検索を行った場合の検索結果が,図16の左図に示す検索結果であったものとする。
頻度算出部130は,検索結果に現れる文字列ごとに,その出現数を集計する。図16の中央図は,出現数の例を示す。ここでは,図16の左図に示す検索結果に基づいて求めた出現数が,図16の中央図に示す出現数であったものとする。
認識誤り判断部132は,例えば,出現数が所定の値以上である検索結果文字列については,認識誤り無しと判断し,出現数が所定の値未満である検索結果文字列については,認識誤り有りと判断する。図16の右図は,認識誤り有無の判断結果の例を示す。例えば,所定の値が5回である場合に,出現数が5回以上である検索結果文字列については,認識誤り無しと判断され,出現数が4回以下である検索結果文字列については,認識誤り有りと判断される。
なお,検索対象データの文書量の大小によって,文字列の出現回数は変わる。例えば,検索対象データの文書量の大小によって,判断基準となる所定の値を変化させてもよい。また,例えば,頻度として,所定の単位文書量あたりの出現数を算出するようにしてもよい。
以下,本実施の形態3の文字列検索装置10による処理の流れを説明する。ただし,文字列検索装置10による文字列検索処理については,原則として図7に示す処理と同様であるので,説明を省略する。
図17は,本実施の形態3の認識誤り評価部による頻度算出処理フローチャートである。
図17に示す頻度算出処理は,例えば,図7のステップS10に示す処理の直後に実行される。
認識誤り評価部16cにおいて,頻度算出部130は,検索結果に現れる文字列ごとに,その出現数を集計する(ステップS130)。得られた検索結果に現れる文字列ごとの出現数は,頻度記憶部131に記憶される。
図18は,本実施の形態3の認識誤り評価部による認識誤り評価処理フローチャートである。
図18に示す認識誤り評価処理は,本実施の形態3の認識誤り評価部16cによる,図7のステップS14に示す処理の一例である。
認識誤り評価部16cは,検索結果文字列Aiの出現数を取得する(ステップS131)。
認識誤り判断部132は,検索結果文字列Aiの出現数が所定値以上であるかを判定する(ステップS132)。
検索結果文字列Aiの出現数が所定値以上であれば(ステップS132のYES),認識誤り判断部132は,検索結果文字列Aiについて認識誤り無しと判断し(ステップS133),処理を終了する。
検索結果文字列Aiの出現数が所定値以上でなければ(ステップS132のNO),認識誤り判断部132は,検索結果文字列Aiについて認識誤り有りと判断し(ステップS134),処理を終了する。
本実施の形態3の文字列検索装置10によって,検索対象データに対するあいまい検索において,上記パターン#2の検索ノイズを減らして,検索精度を向上させることが可能となる。
〔実施の形態4〕
本実施の形態4の文字列検索装置10は,前述の実施の形態1と同様に,図1に示す通りとなる。本実施の形態4は,前述の実施の形態1と,認識誤り評価部16の処理のみが異なる。
図19は,本実施の形態4による認識誤り評価部の構成例を示す図である。
図19に示す認識誤り評価部16dは,図2に示す文字列検索装置10が備える認識誤り評価部16の一例である。認識誤り評価部16dは,検索対象データから検索結果文字列を含む所定の周辺文字列を取得し,取得された周辺文字列に対して形態素解析を実行する。認識誤り評価部16dは,形態素解析の結果から検索結果文字列に対応する形態素を抽出し,抽出されたすべての形態素が未知語でない場合に,検索結果文字列に認識誤りが発生していないと判断する。認識誤り評価部16dは,形態素解析辞書記憶部140,結果周辺文字列取得部141,形態素解析部142,形態素記憶部143,検索結果対応形態素抽出部144,認識誤り判断部145を備える。
形態素解析辞書記憶部140は,形態素解析辞書を記憶する,コンピュータがアクセス可能な記憶部である。形態素解析辞書は,形態素解析に用いられる辞書である。
結果周辺文字列取得部141は,検索対象データから,検索結果文字列を含む所定の周辺文字列を取得する。ここで取得された文字列を,検索結果周辺文字列と呼ぶ。検索結果周辺文字列は,例えば,検索対象データにおいて,検索結果文字列を含む句読点で挟まれた文字列でもよいし,検索結果文字列に前後10文字ずつ足した文字列などでもよい。
形態素解析部142は,検索結果周辺文字列に対して,形態素解析を実行する。形態素解析の結果として,検索結果周辺文字列が,形態素に分解される。得られた形態素解析の結果は,形態素記憶部143に記憶される。形態素記憶部143は,形態素解析の結果が記憶された,コンピュータがアクセス可能な記憶部である。
検索結果対応形態素抽出部144は,形態素解析の結果から,検索結果文字列に対応する形態素を抽出する。検索結果対応形態素抽出部144は,例えば,形態素記憶部143に記憶された形態素解析の結果から,検索結果文字列に対応する形態素を抽出して残し,他の形態素を削除する。
認識誤り判断部145は,抽出された検索結果文字列に対応するすべての形態素が未知語でない場合に,検索結果文字列に認識誤りが発生していないと判断する。
図20は,本実施の形態4による認識誤り評価の例を説明する図である。
図20(A)は,検索キーワードと検索結果文字列の例を示す。図20(A)に示すように,検索キーワードとして「ミッドタウン」が指定されたものとする。また,検索結果文字列Ai=「ミッドのダウン」がヒットしたとする。
結果周辺文字列取得部141は,検索対象データから,検索結果文字列Aiを含む周辺文字列を取得する。ここでは,検索結果文字列Aiに前後8文字ずつ加えた文字列が,検索結果周辺文字列A”iとして取得されるものとする。図20(B)は,検索結果周辺文字列A”iの例を示す。検索結果文字列Aiが検索結果周辺文字列A”i=「説明した人口ピラミッドのダウンロードは以下のボ」に拡張される。
形態素解析部142は,検索結果周辺文字列A”iに対する形態素解析を実行する。図20(C)は,検索結果周辺文字列A”iに対する形態素解析結果の例を示す。図20(C)に示すように,検索結果周辺文字列A”iが形態素に分解される。形態素解析辞書に登録された形態素については,形態素その品詞が対応付けられる。形態素解析辞書に登録されていない形態素は,未知語となる。
検索結果対応形態素抽出部144は,形態素解析結果から,検索結果文字列Aiに対応する形態素をすべて抽出する。図20(D)は,検索結果文字列Aiに対応する形態素の例を示す。図20(D)において,枠で囲まれた形態素が,検索結果文字列Aiの部分文字列を含む形態素である。
図20(D)に示す例では,検索結果文字列Aiに対応するすべての形態素が未知語ではない,認識誤り判断部145は,検索結果文字列Aiに認識誤りが発生していないと判断する。図20に示す例とは逆に,検索結果文字列に関わる形態素に1つでも未知語が存在する場合には,言語として成立していない可能性が高い。すなわち,未知語の部分に認識誤りが発生している可能性がある。
以下,本実施の形態4の文字列検索装置10による処理の流れを説明する。ただし,文字列検索装置10による文字列検索処理については,原則として図7に示す処理と同様であるので,説明を省略する。
図21は,本実施の形態4の認識誤り評価部による認識誤り評価処理フローチャートである。
図21に示す認識誤り評価処理は,本実施の形態4の認識誤り評価部16dによる,図7のステップS14に示す処理の一例である。
認識誤り評価部16dにおいて,結果周辺文字列取得部141は,検索対象データから,解析結果周辺文字列A”iを取得する(ステップS140)。解析結果周辺文字列A”iは,検索対象データにおいて,解析結果文字列Aiを含む所定の周辺文字列である。
形態素解析部142は,解析結果周辺文字列A”iに対して,形態素解析を実行する(ステップS141)。検索結果対応形態素抽出部144は,解析結果周辺文字列A”iの形態素解析結果から,検索結果文字列Aiに対応する形態素Dj(j=0,1,... )を抽出する(ステップS142)。
認識誤り評価部16dは,カウンタjを0に設定する(ステップS143)。
認識誤り評価部16dは,形態素Djを取得する(ステップS144)。認識誤り判断部145は,形態素Djが未知語であるかを判定する(ステップS145)。
形態素Djが未知語であれば(ステップS145のYES),認識誤り判断部145は,検索結果文字列Aiについて認識誤り有りと判断し(ステップS146),処理を終了する。
形態素Djが未知語でなければ(ステップS145のNO),認識誤り評価部16dは,すべての形態素について処理が終了したかを判定する(ステップS147)。
すべての形態素について処理が終了していなければ(ステップS147のNO),認識誤り評価部16dは,カウンタjをインクリメントし(ステップS148),ステップS144に戻って,次の形態素Djの処理に移る。
すべての形態素について処理が終了していれば(ステップS147のYES),認識誤り判断部145は,検索結果文字列Aiについて認識誤り無しと判断し(ステップS149),処理を終了する。
本実施の形態4の文字列検索装置10によって,検索対象データに対するあいまい検索において,上記パターン#2の検索ノイズを減らして,検索精度を向上させることが可能となる。
ここまでの実施の形態1〜実施の形態4では,それぞれ異なる認識誤り評価部16の処理によって,検索対象文字列に認識誤りが発生している可能性を判断し,検索対象文字列が検索ノイズであるかを判断している。これらの実施の形態1〜実施の形態4までの認識誤り評価部16の処理を複数組み合わせて,検索対象文字列に認識誤りが発生している可能性を判断し,検索対象文字列が検索ノイズであるかを判断するようにしてもよい。
例えば,検索結果文字列に対して実施の形態1〜実施の形態4までのそれぞれの認識誤り評価部16の処理をすべて実行し,いずれかの処理で検索対象文字列に認識誤りが発生していると判断されたときに,その検索対象文字列が検索ノイズであると判断するようにしてもよい。この場合には,検索ノイズの検出率が高くなる。
また,例えば,検索結果文字列に対して実施の形態1〜実施の形態4までのそれぞれの認識誤り評価部16の処理をすべて実行し,すべての処理で検索対象文字列に認識誤りが発生していると判断されたときに,その検索対象文字列が検索ノイズであると判断するようにしてもよい。この場合には,適切な検索結果文字列を,誤って除外してしまう可能性が低くなる。
また,実施の形態1〜実施の形態4では,図7に示すフローチャートによって,検索対象データからすべての検索結果文字列を検出してから,検索ノイズと判断された検索文字列を除外していく処理の例を説明している。実施の形態1〜実施の形態4において,検索対象データから1つずつ検索結果文字列が検出されるたびに,その検索結果文字列が検索ノイズであるかを判断するようにしてもよい。
〔実施の形態5〕
本実施の形態5の技術は,検索ノイズを削減する手法が,上述の実施の形態1〜実施の形態4の技術と大きく異なる。上述の実施の形態1〜実施の形態4の技術では,検索対象データに対する検索実行後の検索結果から検索ノイズを除外することにより,検索ノイズの削減を行っている。これに対して,本実施の形態5の技術では,検索対象データに対する検索の段階で,検索ノイズとなる検索結果の発生を抑制することにより,検索ノイズの削減を行う。
図22は,本実施の形態5による文字列検索装置の構成例を示す図である。
本実施の形態5による文字列検索装置20は,認識結果である検索対象データに対して,検索キーワードを用いた検索を行う装置である。文字列検索装置20は,検索対象データ記憶部21,キーワード記憶部22,分割部23,認識誤り評価部24,検索単位データ記憶部25,検索実行部26,検索結果記憶部27を備える。
検索対象データ記憶部21は,文字認識,音声認識,点字認識などの認識結果である検索対象データを記憶する,コンピュータがアクセス可能な記憶部である。本実施の形態では,検索対象データは,例えば,OCR結果のデータである。
キーワード記憶部22は,検索キーワードを記憶する,コンピュータがアクセス可能な記憶部である。キーワード記憶部12に記憶された検索キーワードは,例えば,ユーザにより入力された検索キーワードを文字列検索装置20が受け付けたものである。
分割部23は,検索対象データを,所定の検索単位データに分割する。所定の検索単位データは,例えば,句読点で区切られた単位のデータや,所定の単語数で区切られた単位のデータなどである。所定の検索単位データの設計は,任意である。
認識誤り評価部24は,検索単位データごとに,認識誤りが発生している可能性を判断する。例えば,認識誤り評価部24は,検索単位データごとに,上述の実施の形態4で説明したような形態素解析を実行し,未知語を含む検索単位データは認識誤りが発生していると判断し,未知語を含まない検索単位データは認識誤りが発生していないと判断する。また,例えば,認識誤り評価部24は,検索単位データごとに,上述の実施の形態1で説明したような文字ごとの認識の信頼性を示す情報を用いて,信頼性が低い文字を含む検索単位データは認識誤りが発生していると判断し,信頼性が低い文字を含まない検索単位データは認識誤りが発生していないと判断する。形態素解析による手法と,認識の信頼性を示す情報による手法とを,組み合わせて使用してもよい。
検索単位データ記憶部25は,検索単位データを記憶する,コンピュータがアクセス可能な記憶部である。検索単位データ記憶部25は,検索単位データと認識誤りが発生している可能性の判断とが対応付けられて記憶されている。
検索実行部26は,認識誤りが発生していると判断された検索単位データに対しては,検索キーワードを用いたあいまい検索を行い,認識誤りが発生していないと判断された検索単位データに対しては,検索キーワードを用いた完全一致検索を行う。検索実行部26は,検索結果文字列を検索結果記憶部27に記憶する。検索結果記憶部27は,検索結果文字列を記憶する,コンピュータがアクセス可能な記憶部である。
検索結果記憶部27に記憶された検索結果は,例えばディスプレイなどの表示装置に出力される。
図23,図24は,本実施の形態5による文字列検索の例を説明する図である。
図23(A)は,認識対象文書303を示す。ここでは,図23(A)に示す認識対象文書303に対して文字認識が行われる。図23(B)は,検索対象データ304を示す。図23(B)に示す検索対象データ304は,図23(A)に示す認識対象文書303の文字認識結果のデータである。
文字列検索装置20において,分割部23は,図23(B)に示す検索対象データ304を所定の検索単位データに分割する。ここでは,所定の検索単位データは,句読点で区切られた単位のデータであるものとする。図24(A)は,検索単位データの例を示す。図24(A)に示すE0〜E7は,それぞれ検索単位データである。
認識誤り評価部24は,図24(A)に示す各検索単位データE0〜E7のそれぞれについて,認識誤りが発生している可能性を判断する。ここでは,認識誤りが発生している可能性の判断に,形態素解析を用いるものとする。
図24(B)は,各検索単位データに対する形態素解析の結果,未知語となった形態素を示す。図24(B)に示す各検索単位データE0〜E7において,枠線で囲まれた形態素が未知語である。図24(B)から,認識誤りが発生していると判断される検索単位データは,E1,E2,E3,E6となり,認識誤りが発生していないと判断される検索単位データは,E0,E4,E5,E7となる。
検索実行部26は,認識誤りが発生していると判断された検索単位データE1,E2,E3,E6に対しては,検索キーワードを用いたあいまい検索を行う。また,検索実行部26は,認識誤りが発生していないと判断された検索単位データE0,E4,E5,E7に対しては,検索キーワードを用いた完全一致検索を行う。
認識誤りが発生しているデータに対して完全一致検索を行うと,検索洩れが発生する可能性がある。逆に,認識誤りが発生していないデータに対してあいまい検索を行うと,無駄な検索ノイズが発生する可能性がある。
本実施の形態5の技術では,認識誤りが発生していると判断された検索単位データに対するあいまい検索で,検索漏れを防止しつつ,認識誤りが発生していないと判断された検索単位データに対する完全一致検索で,無駄な検索ノイズの発生を抑止する。
図25は,本実施の形態5の文字列検索装置による文字列検索処理フローチャートである。
文字列検索装置20において,分割部23は,検索対象データを,所定の検索単位データに分割する(ステップS20)。
認識誤り評価部24は,各検索単位データの認識誤りを評価する(ステップS21)。これにより,検索単位データごとに,認識誤り有りか無しかが判断される。検索単位データと認識誤りの評価結果との対応は,検索単位データ記憶部25に記憶される。
文字列検索装置20は,カウンタiを0に設定する(ステップS22)。
検索実行部26は,検索単位データEiを取得する(ステップS23)。検索実行部26は,検索単位データEiが認識誤り有りと判断されているかを判定する(ステップS24)。検索単位データEiが認識誤り有りと判断されていれば(ステップS24のYES),検索実行部26は,検索単位データEiに対する検索キーワードを用いたあいまい検索を実行する。検索単位データEiが認識誤り有りと判断されていなければ(ステップS24のNO),検索実行部26は,検索単位データEiに対する検索キーワードを用いた完全一致検索を実行する。検索結果文字列は,検索結果記憶部27に記憶される。
文字列検索装置20は,すべての検索単位データについて処理が終了したかを判定する(ステップS27)。すべての検索単位データについて処理が終了していなければ(ステップS27のNO),文字列検索装置20は,カウンタiをインクリメントし(ステップS28),ステップS23に戻って,次の検索単位データについての処理に移る。すべての検索単位データについて処理が終了していれば(ステップS27のYES),文字列検索装置20は,処理を終了する。
本実施の形態5の文字列検索装置20によって,検索漏れを防止しつつ,無駄な検索ノイズの発生を抑止して,検索精度を向上させることが可能となる。
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
例えば,実施の形態5の検索結果に対して,さらに実施の形態1〜実施の形態4に示す検索ノイズを除外する処理を行ってもよい。
以上説明した本実施の形態の特徴を列挙すると,以下の通りとなる。
(付記1)
文字認識,音声認識または点字認識により得られた検索対象データに対して,検索キーワードを用いたあいまい検索を行う検索実行部と,
前記検索実行部により得られた検索結果文字列が前記検索キーワードと完全一致しない場合に,前記検索結果文字列に認識誤りが発生している可能性を判断する認識誤り評価部と,
前記認識誤り評価部により,前記検索結果文字列に認識誤りが発生していないと判断された場合に,前記検索結果文字列を検索結果から除外する除外部とを備える
ことを特徴とする文字列検索装置。
(付記2)
前記認識誤り評価部は,
前記検索結果文字列に含まれる文字について,認識時に得られた認識の信頼性を示す情報を取得し,前記認識の信頼性を示す情報に基づいて,前記検索結果文字列に含まれるすべての文字についてそれぞれが所定以上の信頼性があると判定された場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記1に記載の文字列検索装置。
(付記3)
前記認識誤り評価部は,
使用言語の単語を記録した辞書を用い,前記検索結果文字列を含む前記検索対象データ中の文字列が,前記辞書に存在するか否かを判定し,存在していれば前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記1または付記2に記載の文字列検索装置。
(付記4)
前記認識誤り評価部は,
前記検索対象データにおける前記検索結果文字列の出現頻度を算出し,前記検索結果文字列の出現頻度が所定の値以上である場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記1から付記3までのいずれかに記載の文字列検索装置。
(付記5)
前記認識誤り評価部は,
前記検索対象データから前記検索結果文字列を含む所定の周辺文字列を取得し,前記周辺文字列に対して形態素解析を実行し,前記形態素解析の結果から,前記検索結果文字列に対応する形態素を抽出し,すべての前記形態素が未知語でない場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記1から付記4までのいずれかに記載の文字列検索装置。
(付記6)
文字認識,音声認識または点字認識により得られた検索対象データを,所定の検索単位データに分割する分割部と,
検索単位データごとに,認識誤りが発生している可能性を判断する認識誤り評価部と,
認識誤りが発生していると判断された検索単位データに対しては,検索キーワードを用いたあいまい検索を行い,認識誤りが発生していないと判断された検索単位データに対しては,検索キーワードを用いた完全一致検索を行う検索実行部とを備える
ことを特徴とする文字列検索装置。
(付記7)
コンピュータが,
文字認識,音声認識または点字認識により得られた検索対象データに対して,検索キーワードを用いたあいまい検索を行い,
前記検索実行部により得られた検索結果文字列が前記検索キーワードと完全一致しない場合に,前記検索結果文字列に認識誤りが発生している可能性を判断し,
前記認識誤り評価部により,前記検索結果文字列に認識誤りが発生していないと判断された場合に,前記検索結果文字列を検索結果から除外する過程を実行する
ことを特徴とする文字列検索方法。
(付記8)
前記認識誤りが発生している可能性を判断する過程は,
前記検索結果文字列に含まれる文字について,認識時に得られた認識の信頼性を示す情報を取得し,前記認識の信頼性を示す情報に基づいて,前記検索結果文字列に含まれるすべての文字についてそれぞれが所定以上の信頼性があると判定された場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記7に記載の文字列検索方法。
(付記9)
前記認識誤りが発生している可能性を判断する過程は,
使用言語の単語を記録した辞書を用い,前記検索結果文字列を含む前記検索対象データ中の文字列が,前記辞書に存在するか否かを判定し,存在していれば前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記7または付記8に記載の文字列検索方法。
(付記10)
前記認識誤りが発生している可能性を判断する過程は,
前記検索対象データにおける前記検索結果文字列の出現頻度を算出し,前記検索結果文字列の出現頻度が所定の値以上である場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記7から付記9までのいずれかに記載の文字列検索方法。
(付記11)
前記認識誤りが発生している可能性を判断する過程は,
前記検索対象データから前記検索結果文字列を含む所定の周辺文字列を取得し,前記周辺文字列に対して形態素解析を実行し,前記形態素解析の結果から,前記検索結果文字列に対応する形態素を抽出し,すべての前記形態素が未知語でない場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記7から付記10までのいずれかに記載の文字列検索方法。
(付記12)
コンピュータが,
文字認識,音声認識または点字認識により得られた検索対象データを,所定の検索単位データに分割し,
検索単位データごとに,認識誤りが発生している可能性を判断し,
認識誤りが発生していると判断された検索単位データに対しては,検索キーワードを用いたあいまい検索を行い,認識誤りが発生していないと判断された検索単位データに対しては,検索キーワードを用いた完全一致検索を行う過程を実行する
ことを特徴とする文字列検索方法。
(付記13)
コンピュータに,
文字認識,音声認識または点字認識により得られた検索対象データに対して,検索キーワードを用いたあいまい検索を行い,
前記検索実行部により得られた検索結果文字列が前記検索キーワードと完全一致しない場合に,前記検索結果文字列に認識誤りが発生している可能性を判断し,
前記認識誤り評価部により,前記検索結果文字列に認識誤りが発生していないと判断された場合に,前記検索結果文字列を検索結果から除外する
処理を実行させるための文字列検索プログラム。
(付記14)
前記認識誤りが発生している可能性を判断する処理は,
前記検索結果文字列に含まれる文字について,認識時に得られた認識の信頼性を示す情報を取得し,前記認識の信頼性を示す情報に基づいて,前記検索結果文字列に含まれるすべての文字についてそれぞれが所定以上の信頼性があると判定された場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記13に記載の文字列検索プログラム。
(付記15)
前記認識誤りが発生している可能性を判断する処理は,
使用言語の単語を記録した辞書を用い,前記検索結果文字列を含む前記検索対象データ中の文字列が,前記辞書に存在するか否かを判定し,存在していれば前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記13または付記14に記載の文字列検索プログラム。
(付記16)
前記認識誤りが発生している可能性を判断する処理は,
前記検索対象データにおける前記検索結果文字列の出現頻度を算出し,前記検索結果文字列の出現頻度が所定の値以上である場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記13から付記15までのいずれかに記載の文字列検索プログラム。
(付記17)
前記認識誤りが発生している可能性を判断する処理は,
前記検索対象データから前記検索結果文字列を含む所定の周辺文字列を取得し,前記周辺文字列に対して形態素解析を実行し,前記形態素解析の結果から,前記検索結果文字列に対応する形態素を抽出し,すべての前記形態素が未知語でない場合に,前記検索結果文字列に認識誤りが発生していないと判断する
ことを特徴とする付記13から付記16までのいずれかに記載の文字列検索プログラム。
(付記18)
コンピュータに,
文字認識,音声認識または点字認識により得られた検索対象データを,所定の検索単位データに分割し,
検索単位データごとに,認識誤りが発生している可能性を判断し,
認識誤りが発生していると判断された検索単位データに対しては,検索キーワードを用いたあいまい検索を行い,認識誤りが発生していないと判断された検索単位データに対しては,検索キーワードを用いた完全一致検索を行う
処理を実行させるための文字列検索プログラム。