IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Cogent Labsの特許一覧

特許7134526マッチング装置、マッチング方法、プログラム、及び記録媒体
<>
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図1
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図2
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図3
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図4
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図5
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図6
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図7
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図8
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図9
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図10
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図11
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図12
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図13
  • 特許-マッチング装置、マッチング方法、プログラム、及び記録媒体 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-09-02
(45)【発行日】2022-09-12
(54)【発明の名称】マッチング装置、マッチング方法、プログラム、及び記録媒体
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220905BHJP
   G06V 30/19 20220101ALI20220905BHJP
   G06V 30/24 20220101ALI20220905BHJP
【FI】
G06T7/00 300Z
G06K9/62
G06V30/24 620Z
【請求項の数】 8
(21)【出願番号】P 2021185939
(22)【出願日】2021-11-15
【審査請求日】2021-12-23
【早期審査対象出願】
(73)【特許権者】
【識別番号】517099007
【氏名又は名称】株式会社Cogent Labs
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】レクバン アントアン
(72)【発明者】
【氏名】ハサノフ ヴァギフ
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2003-242179(JP,A)
【文献】特開2020-173802(JP,A)
【文献】特開平8-235221(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06K 9/00 - 9/03
G06K 9/46 - 9/52
G06K 9/62 - 9/82
G06T 1/00 - 1/40
G06T 3/00 - 5/50
G06T 9/00 - 9/40
G06F 16/00 - 16/958
G06V 30/226 - 30/32
(57)【特許請求の範囲】
【請求項1】
マッチングの対象である対象情報として1又は複数の文字、数字および/または記号を含む文字列の画像データを取得する取得部と、
前記対象情報に対するパターンマッチングを行う第1のマッチング部であって
前記対象情報に含まれるある部分情報に対するマッチング処理として、
前記ある部分情報に対する1又は複数のマッチング候補を、推論モデルを用いて予測し、各マッチング候補の確率情報と共に取得する処理を実行するとともに、
前記複数の部分情報のそれぞれに対する1又は複数のマッチング候補の各々を対象とするサーチであって、前記文字列を表現する正規表現に対応する状態モデルを用いて、サーチ経路数を所定の数以下に制限したサーチを実行することによって、
前記1又は複数のマッチング候補のうち、前記状態モデルに整合しないマッチング候補を除外する第1の選択処理と、前記確率情報を参照して、前記第1の選択処理後のマッチング候補から、前記所定の数以下のマッチング候補を選択する第2の選択処理と、を実行する第1のマッチング部と、
前記対象情報に対するパターンマッチングを行う第2のマッチング部であって、
前記対象情報に含まれるある部分情報に対するマッチング処理として、
前記ある部分情報に対する1又は複数のマッチング候補を、推論モデルを用いて予測し、各マッチング候補の確率情報と共に取得する処理を実行するとともに、
前記複数の部分情報のそれぞれに対する1又は複数のマッチング候補の各々を対象とするビームサーチであって、前記文字列を表現する正規表現に対応する状態モデルを用いることなく、サーチ経路数を所定の数に制限したビームサーチを実行することによって、
前記確率情報を参照して、前記1又は複数のマッチング候補から、前記所定の数のマッチング候補を選択する選択処理を実行する、第2のマッチング部と、
前記第1のマッチング部によるマッチング結果及び前記第2のマッチング部によるマッチング結果の何れかを、前記第1のマッチング部によるマッチング結果の確率情報と前記第2のマッチング部によるマッチング結果の確率情報とに応じて選択するマッチング結果選択部とを備える
マッチング装置。
【請求項2】
前記状態モデルは、決定論的有限オートマトンである
請求項1に記載のマッチング装置。
【請求項3】
前記状態モデルを生成する生成部
を更に備えている請求項1または2の何れか1項に記載のマッチング装置。
【請求項4】
前記マッチング結果選択部による選択結果を出力する出力部
を備えている請求項1からの何れか1項に記載のマッチング装置。
【請求項5】
前記マッチング結果選択部は、
前記第1のマッチング部によるマッチング結果の確率情報が示す確率値、前記第2のマッチング部によるマッチング結果の確率情報が示す確率値で除算して得られる比を示す値と、閾値とを比較し、
前記比を示す値が、前記閾値以上であれば、前記第1のマッチング部によるマッチング結果を選択し、
前記比を示す値が、前記閾値未満であれば、前記第2のマッチング部によるマッチング結果を選択する
ことを特徴とする請求項1からの何れか1項に記載のマッチング装置。
【請求項6】
マッチングの対象である対象情報として1又は複数の文字、数字および/または記号を含む文字列の画像データを取得する取得ステップと、
前記対象情報に対するパターンマッチングを行う第1のマッチングステップであって
前記対象情報に含まれるある部分情報に対するマッチング処理として、
前記ある部分情報に対する1又は複数のマッチング候補を、推論モデルを用いて予測し、各マッチング候補の確率情報と共に取得する処理が実行されるとともに、
前記複数の部分情報のそれぞれに対する1又は複数のマッチング候補の各々を対象とするサーチであって、前記文字列を表現する正規表現に対応する状態モデルを用いて、サーチ経路数を所定の数以下に制限したサーチが実行されることによって
前記1又は複数のマッチング候補のうち、前記状態モデルに整合しないマッチング候補を除外する第1の選択処理と、前記確率情報を参照して、前記第1の選択処理後のマッチング候補から、前記所定の数以下のマッチング候補を選択する第2の選択処理と、が実行される第1のマッチングステップと、
前記対象情報に対するパターンマッチングを行う第2のマッチングステップであって、
前記対象情報に含まれるある部分情報に対するマッチング処理として、
前記ある部分情報に対する1又は複数のマッチング候補を、推論モデルを用いて予測し、各マッチング候補の確率情報と共に取得する処理が実行されるとともに、
前記複数の部分情報のそれぞれに対する1又は複数のマッチング候補の各々を対象とするビームサーチであって、前記文字列を表現する正規表現に対応する状態モデルを用いることなく、サーチ経路数を所定の数に制限したビームサーチが実行されることによって、
前記確率情報を参照して、前記1又は複数のマッチング候補から、前記所定の数のマッチング候補を選択する選択処理が実行される、第2のマッチングステップと、
前記第1のマッチングステップによるマッチング結果及び前記第2のマッチングステップによるマッチング結果の何れかを、前記第1のマッチングステップによるマッチング結果の確率情報と前記第2のマッチングステップによるマッチング結果の確率情報とに応じて選択する選択ステップと
を含んでいるマッチング方法。
【請求項7】
請求項1に記載のマッチング装置としてコンピュータを機能させるためのプログラムであって、上記取得部、上記第1のマッチング部、上記第2のマッチング部、及び上記マッチング結果選択部としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象情報とのマッチングを行うマッチング装置、マッチング方法、プログラム、及び記録媒体に関する。
【背景技術】
【0002】
従来、OCR(Optical Character Recognition)等のパターンマッチング技術では、複数の文字を逐次的に識別するために探索アルゴリズムが併用されている。一方、このような探索アルゴリズムの一例として、ビームサーチが知られている(例えば、非特許文献1)。ビームサーチでは、探索のステップごとに、確率が高い上位から所定の数の候補のみを残し、探索のステップを繰り返す。
【先行技術文献】
【非特許文献】
【0003】
【文献】“Towards End-To-End Speech Recognition with Recurrent Neural Networks,” Alex Graves, Navdeep Jaitly, Proceedings of the 31st International Conference on Machine Learning, PMLR 32(2); 1764-1772, 2014.
【文献】“Regular expressions for decoding of neural network outputs,” Tobias Strauss et.al, arXiv:1509.04438v2, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0004】
OCRのようなパターンマッチング技術において、ビームサーチを用いることにより、貪欲法(Greedy Search)等の探索アルゴリズムに比べて精度の向上を期待でき、また、しらみつぶし探索(Exhaustive Search)等の探索アルゴリズムに比べて探索時間の短縮を図ることができる。
【0005】
しかしながら、ビームサーチを用いたとしても、文字の誤認識等に起因した精度の低下については改善の余地がある。この点に関し、非特許文献2では、正規表現に対応する非決定論的有限オートマトン(NFA: Nondeterministic Finite Automaton)を用いたビームサーチが提唱されている。しかしながら、認識対象の情報がどのようなタイプの情報であるのかに関する先験的な情報がない場合、非特許文献2の手法を用いたとしても、精度の向上を得ることは困難であるという問題がある。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係るマッチング装置は、マッチングの対象である対象情報を取得する取得部と、ある正規表現に対応する状態モデルを用いて、前記対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第1のマッチング部と、正規表現に対応する状態モデルを用いることなく、前記対象情報に含まれる複数の部分情報の各々を対象とするビームサーチであって、サーチ経路数を所定の数に制限したビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第2のマッチング部と、前記第1のマッチング部によるマッチング結果及び前記第2のマッチング部によるマッチング結果の何れかを、前記第1のマッチング部によるマッチング結果の確率情報と前記第2のマッチング部によるマッチング結果の確率情報とに応じて選択する選択部とを備えている。
【0007】
上記の課題を解決するために、本発明の一態様に係るマッチング方法は、マッチングの対象である対象情報を取得する取得ステップと、ある正規表現に対応する状態モデルを用いて、前記対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第1のマッチングステップと、正規表現に対応する状態モデルを用いることなく、前記対象情報に含まれる複数の部分情報の各々を対象とするビームサーチであって、サーチ経路数を所定の数に制限したビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第2のマッチングステップと、前記第1のマッチングステップによるマッチング結果及び前記第2のマッチングステップによるマッチング結果の何れかを、前記第1のマッチングステップによるマッチング結果の確率情報と前記第2のマッチングステップによるマッチング結果の確率情報とに応じて選択する選択ステップとを含んでいる。
【発明の効果】
【0008】
本発明の一態様によれば、認識対象の情報がどのようなタイプの情報であるのかに関する先験的な情報がない場合であっても、精度の向上を得ることができる。
【図面の簡単な説明】
【0009】
図1】本発明の実施形態1に係るマッチング装置の構成を示すブロック図である。
図2】本発明の実施形態1に係るマッチング装置が参照する正規表現の例、及び状態モデルの例を示す図である。
図3】本発明の実施形態1に係るマッチング装置が実行するマッチング処理の流れを示すフロー図である。
図4】本発明の実施形態1に係るマッチング部が取得する複数のマッチング候補と確率情報の例を示す図である。
図5】比較例に係るビームサーチにおいて、各々のマッチング候補を用いて探索された、現在状態からの可能な遷移を説明する図である。
図6図4に示した予測結果に重ね合わせて、図5に対応するサーチ経路を示した図である。
図7】本発明の実施形態1に係るマッチング部が行うパターンマッチングに用いる状態モデルの例を示す図である。
図8】本発明の実施形態1に係るマッチング部によるパターンマッチング処理のサーチにおいて、各々のマッチング候補を用いて探索された、現在状態からの可能な遷移を説明する図である。
図9図4に示した予測結果に重ね合わせて、図8に対応するサーチ経路を示した図である。
図10】本発明の実施形態1に係るマッチング装置による出力結果例を、比較例と共に示す図である。
図11】本発明の実施形態2に係るマッチング装置の構成を示すブロック図である。
図12】本発明の実施形態2に係るマッチング装置によるマッチング結果の出力の一例を示す図である。
図13】本発明の実施形態2に係るマッチング装置によるマッチング結果の出力の他の例を示す図である。
図14】本発明の実施形態1に係るマッチング装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0010】
〔実施形態1〕
以下、本発明の一実施形態について、詳細に説明する。本実施形態に係るマッチング装置は、画像情報等の対象情報に対するマッチング処理を行い、マッチング結果を出力する。一例として、本実施形態に係るマッチング装置は、撮像装置によって撮像された画像データに含まれる文字列を識別するために用いることができるがこれは本実施形態を限定するものではない。
【0011】
(マッチング装置)
図1を参照してマッチング装置の構成について具体的に説明する。図1は、本実施形態に係るマッチング装置1の構成を示すブロック図である。図1に示すように、マッチング装置1は、制御部10、記憶部20、通信部30、及び入出力部40を備えている。
【0012】
(記憶部)
まず、図1を参照して記憶部20に格納された各種データについて説明を行う。図1に示すように、記憶部20には、
・正規表現(Regular Expression)REGEX、及び、
・当該正規表現に対応する状態モデル(State Model)SM
が格納されている。ここで、正規表現REGEXは、後述する通信部30や入出力部40を介して、マッチング装置1の外部から取得されたものであってもよいし、通信部30や入出力部40を介して取得したユーザの指示に基づき、後述する生成部14によって生成されたものであってもよい。
【0013】
正規表現REGEXは、1又は複数のリテラル文字(literal character)、及び1又は複数のメタ文字(meta-character)の少なくとも何れかを含んで構成される。ここで、リテラル文字(literal character)は、識別子によって表現する必要のない明示的な数値、文字、文字列等を指す。一方、メタ文字(meta-character)は、識別子によって表現され種々の意味を有する。一例として、メタ文字(meta-character)には、場所(位置)を表現するメタ文字、文字や文字グループを表現するメタ文字、エスケープを表現するメタ文字、繰り返しを表現するメタ文字、グループ化を表現するメタ文字等があるが、これは本実施形態を限定するものではない。
【0014】
図2の上段は、記憶部20に格納された正規表現REGEXの一例を示している。図2に示した正規表現REGEXは、
・リテラル文字「a」及び「b」
・グループ化を意味するメタ文字「()」
・択一的選択を意味するメタ文字「|」
・指定回数分の繰り返しを意味するメタ文字「{}」と指定回数を示すリテラル文字「2」
・0回以上の任意の繰り返しを意味するメタ文字「*」
を含んで構成されており、全体として、
・(1個のa、又は2個のb)の0回以上の繰り返し
を表現している。
【0015】
一方、状態モデルSMは、複数の状態(state)と、状態間の遷移(transition)とを含むモデルであり、状態機械(State Machine)とも呼ばれる。状態モデルSMは、一例として、状態を表すノードと、状態間の遷移を示す有向リンクとを含んで構成される。状態モデルSMは、後述するマッチング部12によるマッチング処理において参照される。
【0016】
任意の正規表現は、状態モデルとして表現することができる。換言すれば、ある対象の文字列が、ある正規表現に整合しているか否か(当該ある対象の文字列が当該ある正規表現として表現できるものであるか否か)を、当該正規表現に対応する状態モデルを用いて判別することができる。
【0017】
状態モデルの一例として有限オートマトン(Finite Automaton)が挙げられるが、これは本実施形態を限定するものではない。また、有限オートマトンの例として、
・決定論的有限オートマトン(Deterministic Finite Automaton)
・非決定論的有限オートマトン(Non-deterministic Finite Automaton)
が挙げられるが、これは本実施形態を限定するものではない。有限オートマトンは、一例として、1又は複数の状態と1又は複数の遷移を記述するルールとを含むコンピュータプログラムによって表現可能である。
【0018】
状態モデルSMは、後述する通信部30や入出力部40を介して、マッチング装置1の外部から取得されたものであってもよいし、通信部30や入出力部40を介して取得したユーザの指示に基づき、後述する生成部14によって生成されたものであってもよい。
【0019】
本実施形態に係る状態モデルSMは、一例として、上述した正規表現に対応付けて生成されたものである。例えば、後述するマッチング部12によるマッチング処理に先駆けて、当該マッチング処理において用いられる正規表現REGEXに対応する状態モデルSMを、生成部14が予め生成し、記憶部20に格納しておくことができる。
【0020】
図2の下段は、記憶部20に格納された状態モデルSMの一例を示している。図2の下段に示す状態モデルSMは、図2の上段に示す正規表現REGEXの例を表現する状態モデルである。
【0021】
図2に例示する状態モデルSMは、
・ノード「1」及び「2」
・ノード「1」からノード「2」へのリンク
・ノード「2」からノード「1」へのリンク、並びに
・ノード「1」から自身のノード「1」へのリンク
を含んで構成される。状態モデルSMに対して対象の文字列がノード「1」に入力され、当該文字列の1番目が「a」であればノード「1」に留まり、当該文字列の1番目が「b」であればノード「2」に遷移する。当該文字列の1番目が「a」又は「b」以外であれば当該文字列は拒絶(reject)される。また、ノード「2」の状態において、当該文字列の2番目が「b」であれば、ノード「1」に遷移する。
【0022】
このようにして、対象の文字列が、図2上段の正規表現REGEXを満たしている(当該対象文字列が当該正規表現REGEXによって表現できる)場合に、当該文字列はノード「1」の状態となる。これを、当該対象文字列が、状態モデルSMによって受理(accept)されたと表現することもある。
【0023】
一方、対象文字列が、図2上段の正規表現REGEXを満たしていない(当該対象文字列が当該正規表現REGEXによって表現できない)場合に、当該文字列はノード「1」以外の状態となる。これを、当該対象文字列が、状態モデルSMによって拒絶(reject)されたと表現することもある。
【0024】
記憶部20に格納された他のデータの説明に戻る。図1に示すように、記憶部20には、画像データIMGが格納されている。画像データIMGは一例として、1又は複数の文字を画角に含む画像データである。画像データIMGは、通信部30や入出力部40を介して、マッチング装置1の外部から取得されたものであってもよいし、マッチング装置1が備える図示しないカメラ(撮像装置)によって撮像されたものであってもよい。
【0025】
また、図1に示すように、記憶部20には、推論モデルPMも格納されている。より具体的には、記憶部20には、推論モデルPMを規定する各種のデータが格納されており、後述するマッチング部12は、これらのデータを参照して推論モデルPMを実行させる。推論モデルPMの具体的構成は本実施形態を限定するものではないが、一例として、推論モデルPMは、CNN(Convolutional Neural Network)を用いて構成することができるが、これは本実施形態を限定するものではない。推論モデルPMは、CNNとRNN(Recurrent Neural Network)とを組み合わせることによって構成してもよいし、その他のDNN(Deep Neural Network)を用いてもよい。
【0026】
また、図1に示すように、記憶部20には、マッチング部12によるマッチング処理の結果を示すパターンマッチ結果PMRも格納されている。画像データIMGが1又は複数の文字を画角に含む画像データである場合、当該画像データIMGに対するマッチング部12によるパターンマッチングの結果を示すパターンマッチ結果PMRは、一例として文字列(string)である。パターンマッチ結果PMRは、通信部30や入出力部40を介して、マッチング装置1の外部に出力される。
【0027】
(通信部)
通信部30は、マッチング装置1の外部の装置と通信を行う。通信部30は、制御部10から供給されたデータを外部の装置に送信したり、外部の装置から受信したデータを制御部10に供給したりする。
【0028】
(入出力部)
入出力部40は、マッチング装置1の外部からデータを受け付けたり、マッチング装置1の外部にデータを出力したりする。一例として、入出力部40は、カメラ又はスキャナを備え、当該カメラ又はスキャナで取得した画像を、制御部10に供給する。ここで、当該画像には、上述した画像データIMGが含まれ得る。他の例として、入出力部40はキーボードやタッチパッド等の入力デバイスを備え、これらの入力デバイスを介してデータの入力を受け付ける。そして受け付けたデータを制御部10に供給する。また、一例として、入出力部40は、表示パネルを備え、制御部10から供給されたデータを当該表示パネルを介して表示する。表示パネルが表示するデータには、マッチング部12によるマッチング結果が含まれ得る。
【0029】
(制御部)
続いて、図1を参照して、マッチング装置1が備える制御部10の構成について説明する。図1に示すように、制御部10は、取得部11、マッチング部12、選択部13、及び生成部14を備えている。
【0030】
(取得部)
取得部11は、マッチングの対象である対象情報を取得する。ここで、対象情報は、一例として、1又は複数の文字やパターンを画角に含む画像情報である。一例として、対象情報は、1又は複数の文字やパターンを画角に含む1枚の画像を含んでもよいし、1又は複数の文字やパターンを画角に含む複数枚の画像を含んでもよい。上述した画像データIMGは、対象情報の一例である。ただし、これらの例は、本実施形態を限定するものではない。
【0031】
(マッチング部)
マッチング部12は、対象情報に対するパターンマッチング処理を実行する。より具体的には、マッチング部12は、ある正規表現に対応する状態モデルを用いて、画像データIMGに含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行う。マッチング部12のことを第1のマッチング部と呼ぶこともある。また、本実施形態において、サーチ経路のことを単に経路とも呼ぶ。
【0032】
ここで、マッチング部12は、一例として、上述した正規表現REGEXに対応する状態モデルSMを用いることができる。
【0033】
また、画像データIMGに含まれる複数の部分情報は、一例として、画像データIMGを複数の部分に分割して得られる部分画像である。例えば、マッチング部12は、画像データIMGを、所定の画素幅の部分画像に分割し、当該部分画像毎にマッチング候補を予測する構成とすることができる。ここで、所定の画素幅は、一例として、4画素(4 pixels)であるが、これは本実施形態を限定するものではない。所定の画素幅は、例えば、6画素(6 pixels)であってもよいし、8画素(8 pixels)であってもよいし、他の画素幅であってもよい。また、マッチング部12による部分画像毎のマッチング候補の予測は、一例として、上述した推論モデルPMによって実行することができる。
【0034】
より具体的に言えば、マッチング部12において、推論モデルPMは、画像データIMGに含まれる所定の画素幅の部分画像毎に、画像データIMGに含まれる文字(character)を予測し、予測結果を表す複数のマッチング候補を、各々のマッチング候補の確率情報と共に出力する。
【0035】
また、上述したように、マッチング部12は画像データIMGに含まれる複数の部分画像の各々を対象とするサーチであって、であって、サーチ経路数を所定の数以下に制限したサーチを実行する。ここで、当該サーチは、推論モデルPMが部分画像に対するマッチング候補を出力する度に、
(1)確率情報の示す確率が高い順にK個のマッチング候補を選択し
(2)選択した複数のマッチング候補を、前回までのサーチ経路に追加することによって1又は複数のサーチ経路を生成し、
(3)生成した1又は複数のサーチ経路のうち、上位N番目までのサーチ経路を残し、他の経路を排除する
という処理を行う。
【0036】
ここで、マッチング部12は、上記(1)から(3)の各処理に加え、状態モデルSMを参照した選択処理を適用することによって、状態モデルSMに整合しないマッチング候補を排除する処理を行う。一例として、マッチング部12は、上記(1)の処理の前に、推論モデルPMが出力した複数のマッチング候補に対して、状態モデルSMを参照した選択処理を適用することによって、状態モデルSMに整合しないマッチング候補を排除するフィルタ処理を行う。そして、マッチング部12は、当該フィルタ処理後のマッチング候補に対して、上記(2)及び(3)の処理を実行する。
【0037】
このように、マッチング部12は、上述した複数のマッチング候補に対して、状態モデルSMを参照した選択処理を適用することによって、状態モデルSMに整合しないマッチング候補を排除すると共に、遷移経路の数を所定のビーム幅以下に制限しつつ、次の部分画像のマッチング処理に進む。マッチング部12は、このような処理を行うことによって、状態モデルを用いたビームサーチを実行する。そして、マッチング部12は、このような状態モデルを用いたビームサーチを実行することによって、画像データIMGに対するパターンマッチングを行う。
【0038】
マッチング部12は、パターンマッチングの結果を、パターンマッチ結果PMRとして出力し、出力したパターンマッチ結果PMRは、一例として記憶部20に格納される。
【0039】
(選択部)
選択部13(状態モデル選択部13)は、記憶部20に格納されている状態モデルSMの中から、マッチング部12によるパターンマッチに用いられる状態モデルSMを選択する。選択部13は、一例として、入出力部40が受け付けたコンテンツタイプ情報に基づいて、個々の正規表現に個別に対応する複数の状態モデルから、パターンマッチングに用いる状態モデルを選択する。
【0040】
マッチング装置1が、特定の1つの状態モデルSMのみを用いる場合には、選択部13は必須ではない。なお、複数の状態モデルSMには、一例として、
・日付(年、月、日等を含む)に関するパターンマッチに適した正規表現に対応する状態モデル
・住所(都道府県、市、町、番地等を含む)に関するパターンマッチに適した正規表現に対応する状態モデル
・電話番号に関するパターンマッチに適した正規表現に対応する状態モデル
・E-mailアドレスに関するパターンマッチに適した正規表現に対応する状態モデル
・金融的な値(価格や各種の指数など)に関するパターンマッチに適した正規表現に対応する状態モデル
のように、マッチング対象の種類に応じて、予め用意しておくことができる。
【0041】
(生成部)
生成部14は、記憶部20に格納された正規表現REGEXから、当該正規表現に対応する状態モデルSMを生成する。生成部14は、有限オートマトンとしての状態モデルSMを、一例としてコンピュータプログラムの形式で生成することができる。ただしこれは本実施形態を限定するものではなく、状態モデルSMは、ルールやパラメータの集合であってコンピュータが参照可能な形式として生成されてもよい。
【0042】
生成部14は、一例として、記憶部20に格納された正規表現REGEXから、当該正規表現に対応する非決定論的有限オートマトンを生成し、当該非決定論的有限オートマトンに基づいて、決定論的有限オートマトンを生成してもよい。
【0043】
上述したマッチング部12が行うパターンマッチングに用いる状態モデルSMとしては、非決定論的有限オートマトンよりも、決定論的有限オートマトンを用いることが好ましい。これは、決定論的有限オートマトンは、受理又は拒絶の処理を、非決定論的有限オートマトンよりも迅速に行うことができるためである。
【0044】
なお、状態モデルSMは人間によって作成されたものを記憶部20に格納する構成としてもよい。そのような構成の場合、生成部14は必須ではない。
【0045】
(パターンマッチング処理の流れ)
続いて、マッチング装置1によるパターンマッチング処理の流れについて図3を参照して説明する。図3は、マッチング装置1によるパターンマッチング処理の流れを示すフローチャートである。
【0046】
(ステップS101)
まず、ステップS101において、取得部11は対象情報を取得する。上述したように、一例として、取得部11は対象情報として画像データIMGを取得する。
【0047】
(ステップS102)
ステップS102は、対象情報に含まれる複数の部分情報に関する処理のループの始端である。上述したように、一例として、部分情報は、画像データIMGに含まれる所定の画素幅の部分画像である。部分情報に関するループを、一例として、ループ変数n(nは0からN-1(Nは画像データIMGに含まれる部分画像の総数)までの自然数)によって表現している。
【0048】
(ステップS103)
続いて、ステップS103において、マッチング部12は、部分情報Inを参照した推論モデルPMによって画像データIMGに含まれる文字(character)を予測し、予測結果を表す複数のマッチング候補を、各々のマッチング候補の確率情報と共に取得する。
【0049】
(ステップS104)
続いて、ステップS104において、マッチング部12は、ステップS103において取得した各々のマッチング候補を用いて、現在状態からの可能な遷移を取得する。ここで、現在状態とは、ループ変数n-1までの処理によって定まる状態のことを指し、一例として、状態モデルSMにおける現在状態のことを指し、現在状態からの可能な遷移とは、一例として、状態モデルSMにおいて現在状態からの可能な遷移のことを指す。或いは、ループ変数n-1までの各処理に対応する遷移を表現する遷移図において、選択可能な状態として残存している1又は複数の経路のことを現在状態と呼ぶこともできる。
【0050】
(ステップS105)
続いて、ステップS105において、マッチング部12は、ステップS104において取得した各々の前記可能な遷移が、状態モデルSMと整合しているかを確認する。換言すれば、各々のマッチング候補が、状態モデルSMと整合しているかを確認する。ここで、前記可能な遷移(又はそれに対応するマッチング候補)が状態モデルSMに整合している場合には、当該遷移(又はそれに対応するマッチング候補)は、状態モデルSMによって受理され、そうでない場合に拒絶される。
【0051】
(ステップS106)
続いて、ステップS106において、マッチング部12は、状態モデルSMに整合しない遷移(又はそれに対応するマッチング候補)、換言すれば状態モデルSMによって拒絶された遷移(又はそれに対応するマッチング候補)を排除し、以降の処理では考慮しない。
【0052】
(ステップS107)
続いて、ステップS107において、マッチング部12は、ステップS106において排除されなかったマッチング候補から、K個のマッチング候補を選択する。一例として、確率が高いK番目までのマッチング候補を選択する。
【0053】
(ステップS108)
続いて、ステップS108において、マッチング部12は、ステップS107において選択されたマッチング候補を用いて経路を更新する。
【0054】
(ステップS109)
続いて、ステップS109において、マッチング部12は、ステップS108において選択された経路のうち、上記N番目までの経路を残し、それ以外の経路を排除する。排除された経路は、以降の処理では考慮されない。
【0055】
(ステップS110)
続いて、ステップS110において、マッチング部12は、ループ変数nをn+1にインクリメントする。
【0056】
(ステップS111)
ステップS111は、対象情報に含まれる複数の部分情報に関する処理のループの終端である。
【0057】
(ステップS112)
対象情報に含まれる複数の部分情報の全てについて上述した処理が終了した後、ステップS112において、マッチング部12は、最も確率の高い経路に対応するマッチング結果を出力する。
【0058】
以上のように、マッチング装置1によるパターンマッチング処理は、対象情報に含まれるある部分情報に対するマッチング処理として、
前記ある部分情報に対する1又は複数のマッチング候補と、各マッチング候補の確率情報とを取得する処理(ステップS103)と、
前記1又は複数のマッチング候補のうち、前記状態モデルに整合しないマッチング候補を除外する第1の選択処理(ステップS106)と、
前記確率情報を参照して、前記第1の選択処理後のマッチング候補から、前記所定の数以下のマッチング候補を選択する第2の選択処理(ステップS107)と、を含んでいる。
【0059】
(マッチング部12の処理による状態の遷移例)
以下では、マッチング部12の処理による状態の遷移例について説明する。以下の説明では、撮像装置によって撮像された画像データに含まれる文字列が「1年2月8日」であった場合を例に挙げて説明する。換言すれば、上述したステップS101において、取得部11が、「1年2月8日」との文字列が撮像された画像データIMGを対象情報として取得した場合を例に挙げて説明する。
【0060】
上記のような例では、対象情報に含まれる複数の部分情報In(n=0~5)は、それぞれ「1」、「年」、「2」、「月」、「8」、および「日」に対応する6個の部分画像となる。
【0061】
上述したように、ステップS103において、マッチング部12は、部分情報Inを参照した推論モデルPMによって画像データIMGに含まれる文字(character)を予測し、予測結果を表す複数のマッチング候補を、各々のマッチング候補の確率情報と共に取得する。これにより、例えば、図4に示される情報が取得されることになる。
【0062】
図4は、マッチング部12が取得する複数のマッチング候補と確率情報の例を示す図である。
【0063】
図4の例では、部分情報I0~部分情報I5が、Slice0~Slice5として表されている。また、部分情報I0~部分情報I5のマッチング候補として、Characters「1」、「2」、「3」、・・・「月」、「日」、・・・が示されている。
【0064】
そして、図4においては、各Sliceに対応する列と各Charactersに対応する行とにより、各部分情報に対する予測結果としての各マッチング候補の確率情報が示されている。ここで、各マッチング候補の確率情報は、部分情報毎に、値の大きい順に上位3つが選択される。図4において、この上位3つの確率情報は、それぞれ異なるハッチングを付して示されている。
【0065】
次に、マッチング部12の処理により得られるサーチ経路とマッチング結果の例について、より具体的に説明する。
【0066】
(比較例に係る処理)
まず、比較のため、従来のビームサーチによる遷移を、比較例として先に説明する。
【0067】
図5は、従来のビームサーチにおいて、各々のマッチング候補を用いて探索された、現在状態からの可能な遷移を説明する図である。この例において、維持すべきビームの数Nは、2であり、遷移先として考慮されるマッチング候補(Considered characters)の数Kは3である。
【0068】
すなわち、部分情報I0~部分情報I5のそれぞれに対するビームサーチにおいて、確率が高い3番目までのマッチング候補が選択され、選択されたマッチング候補を用いてビームサーチの経路が更新される。このとき、ビームサーチの経路のうち、上位2番目までの経路を残し、それ以外の経路が排除され、排除された経路は、以降の処理では考慮されない。
【0069】
いまの場合、部分情報I0~部分情報I5のそれぞれに対するビームサーチに伴って状態が遷移する。このため、図5においては、部分情報I0に対応する状態がStep0で示され、部分情報I1に対応する状態がStep1で示され、部分情報I2に対応する状態がStep2で示され、・・・部分情報I5に対応する状態がStep5で示されている。
【0070】
また、図5において、Considered charactersは、確率が高いK番目までのマッチング候補であり、例えば、Step0では、「/」、「1」、および「l」の3つのマッチング候補がConsidered charactersとして特定されている。
【0071】
さらに、図5においては、上位2番目までの経路がBeam 1とBeam 2で表されている。経路Beam 1での現在状態に対応するマッチング候補は、Beam 1 charactersで示されており、経路Beam 2での現在状態に対応するマッチング候補は、Beam 2 charactersで示されている。
【0072】
また、図5においては、Beam 1 charactersで示されたマッチング候補の確率情報がBeam 1 probabilityで示され、Beam 2 charactersで示されたマッチング候補の確率情報がBeam 1 probabilityで示されている。
【0073】
図5とともに図6を参照してさらに詳細に説明する。図6は、図4に示した予測結果に重ね合わせて、図5に対応するサーチ経路を示した図である。図6においては、上位2番目までの経路Beam 1と経路Beam 2が、それぞれ直線の矢印と一点鎖線の矢印によって示されている。
【0074】
ここで、経路Beam 1および経路Beam 2は、それぞれBest beamおよび2nd best beamとも称される。また、図6において、排除された経路は、Considered expansionと称され、破線の矢印で示されている。
【0075】
図6において、Step0(Slice0)では、確率情報が参照され、「/」がBest beamとなり、「1」(数字の1)が2nd best beamとなる。一方、「l」(アルファベットのl)は、3つのマッチング候補の中で確率情報の値が最も低いので、Considered expansionとなり、排除される。
【0076】
Step1(Slice1)では、「/」および「1」のそれぞれを現在状態として、ビームサーチが実行される。Step1(Slice1)のConsidered charactersは、「年」、「月」、および「日」なので、「/」から「年」への経路、「/」から「月」への経路、「/」から「日」への経路、「1」から「年」への経路、「1」から「月」への経路、および「1」から「日」への経路があり得る。
【0077】
「/」から「年」への経路に対応する確率は、0.32(=0.4×0.8)、「/」から「月」への経路に対応する確率は、0.04(=0.4×0.1)、「/」から「日」への経路に対応する確率は、0.02(=0.4×0.05)である。また、「1」から「年」への経路に対応する確率は、0.24(=0.3×0.8)であり、「1」から「月」への経路に対応する確率は、0.03(=0.3×0.1)であり、「1」から「月」への経路に対応する確率は、0.015(=0.3×0.05)である。
【0078】
上記に説明した6本の経路のうち、上位2番目までの経路は、「/」から「年」への経路および「1」から「月」への経路である。従って、Step1(Slice1)でのBest beamは、「/」から「年」への経路となり、2nd best beamは、「1」から「年」への経路になり、それ以外の経路は排除される。
【0079】
同様に、Step2(Slice2)では、「/」、「年」、「2」の経路がBest beamになり、「1」、「年」、「2」の経路が2nd best beamとなる。
【0080】
このような処理が、Step5(Slice5)まで繰り返されることにより、対象情報「1年2月8日」の予測結果としてのBest beamと2nd best beamが得られることになる。この例では、Best beamは、「/」、「年」、「2」、「月」、「8」、「8」の経路になり、2nd best beamは、「/」、「年」、「2」、「月」、「8」、「日」の経路になる。ここで、Best beamの確率(Beam 1 probability)は、0.09216であり、2nd best beamの確率(Beam 2 probability)は、0.073728となる。
【0081】
(本実施形態に係る処理例)
次に、本実施形態のマッチング装置1によるパターンマッチング処理による状態の遷移について、より具体的に説明する。
【0082】
図7は、マッチング部12が行うパターンマッチングに用いる状態モデルSMの例を示す図である。図7は、日付(年、月、日等を含む)に関するパターンマッチに適した正規表現に対応する状態モデルである。図7に示す状態モデルは、一例として、複数の状態モデルの中から、選択部13によって選択されたものである。
【0083】
図7の状態モデルを参照して、マッチング部12は、
Step0(ノード0からノード1への遷移)において、各マッチング候補と正規表現「[0-9]」との整合性を判定し、当該正規表現「[0-9]に整合するマッチング候補を残し、当該正規表現「[0-9]に整合しないマッチング候補を除外し、
Step1(ノード1からノード2への遷移)において、各マッチング候補と正規表現「年」との整合性を判定し、当該正規表現「年」に整合するマッチング候補を残し、当該正規表現「年」に整合しないマッチング候補を除外し、
・・・
Step5(ノード5からノード6への遷移)において、各マッチング候補と正規表現「日」との整合性を判定し、当該正規表現「日」に整合するマッチング候補を残し、当該正規表現「日」に整合しないマッチング候補を除外する、
という処理を行う。
【0084】
図8は、本実施形態のマッチング装置1によるパターンマッチング処理のサーチにおいて、各々のマッチング候補を用いて探索された、現在状態からの可能な遷移を説明する図である。この例において、維持すべきビームの数Nは、2であり、遷移先として考慮されるマッチング候補(Considered characters)の数Kは3である。
【0085】
すなわち、図5の場合と同様に、部分情報I0~部分情報I5のそれぞれに対するサーチにおいて、確率が高い3番目までのマッチング候補が選択され、選択されたマッチング候補を用いてサーチの経路が更新される。このとき、サーチの経路のうち、上位2番目までの経路を残し、それ以外の経路が排除され、排除された経路は、以降の処理では考慮されない。
【0086】
図8においては、図7の状態モデルが適用されることにより、マッチング候補の選択が図5の場合とは異なっている。
【0087】
すなわち、Step0(Slice0)では、正規表現「[0-9]」が適用されるため、Considered charactersとなるマッチング候補は、「1」、「2」、および「3」の3つとなり、「/」はマッチング候補から除外されている。
【0088】
図8とともに図9を参照してさらに詳細に説明する。図9は、図4に示した予測結果に重ね合わせて、図8に対応するサーチ経路を示した図である。図6においては、上位2番目までの経路Beam 1と経路Beam 2が、それぞれ直線の矢印と一点鎖線の矢印によって示されている。
【0089】
ここで、経路Beam 1および経路Beam 2は、それぞれBest beamおよび2nd best beamとも称される。また、図9において、排除された経路は、Considered expansionと称され、破線の矢印で示されている。
【0090】
図8図9の例では、Step1(Slice1)では、「1」および「2」のそれぞれを現在状態として、サーチが実行される。図7の状態モデルが適用されることにより、Step1(Slice1)のConsidered charactersは、「年」のみとなるので、「1」から「年」への経路、および「2」から「年」への経路があり得る。従って、Step1(Slice1)でのBest beamは、「1」から「年」への経路となり、2nd best beamは、「2」から「年」への経路になる。
【0091】
同様に、Step2(Slice2)では、「1」、「年」、「2」の経路がBest beamになり、「2」、「年」、「2」の経路が2nd best beamとなる。
【0092】
このような処理が、Step5(Slice5)まで繰り返されることにより、対象情報「1年2月8日」の予測結果としてのBest beamと2nd best beamが得られることになる。この例では、Best beamは、「1」、「年」、「2」、「月」、「8」、「日」の経路になり、2nd best beamは、「2」、「年」、「2」、「月」、「8」、「日」の経路になる。ここで、Best beamの確率(Beam 1 probability)は、0.055296であり、2nd best beamの確率(Beam 2 probability)は、0となる。
【0093】
図5図6を参照して説明した比較例に係るビームサーチによれば、対象情報「1年2月8日」の予測結果として、「/年2月88」と「/年2月8日」とが得られることになり、いずれも誤った予測結果となっている。
【0094】
一方、図7図9を参照して説明した本実施形態のサーチによれば、対象情報「1年2月8日」の予測結果として、「1年2月8日」と「2年2月8日」とが得られることになるが、「2年2月8日」の確率は0であるため、実際には、「1年2月8日」のみが得られることになる。
【0095】
このように本実施形態によれば、マッチング部12が行うパターンマッチングにおいて正規表現に対応する状態モデルが用いられるので、より正確な予測結果を得ることができる。
【0096】
(マッチング装置1による出力結果例)
図10は、本実施形態に係るマッチング装置1による出力結果例を、比較例と共に示す図である。図10に示す例では、マッチング装置1が、画像データ101を対象情報として取得した場合の、マッチング結果を示している。
【0097】
図10に示す例では、入出力部40が、コンテンツタイプ情報として、「date(日付)」を受け付け、選択部13が、当該コンテンツタイプ情報に基づいて、個々の正規表現に個別に対応する複数の状態モデルから、日付(年、月、日等を含む)に関するパターンマッチに適した正規表現に対応する状態モデルを選択した場合を示している。
【0098】
そして、図10に示す例では、マッチング部12は当該状態モデルを用いて、上述したように、対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、対象情報に対するパターンマッチングを行う。そして、入出力部40は、図10に示すように、マッチング部12によるマッチング結果103を表示する。
【0099】
一方で、マッチング結果102A、及び102Bは比較例に係るマッチング結果を示している。マッチング結果102Aは、状態モデルを用いないビームサーチを実行した結果の一例を示している。
【0100】
より具体的には、マッチング結果102Aは、推論モデルPMの出力のうち、キャラクタータイプ(character type)として、
数字(numbers)、漢字(kanji)、及び句読点(punctuation)のみを残す処理、換言すれば、数字(numbers)、漢字(kanji)、及び句読点(punctuation)以外の出力の確率情報を0に設定する処理
を実行したうえで、状態モデルを用いないビームサーチを実行した結果を示している。
【0101】
マッチング結果102Bは、状態モデルを用いないビームサーチを実行した結果の他の例を示している。より具体的には、マッチング結果102Bは、推論モデルPMの出力のうち、キャラクタータイプ(character type)として、
数字(numbers)、漢字(kanji)のみを残す処理、換言すれば、数字(numbers)、及び漢字(kanji)以外の出力の確率情報を0に設定する処理
を実行したうえで、状態モデルを用いないビームサーチを実行した結果を示している。
【0102】
図10に示すように、状態モデルを用いないサーチでは、マッチング結果102Aに示すように「1」ではなく「/」が出力されたり、マッチング結果102Bに示すように、「日」ではなく「8」が出力されたりしてしまい、適切なマッチング結果を出力することが出来ていない。
【0103】
一方、図10に示すように、状態モデルを用いたサーチの結果であるマッチング結果103では、適切なマッチング結果が出力されている。
【0104】
このように、本実施形態1に係るマッチング装置1によれば、逐次的なパターンマッチング処理において、精度の向上を図ることができる。
【0105】
〔実施形態2〕
以下、本発明の第2の実施形態について説明する。実施形態1において説明した構成と同じ構成については同じ参照符号を付し説明を適宜省略する。
【0106】
本実施形態に係るマッチング装置1Aは、実施形態1に係るマッチング装置1と同様に、画像情報等の対象情報に対するマッチング処理を行い、マッチング結果を出力する。
【0107】
図11は、本実施形態に係るマッチング装置1Aの構成を示すブロック図である。図11に示すように、制御部10、記憶部20、通信部30、及び入出力部40を備えている。
【0108】
記憶部20に格納された各種のデータは、実施形態1に係るマッチング装置1が備える記憶部20とほぼ同様である。ただし、本実施形態に係る記憶部20には、一例として、状態モデルSMが1つのみ格納されている。本実施形態に係る状態モデルSMは、一例として、正規表現REGEXとして実施形態1よりも一般的な表現を用いている。
【0109】
また、図11に示すように、本実施形態に係るマッチング装置1Aの制御部10は、取得部11、第1マッチング部12、第2マッチング部15、マッチング結果選択部16、及びマッチング結果出力部17を備えている。
【0110】
第1マッチング部12は、実施形態1に係るマッチング部12と同様の構成である。したがって、実施形態1において説明したマッチング部12の各種の処理が本実施形態にも適用される。一方、第2マッチング部15は、状態モデルを用いないビームサーチを実行する。換言すれば、第2マッチング部15は、実施形態1において説明した比較例に係るビームサーチを実行する。より具体的に言えば、第2マッチング部15は、正規表現に対応する状態モデルを用いることなく、対象情報に含まれる複数の部分情報の各々を対象とするビームサーチであって、サーチ経路数を所定の数に制限したビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行う。
【0111】
マッチング結果選択部16は、第1マッチング部12によるマッチング結果及び第2マッチング部15によるマッチング結果の何れかを、第1マッチング部12によるマッチング結果の確率情報と第2マッチング部15によるマッチング結果の確率情報とに応じて選択する。そして、マッチング結果出力部17は、マッチング結果選択部16による選択結果を出力する。マッチング結果出力部17が出力するマッチング結果は、一例として入出力部40が備える表示パネルに表示される。
【0112】
換言すれば、マッチング装置1Aによるマッチング方法は、
マッチングの対象である対象情報を取得する取得ステップと、
ある正規表現に対応する状態モデルを用いて、前記対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第1のマッチングステップと、
正規表現に対応する状態モデルを用いることなく、前記対象情報に含まれる複数の部分情報の各々を対象とするビームサーチであって、サーチ経路数を所定の数に制限したビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第2のマッチングステップと、
前記第1のマッチングステップによるマッチング結果及び前記第2のマッチングステップによるマッチング結果の何れかを、前記第1のマッチングステップによるマッチング結果の確率情報と前記第2のマッチングステップによるマッチング結果の確率情報とに応じて選択する選択ステップと
を含んでいると表現してもよい。
【0113】
図12は、本実施形態に係るマッチング装置1Aによるマッチング結果の出力の一例を示す図である。図12に示す例では、マッチング装置1Aが、画像データ101を対象情報として取得した場合の、マッチング結果を示している。
【0114】
図12に示す例では、第1マッチング部12は、上述した一般的な状態モデルを用いて、対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、対象情報に対するパターンマッチングを行い、マッチング結果103を得る。
【0115】
一方で、第2マッチング部15は、正規表現に対応する状態モデルを用いることなく、対象情報に含まれる複数の部分情報の各々を対象とするビームサーチであって、サーチ経路数を所定の数に制限したビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行い、マッチング結果102を得る。
【0116】
図12に示す例では、第1マッチング部12が得たマッチング結果103の確率(Beam probability)は、0.98であり、十分に大きい値と言える。換言すれば、一例として予め設定された閾値を0.8とすると、当該閾値よりも大きい値の確率を得ている。
【0117】
一方、図12に示す例では、第2マッチング部15が得たマッチング結果102の確率(Beam probability)は、0.99であり、十分に大きい値と言える。換言すれば、一例として予め設定された閾値を0.8とすると、当該閾値よりも大きい値の確率を得ている。
【0118】
このように、第1マッチング部12が得たマッチング結果の確率情報と、第2マッチング部15が得たマッチング結果の確率情報とが、共に高い確率を示している場合、換言すれば、両者のマッチング結果の確率情報が共に所定の閾値よりも大きい場合、マッチング結果出力部16は、第1マッチング部12が得たマッチング結果及び第2マッチング部15が得たマッチング結果のうち、第1マッチング部12が得たマッチング結果のみを出力する。又は、第1マッチング部12が得たマッチング結果を優先的に表示する。
【0119】
一方、図13は、本実施形態に係るマッチング装置1Aによるマッチング結果の出力の他の例を示す図である。図13に示す例では、マッチング装置1Aが、画像データ101を対象情報として取得した場合の、マッチング結果を示している。
【0120】
図13に示す例では、第1マッチング部12が得たマッチング結果103の確率(Beam probability)は、0.02であり、十分に小さい値と言える。換言すれば、一例として予め設定された閾値を0.8とすると、当該閾値よりも小さい値の確率を得ている。
【0121】
一方、図13に示す例では、第2マッチング部15が得たマッチング結果102の確率(Beam probability)は、0.96であり、十分に大きい値と言える。換言すれば、一例として予め設定された閾値を0.8とすると、当該閾値よりも大きい値の確率を得ている。
【0122】
このように、第1マッチング部12が得たマッチング結果の確率情報が、第2マッチング部15が得たマッチング結果の確率情報よりも小さい場合、換言すれば、第1マッチング部12が得たマッチング結果の確率情報が所定の閾値よりも小さく、第2マッチング部15が得たマッチング結果の確率情報が所定の閾値よりも大きい場合、マッチング結果出力部16は、第1マッチング部12が得たマッチング結果及び第2マッチング部15が得たマッチング結果のうち、第2マッチング部15が得たマッチング結果のみを出力する。又は、第2マッチング部15が得たマッチング結果を優先的に表示する。
【0123】
以上のように構成されたマッチング装置1Aによれば、ユーザに対してより適切なマッチング結果を提示することができる。また、上記の処理を行うマッチング装置1Aによれば、対象情報(画像データ)がどのようなタイプの情報であるのかに関する先験的な情報がなくとも、精度の向上を得ることができる。
(具体的な処理例)
なお、マッチング結果選択部16による具体的な処理例は、以下のように表現してもよい。すなわち、マッチング結果選択部16は、
第1マッチング部12によるマッチング結果の確率情報が示す確率値と、第2マッチング部15によるマッチング結果の確率情報が示す確率値で除算して得られる比を示す値と、閾値とを比較する。そして、マッチング結果選択部16は、
前記比を示す値が、前記閾値以上であれば、第1マッチング部12によるマッチング結果を選択し、
前記比を示す値が、前記閾値未満であれば、第2マッチング部15によるマッチング結果を選択する。ここで、前記閾値は、適宜設定しておくことができる。一例として前記閾値は、0.9~1.0までの任意の値としてもよいし、他の値としてもよい。
【0124】
一例として、図12の例を、本処理例の観点から説明すると、マッチング結果選択部16は、第1マッチング部12が得たマッチング結果103の確率(Beam probability)である0.98を、第2マッチング部15が得たマッチング結果102の確率(Beam probability)である0.99で除算することによって、比の値(ratio)
0.989
を算出する。ここで、上記閾値(threshold value)を0.9とする。
【0125】
マッチング結果選択部16は、上記比の値0.989と上記閾値を0.9とを比較する。そして、上記比の値は、上記閾値以上であるので、マッチング結果選択部16は、第1マッチング部12によるマッチング結果103を選択する。
【0126】
一方、図13の例では、マッチング結果選択部16は、第1マッチング部12が得たマッチング結果103の確率(Beam probability)である0.02を、第2マッチング部15が得たマッチング結果102の確率(Beam probability)である0.96で除算することによって、比の値
0.021
を算出する。ここで、上記閾値は、図12の例の場合と同じく、0.9とする。
【0127】
マッチング結果選択部16は、上記比の値0.021と上記閾値を0.9とを比較する。そして、上記比の値は、上記閾値未満であるので、マッチング結果選択部16は、第2マッチング部15によるマッチング結果102を選択する。
【0128】
なお、マッチング結果選択部16は、上記閾値を、第1マッチング部12によるマッチング結果及び前記第2マッチング部12によるマッチング結果の少なくとも何れかに応じた値に設定してもよい。一例として、上記閾値を、第1マッチング部12によるマッチング結果の確率情報が示す確率値、及び第2マッチング部15によるマッチング結果の確率情報が示す確率値の少なくとも何れかに応じた値に設定してもよい。
【0129】
(マッチング装置のハードウェア構成例)
図14は、マッチング装置1,1Aとして用いられるコンピュータの物理的構成を例示したブロック図である。情報処理装置1は、図14に示すように、バス210と、プロセッサ201と、主メモリ202と、補助メモリ203と、通信インタフェース204と、入出力インタフェース205とを備えたコンピュータによって構成可能である。プロセッサ201、主メモリ202、補助メモリ203、通信インタフェース204、及び入出力インタフェース205は、バス210を介して互いに接続されている。入出力インタフェース205には、入力装置206および出力装置207が接続されている。
【0130】
プロセッサ201としては、例えば、CPU(Central Processing Unit)、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、またはこれらの組み合わせ等が用いられる。
【0131】
主メモリ202としては、例えば、半導体RAM(random access memory)等が用いられる。
【0132】
補助メモリ203としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、またはこれらの組み合わせ等が用いられる。補助メモリ203には、上述したマッチング装置1,1Aの動作をプロセッサ201に実行させるためのプログラムが格納されている。プロセッサ201は、補助メモリ203に格納されたプログラムを主メモリ202上に展開し、展開したプログラムに含まれる各命令を実行する。
【0133】
通信インタフェース204は、ネットワークNに接続するインタフェースである。
【0134】
入出力インタフェース205としては、例えば、USBインタフェース、赤外線やBluetooth(登録商標)等の近距離通信インタフェース、またはこれらの組み合わせが用いられる。
【0135】
入力装置206としては、例えば、キーボード、マウス、タッチパッド、マイク、又はこれらの組み合わせ等が用いられる。出力装置207としては、例えば、ディスプレイ、プリンタ、スピーカ、又はこれらの組み合わせが用いられる。
【0136】
この例で、プロセッサ201は制御部10を実現するハードウェア要素の一例である。また、主メモリ202及び補助メモリ03は、記憶部20を実現するハードウェア要素の一例である。また、通信インタフェース204は、通信部30を実現するハードウェア要素の一例である。また、入出力インタフェース205、入力装置206及び出力装置207は、上述した入出力部40を実現するハードウェア要素の一例である。
【0137】
〔ソフトウェアによる実現例〕
情報処理装置1、1Aの機能は、当該装置としてコンピュータを機能させるためのプログラムであって、当該装置の各制御ブロック(特に制御部10に含まれる各部)としてコンピュータを機能させるためのプログラムにより実現することができる。
【0138】
この場合、上記装置は、上記プログラムを実行するためのハードウェアとして、少なくとも1つの制御装置(例えばプロセッサ)と少なくとも1つの記憶装置(例えばメモリ)を有するコンピュータを備えている。この制御装置と記憶装置により上記プログラムを実行することにより、上記各実施形態で説明した各機能が実現される。
【0139】
上記プログラムは、一時的ではなく、コンピュータ読み取り可能な、1または複数の記録媒体に記録されていてもよい。この記録媒体は、上記装置が備えていてもよいし、備えていなくてもよい。後者の場合、上記プログラムは、有線または無線の任意の伝送媒体を介して上記装置に供給されてもよい。
【0140】
また、上記各制御ブロックの機能の一部または全部は、論理回路により実現することも可能である。例えば、上記各制御ブロックとして機能する論理回路が形成された集積回路も本発明の範疇に含まれる。
【0141】
また、上記各制御ブロックの機能の一部または全部は、上記制御装置で動作するものであってもよいし、他の装置(例えばエッジコンピュータまたはクラウドサーバ(cloud server)等)で動作するものであってもよい。
【0142】
〔まとめ〕
上述した実施形態の一部又は全部は、以下のようにも記載され得る。ただし、本発明は、以下の記載する態様に限定されるものではない。
【0143】
(付記1)
マッチングの対象である対象情報を取得する取得部と、ある正規表現に対応する状態モデルを用いて、前記対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第1のマッチング部とを備えているマッチング装置。
【0144】
(付記2)
前記第1のマッチング部が実行する前記サーチは、前記対象情報に含まれるある部分情報に対するマッチング処理として、前記ある部分情報に対する1又は複数のマッチング候補と、各マッチング候補の確率情報とを取得する処理と、前記1又は複数のマッチング候補のうち、前記状態モデルに整合しないマッチング候補を除外する第1の選択処理と、前記確率情報を参照して、前記第1の選択処理後のマッチング候補から、前記所定の数以下のマッチング候補を選択する第2の選択処理と、を含んでいる付記1に記載のマッチング装置。
【0145】
(付記3)
前記状態モデルは、決定論的有限オートマトンである付記1又は2に記載のマッチング装置。
【0146】
(付記4)
コンテンツタイプ情報に基づいて、個々の正規表現に個別に対応する複数の状態モデルから、前記パターンマッチングに用いる状態モデルを選択する選択部を更に備えている付記1から3の何れか1項に記載のマッチング装置。
【0147】
(付記5)
前記状態モデルを生成する生成部を更に備えている付記1から4の何れか1項に記載のマッチング装置。
【0148】
(付記6)
前記対象情報は、1又は複数の画像を含んでいる付記1から5の何れか1項に記載のマッチング装置。
【0149】
(付記7)
前記第1のマッチング部によるマッチング結果を出力する出力部を備えている付記1から6の何れか1項に記載のマッチング装置。
【0150】
(付記8)
正規表現に対応する状態モデルを用いることなく、前記対象情報に含まれる複数の部分情報の各々を対象とするビームサーチであって、サーチ経路数を所定の数に制限したビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第2のマッチング部を更に備え、
前記第1のマッチング部によるマッチング結果及び前記第2のマッチング部によるマッチング結果の何れかを、前記第1のマッチング部によるマッチング結果の確率情報と前記第2のマッチング部によるマッチング結果の確率情報とに応じて出力する出力部
を備えている付記1から6の何れか1項に記載のマッチング装置。
【0151】
(付記9)
マッチングの対象である対象情報を取得する取得ステップと、ある正規表現に対応する状態モデルを用いて、前記対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行うマッチングステップとを含んでいるマッチング方法。
【0152】
(付記10)
付記1に記載のマッチング装置としてコンピュータを機能させるためのプログラムであって、上記取得部、および上記マッチング部としてコンピュータを機能させるためのプログラム。
【0153】
(付記11)
付記10に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【0154】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0155】
1,1A マッチング装置
10 制御部
11 取得部
12 マッチング部(第1マッチング部)
13 選択部(状態モデル選択部)
14 生成部
15 第2マッチング部
16 マッチング結果選択部
17 マッチング結果出力部
20 記憶部
30 通信部
40 入出力部
【要約】
【課題】逐次的なパターンマッチング技術において、精度の向上を図る。
【解決手段】マッチング装置(1)は、マッチングの対象である対象情報を取得する取得部(11)と、ある正規表現に対応する状態モデルを用いて、前記対象情報に含まれる複数の部分情報の各々を対象とするサーチであって、サーチ経路数を所定の数以下に制限したサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第1のマッチング部(12)と、正規表現に対応する状態モデルを用いることなく、前記対象情報に含まれる複数の部分情報の各々を対象とするビームサーチを実行することによって、前記対象情報に対するパターンマッチングを行う第2マッチング部(15)と、第1のマッチング部によるマッチング結果及び前記第2のマッチング部によるマッチング結果の何れかを出力する選択部(16)とを備えている。
【選択図】図11
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14