情報処理装置および文字列分類方法およびプログラムおよび記録媒体
【課題】名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、地名に酷似した氏名等が含まれている場合でも、名刺等の各部の文字列を正しい情報として取得すること。
【解決手段】情報処理装置100のCPUが、スキャナ200で読み取った名刺上の各文字列を意味属性で分類する際に、前記各文字列毎に、DB105〜107を参照して、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを複数のスコア付与方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する構成を特徴とする。
【解決手段】情報処理装置100のCPUが、スキャナ200で読み取った名刺上の各文字列を意味属性で分類する際に、前記各文字列毎に、DB105〜107を参照して、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを複数のスコア付与方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する構成を特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字認識および文字認識結果として得られる文字列の表す意味的情報区分を分類する情報処理装置および文字列分類方法およびプログラムおよび記録媒体に関する。
【背景技術】
【0002】
一定形式の画像、即ち、どの位置にどのような意味を持つ文字列が記述されているかをあらかじめ登録されているか、利用者に指定させることで、特定の位置には氏名が、また別の特定の位置には住所が記述されていることを認識するシステムが従来より存在している。
【0003】
また、特許文献1には、名刺の文字認識を行う際に、名刺の各行において、特定の分類を表す識別子となる単語(人名や「株式」などの特徴的な語)を含むことを利用して、名刺中の情報に特定の分類を与えていく文字認識装置が記載されている。
【特許文献1】特開平10−78997公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来のシステムにおいては、名刺の中に現れる文字列の位置情報を利用しているため、あらかじめ文字列出現位置パターンを登録する必要があった。そうでない場合には、文字列をブロックに分割し、どれが氏名か住所かを人間が介在して指定する処理をユーザに強いるものであり、非常に煩雑であった。
【0005】
また、例えば、横型の名刺の場合は、上部左側から真中にかけて会社名があり、また真中に大きく、氏名が印刷されている等のおおよその位置情報を予め登録してあるものもあった。
【0006】
しかしこの場合、新しいパターンの名刺が出現した場合には、新たな文字列出現位置パターンを登録しなけなければ名刺認識をすることが出来ないと言う問題点があった。
【0007】
また、上記特許文献1に記載された文字認識装置では、文字列毎にその意味属性を判断しているため、例えば、「秋田県(あきたあがた)」や「吉野村政」のような、地名に酷似した氏名の場合、該氏名を地名と誤認識してしまう可能性が高かった。
【0008】
従って、上記特許文献1の文字認識技術を利用したとしても、どの文字列が住所であり、別のどの文字列が氏名であるといった分類を、正確に行うためには、結局、ユーザのチェックが不可欠であり、非常に煩雑であるといった問題点があった。
【0009】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する際に、前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを複数のスコア付与方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する(即ち、文字列群全体を考慮して各文字列の意味属性を分類する)ことにより、名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、名刺等の各部の文字列を正しい情報として取得することができる情報処理装置および文字列分類方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【0010】
本発明は、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する情報処理装置において、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを付与する1又は複数のスコア付与手段と、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記各スコア付与手段によりそれぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する分類手段とを有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する際に、前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを複数のスコア付与方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類するので、名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、名刺等の各部の文字列を正しい情報として取得することができる等の効果を奏する。
【0012】
従って、文字列を名刺等の原稿内における位置によってではなく、文字列群全体を考慮して、文字列の意味属性を特定するので、例えば、「秋田県(あきたあがた)」や「吉野村政」のような、地名に酷似した氏名でも、地名と誤認識することなく、氏名として分類可能である。
【0013】
結果として、例えば名刺データベースなどの後続のアプリケーションに渡すときに、ある文字列が氏名なのか住所なのか、などを人手によりチェックし指定あるいは修正する必要を省力化することが出来る。
【発明を実施するための最良の形態】
【0014】
〔第1実施形態〕
以下、図面を参照して、本発明の詳細を説明する。
【0015】
図1は、本発明の第1実施形態を示す情報処理装置を適用可能なシステムの一例を示すシステム構成図である。
【0016】
図1において、100は文字列認識装置としての情報処理装置である。この情報処理装置100は、画像入力装置200(例えばスキャナやデジタルカメラ)から入力されるイメージデータ上の文字列をOCR認識する。そして、情報処理装置100は、OCR認識結果から辞書DB106に格納された辞書データに基づいて文字列情報を決定する。また、情報処理装置100は、辞書により決定された文字列情報からルールDB105に格納されたルールにより文字列情報を決定する。さらに、情報処理装置100は、ルールにより決定された文字列情報から確率情報DB107に格納された出現確率データに基づいてHMM(Hidden Markov Model;隠れマルコフモデル)等の確立計算を利用して文字列情報を決定する。
【0017】
図2は、図1に示した情報処理装置のハードウェア構成の一例を示すブロック図である。
【0018】
図2において、101はCPUで、ROM103又はハードディスク(HD)(その他の記憶装置、例えば、フレキシブルディスク,CD−ROM,DVD−ROM等どのような記憶装置であってもよい)104に格納された本発明に係るプログラムをRAM102上にロードして実行することにより、本発明の文字列認識方法を実現するとともに、コンピュータ全体を制御する。RAM102は、CPU101の作業領域として使用される。
【0019】
109は通信インタフェースで、ネットワーク又はその他の通信媒体を介して画像入力装置(例えばスキャナやデジタルカメラ)200とのデータの送受信を可能とする。
【0020】
110は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。111は表示装置で、CRT,LCD,SED等のモニタに対応する。
【0021】
なお、図1に示したルールDB105,辞書DB106,確率情報DB107は、情報処理装置100のHD104内に構築されている。また、情報処理装置100が有する各機能(OCR機能,各文字列決定機能)は、情報処理装置100のCPU101が、HD104に格納されるプログラムをRAM102上にロードして実行することにより、実体化される。
【0022】
また、本発明の情報処理装置は、コンピュータにより構成されるものであってもよいし、スキャナ,複合機等により構成されるものであってもよい。
【0023】
以下、図3〜図15を参照して、本発明の情報処理装置における文字列認識方法について説明する。
【0024】
図3は、本発明の情報処理装置における第1の制御処理手順の一例を示すフローチャートであり、文字列認識処理に対応する。なお、このフローチャートの処理は、情報処理装置100のCPU101がHD104に格納されたプログラムをRAM102にロードして実行することにより実現される。また、図中、S001〜S008は各ステップを示す。
【0025】
また、以下、名刺上の文字列を認識する場合を例として説明する。
【0026】
まず、スキャナやデジタルカメラ等の画像入力装置200にて読み取られた原稿(ここでは名刺)の画像データ(OCR対象画像)301が入力される、又は、HD104内に記憶された画像データの文字列認識処理が指示されると、CPU101は、本フローチャートの処理を開始する。
【0027】
ステップS001において、CPU101は、メモリ(HD又はRAM等)から文字列認識対象の画像データ301を読み込み、該読み込んだ画像データ301のOCR処理を行い、文字列及びその位置情報を抽出する(抽出文字列群302)。例えば、名刺が横型であれば同一行、縦型であれば同一列にある文字列は、1つの文字列として扱うように文字列を抽出する。ただし、一定以上の距離がある場合には、別の文字列として扱うように文字列を分ける。
【0028】
例えば、図4に示すような名刺500のOCR処理を行った場合、「課長」と「山形県」(やまがたあがた(人名))は別の文字列として扱うように文字列を抽出する。ただし、文字列に分けられた「課長」と「山形県」が同一行にあったことは後述のルール適用の際に使用するためにメモリ上に記憶しておく。図4に示す例では、名刺500から7つの文字列501〜507が抽出される。
【0029】
図4は、本発明の情報処理装置における文字列認識対象画像および該文字列認識対象画像から抽出された文字列の一例を示す模式図であり、特に名刺から文字列を抽出した場合に対応する。
【0030】
そして、CPU101は、OCR処理により取得した文字列を抽出文字列分302としてメモリ(HD又はRAM等)に格納する。
【0031】
図4に示した例では、「ヤマモト電気株式会社」501,「○○事業本部」502,「△△研究開発部第一開発課」503,「課長」504,「山形 県(ただし「課長」と同じ行にあることを記憶)」505,「〒111-0011 東京都○○区三好1−2−3」506,「TEL 03-1234-5678」507が格納される。
【0032】
次に、CPU101は、ステップS001で抽出した全文字列に対して、以下ステップS002〜S006の処理を行って、各文字列に対し、その意味属性を決定する。
【0033】
意味属性とは「氏名」,「住所」,「電話番号」,「役職」等の情報の分類(ここでは、名刺に記述されている情報の分類)を示すものであり、ステップS001で抽出されたそれぞれの文字列が、これらの意味属性のいずれに所属するものかを判定する。この判定処理を、ステップS001で得られた全ての文字列に対して実行する。以下、ステップS002〜S006にて詳細に説明する。
【0034】
ステップS002において、CPU101は、ステップS001で抽出した文字列の1つを読み込み(着目し)、該着目中の文字列をキーワードとして、図5に示す辞書DB106を検索し、該検索結果に基づいて着目中の文字列に対してスコアを付与してメモリに保持する。
【0035】
図5は、本発明の情報処理装置における辞書DBの一例を示す図である。
【0036】
図5に示すように、辞書DB106は、文字列401,読み402,分類403,スコア(尤もらしさ)404の項目で構成される。
【0037】
この辞書DB106を、例えば「山形県」をキーとして検索すると、分類403として「住所(の一部)」あるいは「人名」であることが分かる。また、スコア404として住所の場合「80」、人名の場合「20」であることが分かる。このため、この処理だけでは「山形県」は住所としての可能性が高いとみなされる。なお、この段階は、最終決定ではなく、「山形県」が住所である可能性と人名である可能性をスコアと共にメモリに保持しておく。
【0038】
以下、図3のフローチャートの説明に戻る。
【0039】
次に、ステップS004において、CPU101は、着目中の文字列に対してルールDB103の全ルールを適用してスコアを付与しメモリに保持する。
【0040】
図6は、本発明の情報処理装置におけるルールDBの一例を示す図である。
【0041】
図6に示すように、ルールDB105は、ルール番号601,パターン部602,スコア付与部603,分類604,スコア605の項目で構成される。
【0042】
なお、図6中の「○」は文字又は文字列を表し、例えばルール2のパターン部602の「○○○3f○株式会社」の「株式会社」の前の「○○○○3f」は、図4に示した「ヤマモト電気株式会社」の「ヤマモト電気」に該当する。また、図6に示すルールのパターン部は、正規表現を用いて記述することを想定しているが、他のルール駆動型エンジン技術に従った記述形式であってもよい。
【0043】
また、ルール2のスコア付与部603にあるように「文字列全体」、即ち「ヤマモト電気株式会社」全体で、ルール2の分類604にあるように「会社名」を指し、「会社名」としてスコア605にあるようにスコア「100」を付与する。
【0044】
「山形県」は「課長」の後ろにあるためルール1のパターン部,スコア付与部から、分類「氏名」としてスコア「100」が付与される。
【0045】
なお、「課長」が役職名であることは、図5に示した辞書検索結果により属性として付与されていることで判断可能である。しかし「山形県」が辞書に人名として登録されている事実を利用しないため、この例のルールは、辞書に登録されていない未知の人名に対しても有用である。
【0046】
同様に「東京都○○区三好1−2−3」の場合はルール9に該当するため、「住所」としてスコア「100」が付与される。
【0047】
また、「ヤマモト電気株式会社」の場合は上述したように、ルール2に該当するため「会社名」としてスコア「100」が付与される。
【0048】
さらに、「TEL 03−1234−5678」の場合はルール4に該当するため、「電話番号」としてスコア「100」が付与される。
【0049】
次に、ステップS005において、CPU101は、着目中の文字列に対して確率モデルを利用したスコア付与を行いメモリに保持する。
【0050】
公知の技術として特開2004−46775号公報に記載される確率モデル(HMM;隠れマルコフモデル)などを利用し、その文字列が出現する確率を取得することが可能である。
【0051】
例えば、名刺に記載される文字列の「意味属性」を内部状態と考え、名刺に記載される「文字列」を外部から観測できる記号と考えると、名刺に記載される文字列群の生成過程は隠れマルコフモデルで近似できる。
【0052】
この隠れマルコフモデルで名刺の書式(各意味属性に対応する文字列の出現パターン)を表現すると、ある意味属性から他の意味属性に遷移する確率(例えば、「役職」の後に「氏名」が記載される確率,「住所」の後に「電話番号」が記載される確率等)や、各意味属性別の文字列の出現確率(例えば、「氏名」における「山形県」の出現確率,「地名」における「山形県」の出現確率等)等で表現される。
【0053】
このように、隠れマルコフモデルを用いることにより、名刺の記載における「文字列」の接続の自然性を上記状態遷移の確率の大小で表現可能である。
【0054】
本実施形態では、このような確率モデルを用いて、着目中の文字列が出現する確率を求め、その確率の最大値が(例えば、スコアが「100」点満点なら)スコア「100」になるような係数を求め、着目中の文字列の出現確率を「100」点満点のスコアに正規化する。
【0055】
なお、本発明に適用可能な確率モデルは、隠れマルコフモデルに限られるものではなく、各意味属性に対応する文字列の出現パターンを確率的に予測するモデルであればどのような確率モデルであってもよい。
【0056】
また、この確率モデルによるスコア付与の処理は、オプションとして実行しないように構成してもよい。
【0057】
次に、ステップS006において、着目中の文字列に対して、ステップS003〜S005で付与されたスコアを合計するスコア計算処理を行う。以下、図7を参照して説明する。
【0058】
図7は、本発明の情報処理装置におけるスコア計算処理を説明するための図である。
【0059】
例えば、着目中の文字列を「山形県」とすると、「山形県」に対しては、辞書DB106により、「住所」としてスコア「80」、「氏名」としてはスコア「20」が付与されている。また、「山形県」に対しては、ルールDB105により「氏名」としてスコア「100」が付与されている。なお、ここでは、説明を簡単にするために、確率モデルを利用したスコアは付与されていないものとする。
【0060】
この場合、スコア計算による合計は、「住所」としてスコア「80」、「氏名」としてはスコア「120(=20+100)」となる。
【0061】
なお、本発明の情報処理装置では、この時点だけで、「山形県」が人名であると決定するものではなく、このスコア計算結果に後述するステップS008に示す最適割り当て処理を適用して、最終的な文字列認識結果を決定する。
【0062】
以下、図3のフローチャートの説明に戻る。
【0063】
ステップS007において、CPU101は、抽出文字列群302の全文字列に対してステップS002〜006の処理を終了したか否かを判定し、まだ終了していないと判断した場合には、ステップS002に処理を戻し、次の文字列の処理を行う。
【0064】
一方、ステップS007で、CPU101が、抽出文字列群302の全文字列に対してステップS002〜006の処理を終了したと判断した場合には、ステップS008に処理を進める。
【0065】
以下、図8に、抽出文字列群302の全文字列に対する辞書ベースのスコア付与結果を示す。また、この結果にさらに、ルールベースのスコアを付与し、抽出文字列群302の全文字列に対するスコア計算を行った結果を図9に示す。
【0066】
図8,図9に示すように、「ヤマモト電気株式会社」に対してのスコア計算結果は、「氏名」としてスコア「20(辞書ベース)」(図9の901)、「会社名」としてスコア「100(辞書ベース)+100(ルールベース)」(図9の903)となる。
【0067】
また、「課長」に対しては、「役職名」としてスコア「100(辞書ベース)」となる。
【0068】
さらに、「山形県」に対しては、「氏名」としてスコア「20(辞書ベース)+100(ルールベース)」(図9の902)、「住所」としてスコア「80(辞書ベース)」(図9の904)となる。
【0069】
また、「〒111-0011 東京都○○区三好1−2−3」に対しては、「住所」としてスコア「80(辞書ベース)+100(ルールベース)」(図9の905)となる。
【0070】
さらに、「TEL 03-1234-5678」に対しては、「電話番号」としてスコア「100(ルールベース)」(図9の906)となる。
【0071】
このように、この例では、「ヤマモト電気株式会社」,「山形県」は、文字列は、複数の意味属性を持つ可能性があることが示されているが、このような場合、以下図10に示す最適割り当て処理により、いずれかの属性に決定する。
【0072】
図10は、本発明の情報処理装置における第2の制御処理手順の一例を示すフローチャートであり、図3のステップS008に示した最適割り当て処理に対応する。なお、このフローチャートの処理は、情報処理装置100のCPU101がHD104に格納されたプログラムをRAM102にロードして実行することにより実現される。また、図中、S1101〜S1110は各ステップを示す。
【0073】
まず、ステップS1101において、CPU101は、抽出文字列群302内で1つの文字列に2つ以上の意味属性があるもの(図9に示したスコア計算結果においてスコア「0」でない分類が複数ある文字列)が存在するか否かを判断し、存在しないと判断した場合には、ステップS1110において、抽出文字列群302内の各文字列に該当する意味属性(スコア「0」でない分類)を関連付けて、該関連つけた「文字列」と「意味属性」のペアを、出力情報として、本フローチャートの処理を終了する。
【0074】
一方、ステップS1101で、CPU101が、抽出文字列群302内で1つの文字列に2つ以上の意味属性があるもの(スコア「0」でない分類が複数ある文字列)が存在すると判断した場合には、ステップS1102において、CPU101は、文字列群の組み合わせのパターンによるスコア合計を計算する。即ち、図11に示すような総スコアになるパターンを抽出し、各パターンの総スコアを計算する。
【0075】
図11は、本発明の情報処理装置におけるパターン毎の総スコアを計算の一例を示す図である。
【0076】
図11に示すように、図9に示したスコア計算結果より、A,B,C,Dの4パターンが抽出される。なお、電話番号,役職等のように、唯一の意味属性しか持たない文字列が既に関連つけられている意味属性は省略してある。
【0077】
また、パターン抽出の際の文字列の配置は、一つの文字列が、同じパターン内で、複数の意味属性に割り当てられることがないように配置する。
【0078】
そして、各パターン毎に、総スコアを計算する。
【0079】
この結果、図11に示した例では、CPU101は、ステップS1103において、最も高スコアになるCパターンが最も妥当であると判断し、意味属性と文字列の関係にCパターンを選択する。
【0080】
そして、ステップS1104において、CPU101は、ステップS1103で選択したパターンの文字列と意味属性を関連付けて、該関連つけた「文字列」と「意味属性」のペアを、出力情報として、本フローチャートの処理を終了する。
【0081】
よって、最終的に、「ヤマモト電気株式会社」は「会社名」、「課長」は「役職」、「山形県」は「氏名」、「〒111-0011 東京都○○区三好1−2−3」は「住所」、「TEL 03-1234-5678」は「電話番号」とそれぞれ文字認識されることとなる。
【0082】
このように、図4に示した名刺は正しく文字認識される。
【0083】
なお、図4に示した名刺の例では、「山形県」の前「課長」という役職が記載されていたため、ルールDB105によるスコア付与の際に、「氏名」属性のスコアが高くなり、「山形県」が「氏名」属性と認識されることに大なる影響をあたえた。
【0084】
よって、以下に示す図12〜図14を参照して、「山形県」の前「課長」という役職が記載されていない場合について考察してみる。
【0085】
図12に、抽出文字列群302の全文字列に対する辞書ベースのスコア付与結果の他の例を示す。また、この結果にさらに、ルールベースのスコアを付与し、抽出文字列群302の全文字列に対するスコア計算を行った結果の他の例を図13に示す。
【0086】
図12,図13に示すように、「ヤマモト電気株式会社」に対してのスコア計算結果は、「氏名」としてスコア「20(辞書ベース)」、「会社名」としてスコア「100(辞書ベース)+100(ルールベース)」となる。
【0087】
また、「課長」に対してのスコア計算結果は、「役職名」としてスコア「100(辞書ベース)」となる。
【0088】
さらに、「山形県」に対してのスコア計算結果は、「氏名」としてスコア「20(辞書ベース)」、「住所」としてスコア「80(辞書ベース)」となる(役職名がないためルールDB105は適用されない)。
【0089】
また、「〒111-0011 東京都○○区三好1−2−3」に対してのスコア計算結果は、「住所」としてスコア「80(辞書ベース)+100(ルールベース)」となる。
【0090】
さらに、「TEL 03-1234-5678」に対しては、「電話番号」としてスコア「100(ルールベース)」となる。
【0091】
以下、図14に総スコアパターンを示す。
【0092】
図14は、本発明の情報処理装置におけるパターン毎の総スコアを計算の他の例を示す図である。
【0093】
図14に示すように、図13に示したスコア計算結果より、A,B,C,Dの4パターンが抽出される。
【0094】
そして、各パターン毎の総スコアを計算の結果、図14に示した例でも、Cパターンが最高スコアになる。
【0095】
よって、「山形県」の前「課長」という役職が記載されていない場合であっても、「ヤマモト電気株式会社」は「会社名」、「課長」は「役職」、「山形県」は「氏名」、「〒111-0011 東京都○○区三好1−2−3」は「住所」、「TEL 03-1234-5678」は「電話番号」とそれぞれ正しく文字認識されるととになる。
【0096】
以上示したように、画像データ上の文字列が表す意味を特定するための辞書、ルールまたは確率的処理を利用し、また、個々の文字列の意味属性を特定することではなく、複数の(名刺全体の)文字列の意味属性を考慮して、画像データ上の各部分がいずれの意味属性に対応する情報を記述したものか(いずれの意味的情報区分に属するものか)を自動的に(人手を介さず)判断することができる。
【0097】
従って、例えば名刺データベースなどの後続のアプリケーションに渡すときに、ある文字列が氏名なのか住所なのか、などを人手によりチェックし指定あるいは修正する必要を省力化することができる優れた文字列認識環境を構築することができる。
【0098】
なお、ルールによるスコア付与,HMM等の確率的処理によるスコア付与は、オプションであり、これらの一方又は両方を使用しないシステムも構築可能である。
【0099】
例えば、ルールを使用しない場合には、図3のステップS004をスキップし、また、確率的処理を使用しない場合には、図3のステップS005をスキップするように、CPU101が制御する。
【0100】
なお、上述した例を用いて、辞書ベースのスコアの付与のみを行った場合(ルール及び確立的処理を適用しなかった場合)を以下に考察する。
【0101】
図12に示した辞書ベースのスコア付与例から、この場合も、上述した例と同一のパターンA,B,C,Dが抽出される。
【0102】
ただし、パターンAの総スコアは「100=20+80」、パターンBの総スコアは「100=20+80」、パターンCの総スコアは「200=20+100+80」、パターンDの総スコアは「180=100+80」となる。
【0103】
よって、辞書ベースのスコアの付与のみを行った場合(ルール及び確立的処理を適用しなかった場合)も、やはりパターンCが最高スコアと判断され、正しく認識される。
【0104】
〔第2実施形態〕
上記第1実施形態では、文字列認識対象となる画像データからOCR認識を行い、該OCR認識した文字列の各意味属性を決定する構成について説明したが、図3のステップS002〜008の処理の実行は、画像データのOCR結果に限られるものではなく、複数の文字列データであれば、どのような文字列データであってもよい。
【0105】
例えば、図12に示すようなCSVファイルに適用してもよい。
【0106】
図15は、本発明の情報処理装置において認識対象となる文字列を含むCSVファイルの一例を示す図である。
【0107】
図15に示すように、このCSVファイルは、1行目では、1201に示すように1列目に住所、1202に示すように2列目に氏名(ここで1202は「秋田 県(あがた)」という氏名)、3列目に会社名、4列目に電話番号が入っている。
【0108】
また、2行目では、1203に示すように3列目に電話番号が入っている。
【0109】
さらに、3行目では、1205に示すように1列目に氏名(「○○田×子」という指名)、1204に示すように2列目に住所が入っている。
【0110】
このように、行毎に列項目が異なっていても、また、住所に似た氏名が入っていても、図3に示したステップS002〜S008の処理を、各行毎に行うことで、上述した第1実施形態で示した名刺の例と同様に、各行の各列のデータを意味属性(意味的情報区分)で分類することが可能である。
【0111】
なお、上述した各実施形態内で示した変形例のいずれか又は全てを組み合わせた構成も全て本発明に含まれるものである。
【0112】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0113】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0114】
以上より、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する際に、前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを1又は複数の方法によりそれぞれ複数の方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する(即ち、文字列群全体を考慮して各文字列の意味属性を分類する)ことにより、名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、名刺等の各部の文字列を正しい情報として取得することができる。
【0115】
従って、文字列を名刺等の原稿内における位置によってではなく、文字列群全体を考慮して、文字列の意味属性を特定するので、例えば、「秋田県(あきたあがた)」や「吉野村政」のような、地名に酷似した氏名でも、地名と誤認識することなく、氏名として分類可能である。
【0116】
結果として、例えば名刺データベースなどの後続のアプリケーションに渡すときに、ある文字列が氏名なのか住所なのか、などを人手によりチェックし指定あるいは修正する必要を省力化することができる。
【0117】
以下、図16に示すメモリマップを参照して本発明に係る文字認識装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0118】
図16は、本発明に係る文字認識装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0119】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0120】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0121】
本実施形態における図3,図10に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0122】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0123】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0124】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0125】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0126】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0127】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0128】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【0129】
【図1】本発明の一実施形態を示す情報処理装置を適用可能なシステムの一例を示すシステム構成図である。
【図2】図1に示した情報処理装置のハードウェア構成の一例を示すブロック図である。
【図3】本発明の情報処理装置における第1の制御処理手順の一例を示すフローチャートである。
【図4】本発明の情報処理装置における文字列認識対象画像および該文字列認識対象画像から抽出された文字列の一例を示す模式図である。
【図5】本発明の情報処理装置における辞書DBの構成の一例を示す図である。
【図6】本発明の情報処理装置におけるルールDBの構成の一例を示す図である。
【図7】図3に示す文字列に対するスコア計算処理を説明する図である。
【図8】抽出文字列群の全文字列に対する辞書ベースのスコア付与結果を示す図である。
【図9】抽出文字列群の全文字列に対するスコア計算結果を示す図である。
【図10】本発明の情報処理装置における第2の制御処理手順の一例を示すフローチャートである。
【図11】本発明の情報処理装置におけるパターン毎の総スコアの計算の一例を示す図である。
【図12】抽出文字列群の全文字列に対する辞書ベースのスコア付与結果の他の例を示す図である。
【図13】抽出文字列群の全文字列に対するスコア計算結果の他の例を示す図である。
【図14】本発明の情報処理装置におけるパターン毎の総スコアの計算結果の他の例を示す図である。
【図15】本発明の情報処理装置において認識対象となる文字列を含むCSVファイルの一例を示す図である。
【図16】本発明に係る文字認識装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0130】
200 画像入力装置(スキャナ)
100 情報処理装置(文字列認識装置)
101 CPU
102 RAM
103 ROM
104 HD
105 辞書DB
106 ルールDB
107 確率情報DB
109 通信インタフェース
110 入力装置
111 表示装置
【技術分野】
【0001】
本発明は、文字認識および文字認識結果として得られる文字列の表す意味的情報区分を分類する情報処理装置および文字列分類方法およびプログラムおよび記録媒体に関する。
【背景技術】
【0002】
一定形式の画像、即ち、どの位置にどのような意味を持つ文字列が記述されているかをあらかじめ登録されているか、利用者に指定させることで、特定の位置には氏名が、また別の特定の位置には住所が記述されていることを認識するシステムが従来より存在している。
【0003】
また、特許文献1には、名刺の文字認識を行う際に、名刺の各行において、特定の分類を表す識別子となる単語(人名や「株式」などの特徴的な語)を含むことを利用して、名刺中の情報に特定の分類を与えていく文字認識装置が記載されている。
【特許文献1】特開平10−78997公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来のシステムにおいては、名刺の中に現れる文字列の位置情報を利用しているため、あらかじめ文字列出現位置パターンを登録する必要があった。そうでない場合には、文字列をブロックに分割し、どれが氏名か住所かを人間が介在して指定する処理をユーザに強いるものであり、非常に煩雑であった。
【0005】
また、例えば、横型の名刺の場合は、上部左側から真中にかけて会社名があり、また真中に大きく、氏名が印刷されている等のおおよその位置情報を予め登録してあるものもあった。
【0006】
しかしこの場合、新しいパターンの名刺が出現した場合には、新たな文字列出現位置パターンを登録しなけなければ名刺認識をすることが出来ないと言う問題点があった。
【0007】
また、上記特許文献1に記載された文字認識装置では、文字列毎にその意味属性を判断しているため、例えば、「秋田県(あきたあがた)」や「吉野村政」のような、地名に酷似した氏名の場合、該氏名を地名と誤認識してしまう可能性が高かった。
【0008】
従って、上記特許文献1の文字認識技術を利用したとしても、どの文字列が住所であり、別のどの文字列が氏名であるといった分類を、正確に行うためには、結局、ユーザのチェックが不可欠であり、非常に煩雑であるといった問題点があった。
【0009】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する際に、前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを複数のスコア付与方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する(即ち、文字列群全体を考慮して各文字列の意味属性を分類する)ことにより、名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、名刺等の各部の文字列を正しい情報として取得することができる情報処理装置および文字列分類方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【0010】
本発明は、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する情報処理装置において、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを付与する1又は複数のスコア付与手段と、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記各スコア付与手段によりそれぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する分類手段とを有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する際に、前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを複数のスコア付与方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類するので、名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、名刺等の各部の文字列を正しい情報として取得することができる等の効果を奏する。
【0012】
従って、文字列を名刺等の原稿内における位置によってではなく、文字列群全体を考慮して、文字列の意味属性を特定するので、例えば、「秋田県(あきたあがた)」や「吉野村政」のような、地名に酷似した氏名でも、地名と誤認識することなく、氏名として分類可能である。
【0013】
結果として、例えば名刺データベースなどの後続のアプリケーションに渡すときに、ある文字列が氏名なのか住所なのか、などを人手によりチェックし指定あるいは修正する必要を省力化することが出来る。
【発明を実施するための最良の形態】
【0014】
〔第1実施形態〕
以下、図面を参照して、本発明の詳細を説明する。
【0015】
図1は、本発明の第1実施形態を示す情報処理装置を適用可能なシステムの一例を示すシステム構成図である。
【0016】
図1において、100は文字列認識装置としての情報処理装置である。この情報処理装置100は、画像入力装置200(例えばスキャナやデジタルカメラ)から入力されるイメージデータ上の文字列をOCR認識する。そして、情報処理装置100は、OCR認識結果から辞書DB106に格納された辞書データに基づいて文字列情報を決定する。また、情報処理装置100は、辞書により決定された文字列情報からルールDB105に格納されたルールにより文字列情報を決定する。さらに、情報処理装置100は、ルールにより決定された文字列情報から確率情報DB107に格納された出現確率データに基づいてHMM(Hidden Markov Model;隠れマルコフモデル)等の確立計算を利用して文字列情報を決定する。
【0017】
図2は、図1に示した情報処理装置のハードウェア構成の一例を示すブロック図である。
【0018】
図2において、101はCPUで、ROM103又はハードディスク(HD)(その他の記憶装置、例えば、フレキシブルディスク,CD−ROM,DVD−ROM等どのような記憶装置であってもよい)104に格納された本発明に係るプログラムをRAM102上にロードして実行することにより、本発明の文字列認識方法を実現するとともに、コンピュータ全体を制御する。RAM102は、CPU101の作業領域として使用される。
【0019】
109は通信インタフェースで、ネットワーク又はその他の通信媒体を介して画像入力装置(例えばスキャナやデジタルカメラ)200とのデータの送受信を可能とする。
【0020】
110は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。111は表示装置で、CRT,LCD,SED等のモニタに対応する。
【0021】
なお、図1に示したルールDB105,辞書DB106,確率情報DB107は、情報処理装置100のHD104内に構築されている。また、情報処理装置100が有する各機能(OCR機能,各文字列決定機能)は、情報処理装置100のCPU101が、HD104に格納されるプログラムをRAM102上にロードして実行することにより、実体化される。
【0022】
また、本発明の情報処理装置は、コンピュータにより構成されるものであってもよいし、スキャナ,複合機等により構成されるものであってもよい。
【0023】
以下、図3〜図15を参照して、本発明の情報処理装置における文字列認識方法について説明する。
【0024】
図3は、本発明の情報処理装置における第1の制御処理手順の一例を示すフローチャートであり、文字列認識処理に対応する。なお、このフローチャートの処理は、情報処理装置100のCPU101がHD104に格納されたプログラムをRAM102にロードして実行することにより実現される。また、図中、S001〜S008は各ステップを示す。
【0025】
また、以下、名刺上の文字列を認識する場合を例として説明する。
【0026】
まず、スキャナやデジタルカメラ等の画像入力装置200にて読み取られた原稿(ここでは名刺)の画像データ(OCR対象画像)301が入力される、又は、HD104内に記憶された画像データの文字列認識処理が指示されると、CPU101は、本フローチャートの処理を開始する。
【0027】
ステップS001において、CPU101は、メモリ(HD又はRAM等)から文字列認識対象の画像データ301を読み込み、該読み込んだ画像データ301のOCR処理を行い、文字列及びその位置情報を抽出する(抽出文字列群302)。例えば、名刺が横型であれば同一行、縦型であれば同一列にある文字列は、1つの文字列として扱うように文字列を抽出する。ただし、一定以上の距離がある場合には、別の文字列として扱うように文字列を分ける。
【0028】
例えば、図4に示すような名刺500のOCR処理を行った場合、「課長」と「山形県」(やまがたあがた(人名))は別の文字列として扱うように文字列を抽出する。ただし、文字列に分けられた「課長」と「山形県」が同一行にあったことは後述のルール適用の際に使用するためにメモリ上に記憶しておく。図4に示す例では、名刺500から7つの文字列501〜507が抽出される。
【0029】
図4は、本発明の情報処理装置における文字列認識対象画像および該文字列認識対象画像から抽出された文字列の一例を示す模式図であり、特に名刺から文字列を抽出した場合に対応する。
【0030】
そして、CPU101は、OCR処理により取得した文字列を抽出文字列分302としてメモリ(HD又はRAM等)に格納する。
【0031】
図4に示した例では、「ヤマモト電気株式会社」501,「○○事業本部」502,「△△研究開発部第一開発課」503,「課長」504,「山形 県(ただし「課長」と同じ行にあることを記憶)」505,「〒111-0011 東京都○○区三好1−2−3」506,「TEL 03-1234-5678」507が格納される。
【0032】
次に、CPU101は、ステップS001で抽出した全文字列に対して、以下ステップS002〜S006の処理を行って、各文字列に対し、その意味属性を決定する。
【0033】
意味属性とは「氏名」,「住所」,「電話番号」,「役職」等の情報の分類(ここでは、名刺に記述されている情報の分類)を示すものであり、ステップS001で抽出されたそれぞれの文字列が、これらの意味属性のいずれに所属するものかを判定する。この判定処理を、ステップS001で得られた全ての文字列に対して実行する。以下、ステップS002〜S006にて詳細に説明する。
【0034】
ステップS002において、CPU101は、ステップS001で抽出した文字列の1つを読み込み(着目し)、該着目中の文字列をキーワードとして、図5に示す辞書DB106を検索し、該検索結果に基づいて着目中の文字列に対してスコアを付与してメモリに保持する。
【0035】
図5は、本発明の情報処理装置における辞書DBの一例を示す図である。
【0036】
図5に示すように、辞書DB106は、文字列401,読み402,分類403,スコア(尤もらしさ)404の項目で構成される。
【0037】
この辞書DB106を、例えば「山形県」をキーとして検索すると、分類403として「住所(の一部)」あるいは「人名」であることが分かる。また、スコア404として住所の場合「80」、人名の場合「20」であることが分かる。このため、この処理だけでは「山形県」は住所としての可能性が高いとみなされる。なお、この段階は、最終決定ではなく、「山形県」が住所である可能性と人名である可能性をスコアと共にメモリに保持しておく。
【0038】
以下、図3のフローチャートの説明に戻る。
【0039】
次に、ステップS004において、CPU101は、着目中の文字列に対してルールDB103の全ルールを適用してスコアを付与しメモリに保持する。
【0040】
図6は、本発明の情報処理装置におけるルールDBの一例を示す図である。
【0041】
図6に示すように、ルールDB105は、ルール番号601,パターン部602,スコア付与部603,分類604,スコア605の項目で構成される。
【0042】
なお、図6中の「○」は文字又は文字列を表し、例えばルール2のパターン部602の「○○○3f○株式会社」の「株式会社」の前の「○○○○3f」は、図4に示した「ヤマモト電気株式会社」の「ヤマモト電気」に該当する。また、図6に示すルールのパターン部は、正規表現を用いて記述することを想定しているが、他のルール駆動型エンジン技術に従った記述形式であってもよい。
【0043】
また、ルール2のスコア付与部603にあるように「文字列全体」、即ち「ヤマモト電気株式会社」全体で、ルール2の分類604にあるように「会社名」を指し、「会社名」としてスコア605にあるようにスコア「100」を付与する。
【0044】
「山形県」は「課長」の後ろにあるためルール1のパターン部,スコア付与部から、分類「氏名」としてスコア「100」が付与される。
【0045】
なお、「課長」が役職名であることは、図5に示した辞書検索結果により属性として付与されていることで判断可能である。しかし「山形県」が辞書に人名として登録されている事実を利用しないため、この例のルールは、辞書に登録されていない未知の人名に対しても有用である。
【0046】
同様に「東京都○○区三好1−2−3」の場合はルール9に該当するため、「住所」としてスコア「100」が付与される。
【0047】
また、「ヤマモト電気株式会社」の場合は上述したように、ルール2に該当するため「会社名」としてスコア「100」が付与される。
【0048】
さらに、「TEL 03−1234−5678」の場合はルール4に該当するため、「電話番号」としてスコア「100」が付与される。
【0049】
次に、ステップS005において、CPU101は、着目中の文字列に対して確率モデルを利用したスコア付与を行いメモリに保持する。
【0050】
公知の技術として特開2004−46775号公報に記載される確率モデル(HMM;隠れマルコフモデル)などを利用し、その文字列が出現する確率を取得することが可能である。
【0051】
例えば、名刺に記載される文字列の「意味属性」を内部状態と考え、名刺に記載される「文字列」を外部から観測できる記号と考えると、名刺に記載される文字列群の生成過程は隠れマルコフモデルで近似できる。
【0052】
この隠れマルコフモデルで名刺の書式(各意味属性に対応する文字列の出現パターン)を表現すると、ある意味属性から他の意味属性に遷移する確率(例えば、「役職」の後に「氏名」が記載される確率,「住所」の後に「電話番号」が記載される確率等)や、各意味属性別の文字列の出現確率(例えば、「氏名」における「山形県」の出現確率,「地名」における「山形県」の出現確率等)等で表現される。
【0053】
このように、隠れマルコフモデルを用いることにより、名刺の記載における「文字列」の接続の自然性を上記状態遷移の確率の大小で表現可能である。
【0054】
本実施形態では、このような確率モデルを用いて、着目中の文字列が出現する確率を求め、その確率の最大値が(例えば、スコアが「100」点満点なら)スコア「100」になるような係数を求め、着目中の文字列の出現確率を「100」点満点のスコアに正規化する。
【0055】
なお、本発明に適用可能な確率モデルは、隠れマルコフモデルに限られるものではなく、各意味属性に対応する文字列の出現パターンを確率的に予測するモデルであればどのような確率モデルであってもよい。
【0056】
また、この確率モデルによるスコア付与の処理は、オプションとして実行しないように構成してもよい。
【0057】
次に、ステップS006において、着目中の文字列に対して、ステップS003〜S005で付与されたスコアを合計するスコア計算処理を行う。以下、図7を参照して説明する。
【0058】
図7は、本発明の情報処理装置におけるスコア計算処理を説明するための図である。
【0059】
例えば、着目中の文字列を「山形県」とすると、「山形県」に対しては、辞書DB106により、「住所」としてスコア「80」、「氏名」としてはスコア「20」が付与されている。また、「山形県」に対しては、ルールDB105により「氏名」としてスコア「100」が付与されている。なお、ここでは、説明を簡単にするために、確率モデルを利用したスコアは付与されていないものとする。
【0060】
この場合、スコア計算による合計は、「住所」としてスコア「80」、「氏名」としてはスコア「120(=20+100)」となる。
【0061】
なお、本発明の情報処理装置では、この時点だけで、「山形県」が人名であると決定するものではなく、このスコア計算結果に後述するステップS008に示す最適割り当て処理を適用して、最終的な文字列認識結果を決定する。
【0062】
以下、図3のフローチャートの説明に戻る。
【0063】
ステップS007において、CPU101は、抽出文字列群302の全文字列に対してステップS002〜006の処理を終了したか否かを判定し、まだ終了していないと判断した場合には、ステップS002に処理を戻し、次の文字列の処理を行う。
【0064】
一方、ステップS007で、CPU101が、抽出文字列群302の全文字列に対してステップS002〜006の処理を終了したと判断した場合には、ステップS008に処理を進める。
【0065】
以下、図8に、抽出文字列群302の全文字列に対する辞書ベースのスコア付与結果を示す。また、この結果にさらに、ルールベースのスコアを付与し、抽出文字列群302の全文字列に対するスコア計算を行った結果を図9に示す。
【0066】
図8,図9に示すように、「ヤマモト電気株式会社」に対してのスコア計算結果は、「氏名」としてスコア「20(辞書ベース)」(図9の901)、「会社名」としてスコア「100(辞書ベース)+100(ルールベース)」(図9の903)となる。
【0067】
また、「課長」に対しては、「役職名」としてスコア「100(辞書ベース)」となる。
【0068】
さらに、「山形県」に対しては、「氏名」としてスコア「20(辞書ベース)+100(ルールベース)」(図9の902)、「住所」としてスコア「80(辞書ベース)」(図9の904)となる。
【0069】
また、「〒111-0011 東京都○○区三好1−2−3」に対しては、「住所」としてスコア「80(辞書ベース)+100(ルールベース)」(図9の905)となる。
【0070】
さらに、「TEL 03-1234-5678」に対しては、「電話番号」としてスコア「100(ルールベース)」(図9の906)となる。
【0071】
このように、この例では、「ヤマモト電気株式会社」,「山形県」は、文字列は、複数の意味属性を持つ可能性があることが示されているが、このような場合、以下図10に示す最適割り当て処理により、いずれかの属性に決定する。
【0072】
図10は、本発明の情報処理装置における第2の制御処理手順の一例を示すフローチャートであり、図3のステップS008に示した最適割り当て処理に対応する。なお、このフローチャートの処理は、情報処理装置100のCPU101がHD104に格納されたプログラムをRAM102にロードして実行することにより実現される。また、図中、S1101〜S1110は各ステップを示す。
【0073】
まず、ステップS1101において、CPU101は、抽出文字列群302内で1つの文字列に2つ以上の意味属性があるもの(図9に示したスコア計算結果においてスコア「0」でない分類が複数ある文字列)が存在するか否かを判断し、存在しないと判断した場合には、ステップS1110において、抽出文字列群302内の各文字列に該当する意味属性(スコア「0」でない分類)を関連付けて、該関連つけた「文字列」と「意味属性」のペアを、出力情報として、本フローチャートの処理を終了する。
【0074】
一方、ステップS1101で、CPU101が、抽出文字列群302内で1つの文字列に2つ以上の意味属性があるもの(スコア「0」でない分類が複数ある文字列)が存在すると判断した場合には、ステップS1102において、CPU101は、文字列群の組み合わせのパターンによるスコア合計を計算する。即ち、図11に示すような総スコアになるパターンを抽出し、各パターンの総スコアを計算する。
【0075】
図11は、本発明の情報処理装置におけるパターン毎の総スコアを計算の一例を示す図である。
【0076】
図11に示すように、図9に示したスコア計算結果より、A,B,C,Dの4パターンが抽出される。なお、電話番号,役職等のように、唯一の意味属性しか持たない文字列が既に関連つけられている意味属性は省略してある。
【0077】
また、パターン抽出の際の文字列の配置は、一つの文字列が、同じパターン内で、複数の意味属性に割り当てられることがないように配置する。
【0078】
そして、各パターン毎に、総スコアを計算する。
【0079】
この結果、図11に示した例では、CPU101は、ステップS1103において、最も高スコアになるCパターンが最も妥当であると判断し、意味属性と文字列の関係にCパターンを選択する。
【0080】
そして、ステップS1104において、CPU101は、ステップS1103で選択したパターンの文字列と意味属性を関連付けて、該関連つけた「文字列」と「意味属性」のペアを、出力情報として、本フローチャートの処理を終了する。
【0081】
よって、最終的に、「ヤマモト電気株式会社」は「会社名」、「課長」は「役職」、「山形県」は「氏名」、「〒111-0011 東京都○○区三好1−2−3」は「住所」、「TEL 03-1234-5678」は「電話番号」とそれぞれ文字認識されることとなる。
【0082】
このように、図4に示した名刺は正しく文字認識される。
【0083】
なお、図4に示した名刺の例では、「山形県」の前「課長」という役職が記載されていたため、ルールDB105によるスコア付与の際に、「氏名」属性のスコアが高くなり、「山形県」が「氏名」属性と認識されることに大なる影響をあたえた。
【0084】
よって、以下に示す図12〜図14を参照して、「山形県」の前「課長」という役職が記載されていない場合について考察してみる。
【0085】
図12に、抽出文字列群302の全文字列に対する辞書ベースのスコア付与結果の他の例を示す。また、この結果にさらに、ルールベースのスコアを付与し、抽出文字列群302の全文字列に対するスコア計算を行った結果の他の例を図13に示す。
【0086】
図12,図13に示すように、「ヤマモト電気株式会社」に対してのスコア計算結果は、「氏名」としてスコア「20(辞書ベース)」、「会社名」としてスコア「100(辞書ベース)+100(ルールベース)」となる。
【0087】
また、「課長」に対してのスコア計算結果は、「役職名」としてスコア「100(辞書ベース)」となる。
【0088】
さらに、「山形県」に対してのスコア計算結果は、「氏名」としてスコア「20(辞書ベース)」、「住所」としてスコア「80(辞書ベース)」となる(役職名がないためルールDB105は適用されない)。
【0089】
また、「〒111-0011 東京都○○区三好1−2−3」に対してのスコア計算結果は、「住所」としてスコア「80(辞書ベース)+100(ルールベース)」となる。
【0090】
さらに、「TEL 03-1234-5678」に対しては、「電話番号」としてスコア「100(ルールベース)」となる。
【0091】
以下、図14に総スコアパターンを示す。
【0092】
図14は、本発明の情報処理装置におけるパターン毎の総スコアを計算の他の例を示す図である。
【0093】
図14に示すように、図13に示したスコア計算結果より、A,B,C,Dの4パターンが抽出される。
【0094】
そして、各パターン毎の総スコアを計算の結果、図14に示した例でも、Cパターンが最高スコアになる。
【0095】
よって、「山形県」の前「課長」という役職が記載されていない場合であっても、「ヤマモト電気株式会社」は「会社名」、「課長」は「役職」、「山形県」は「氏名」、「〒111-0011 東京都○○区三好1−2−3」は「住所」、「TEL 03-1234-5678」は「電話番号」とそれぞれ正しく文字認識されるととになる。
【0096】
以上示したように、画像データ上の文字列が表す意味を特定するための辞書、ルールまたは確率的処理を利用し、また、個々の文字列の意味属性を特定することではなく、複数の(名刺全体の)文字列の意味属性を考慮して、画像データ上の各部分がいずれの意味属性に対応する情報を記述したものか(いずれの意味的情報区分に属するものか)を自動的に(人手を介さず)判断することができる。
【0097】
従って、例えば名刺データベースなどの後続のアプリケーションに渡すときに、ある文字列が氏名なのか住所なのか、などを人手によりチェックし指定あるいは修正する必要を省力化することができる優れた文字列認識環境を構築することができる。
【0098】
なお、ルールによるスコア付与,HMM等の確率的処理によるスコア付与は、オプションであり、これらの一方又は両方を使用しないシステムも構築可能である。
【0099】
例えば、ルールを使用しない場合には、図3のステップS004をスキップし、また、確率的処理を使用しない場合には、図3のステップS005をスキップするように、CPU101が制御する。
【0100】
なお、上述した例を用いて、辞書ベースのスコアの付与のみを行った場合(ルール及び確立的処理を適用しなかった場合)を以下に考察する。
【0101】
図12に示した辞書ベースのスコア付与例から、この場合も、上述した例と同一のパターンA,B,C,Dが抽出される。
【0102】
ただし、パターンAの総スコアは「100=20+80」、パターンBの総スコアは「100=20+80」、パターンCの総スコアは「200=20+100+80」、パターンDの総スコアは「180=100+80」となる。
【0103】
よって、辞書ベースのスコアの付与のみを行った場合(ルール及び確立的処理を適用しなかった場合)も、やはりパターンCが最高スコアと判断され、正しく認識される。
【0104】
〔第2実施形態〕
上記第1実施形態では、文字列認識対象となる画像データからOCR認識を行い、該OCR認識した文字列の各意味属性を決定する構成について説明したが、図3のステップS002〜008の処理の実行は、画像データのOCR結果に限られるものではなく、複数の文字列データであれば、どのような文字列データであってもよい。
【0105】
例えば、図12に示すようなCSVファイルに適用してもよい。
【0106】
図15は、本発明の情報処理装置において認識対象となる文字列を含むCSVファイルの一例を示す図である。
【0107】
図15に示すように、このCSVファイルは、1行目では、1201に示すように1列目に住所、1202に示すように2列目に氏名(ここで1202は「秋田 県(あがた)」という氏名)、3列目に会社名、4列目に電話番号が入っている。
【0108】
また、2行目では、1203に示すように3列目に電話番号が入っている。
【0109】
さらに、3行目では、1205に示すように1列目に氏名(「○○田×子」という指名)、1204に示すように2列目に住所が入っている。
【0110】
このように、行毎に列項目が異なっていても、また、住所に似た氏名が入っていても、図3に示したステップS002〜S008の処理を、各行毎に行うことで、上述した第1実施形態で示した名刺の例と同様に、各行の各列のデータを意味属性(意味的情報区分)で分類することが可能である。
【0111】
なお、上述した各実施形態内で示した変形例のいずれか又は全てを組み合わせた構成も全て本発明に含まれるものである。
【0112】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0113】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0114】
以上より、複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する際に、前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを1又は複数の方法によりそれぞれ複数の方法によりそれぞれ付与し、前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記それぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する(即ち、文字列群全体を考慮して各文字列の意味属性を分類する)ことにより、名刺等に記述されている各部分の文字列が何の情報を示しているのかを予めあるいは認識時に指定する必要がなく、名刺等の各部の文字列を正しい情報として取得することができる。
【0115】
従って、文字列を名刺等の原稿内における位置によってではなく、文字列群全体を考慮して、文字列の意味属性を特定するので、例えば、「秋田県(あきたあがた)」や「吉野村政」のような、地名に酷似した氏名でも、地名と誤認識することなく、氏名として分類可能である。
【0116】
結果として、例えば名刺データベースなどの後続のアプリケーションに渡すときに、ある文字列が氏名なのか住所なのか、などを人手によりチェックし指定あるいは修正する必要を省力化することができる。
【0117】
以下、図16に示すメモリマップを参照して本発明に係る文字認識装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0118】
図16は、本発明に係る文字認識装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0119】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0120】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0121】
本実施形態における図3,図10に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0122】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0123】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0124】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0125】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0126】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0127】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0128】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【0129】
【図1】本発明の一実施形態を示す情報処理装置を適用可能なシステムの一例を示すシステム構成図である。
【図2】図1に示した情報処理装置のハードウェア構成の一例を示すブロック図である。
【図3】本発明の情報処理装置における第1の制御処理手順の一例を示すフローチャートである。
【図4】本発明の情報処理装置における文字列認識対象画像および該文字列認識対象画像から抽出された文字列の一例を示す模式図である。
【図5】本発明の情報処理装置における辞書DBの構成の一例を示す図である。
【図6】本発明の情報処理装置におけるルールDBの構成の一例を示す図である。
【図7】図3に示す文字列に対するスコア計算処理を説明する図である。
【図8】抽出文字列群の全文字列に対する辞書ベースのスコア付与結果を示す図である。
【図9】抽出文字列群の全文字列に対するスコア計算結果を示す図である。
【図10】本発明の情報処理装置における第2の制御処理手順の一例を示すフローチャートである。
【図11】本発明の情報処理装置におけるパターン毎の総スコアの計算の一例を示す図である。
【図12】抽出文字列群の全文字列に対する辞書ベースのスコア付与結果の他の例を示す図である。
【図13】抽出文字列群の全文字列に対するスコア計算結果の他の例を示す図である。
【図14】本発明の情報処理装置におけるパターン毎の総スコアの計算結果の他の例を示す図である。
【図15】本発明の情報処理装置において認識対象となる文字列を含むCSVファイルの一例を示す図である。
【図16】本発明に係る文字認識装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0130】
200 画像入力装置(スキャナ)
100 情報処理装置(文字列認識装置)
101 CPU
102 RAM
103 ROM
104 HD
105 辞書DB
106 ルールDB
107 確率情報DB
109 通信インタフェース
110 入力装置
111 表示装置
【特許請求の範囲】
【請求項1】
複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する情報処理装置において、
前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを付与する1又は複数のスコア付与手段と、
前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記各スコア付与手段によりそれぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する分類手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記1又は複数のスコア付与手段は、
文字列と前記各意味属性とを関連付けてスコアを持たせた辞書データを記憶する第1の記憶手段と、前記辞書データに基づいて前記文字列の前記各意味属性に対するスコアを付与する第1の付与手段とから構成される辞書スコア付与手段を、
含むことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記1又は複数のスコア付与手段は、
文字列と前記各意味属性とを関連付ける文字列ルールにスコアを持たせたルールデータを記憶する第2の記憶手段と、前記ルールデータに基づいて前記文字列の前記各意味属性に対するスコアを付与する第2の付与手段とから構成される辞書スコア付与手段を、
含むことを特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
前記1又は複数のスコア付与手段は、前記文字列群の書式に応じた確率モデルに基づいて前記文字列の前記各意味属性に対するスコアを付与する第3の付与手段とから構成される確率モデルスコア付与手段を、
含むことを特徴とする請求項1又は2記載の情報処理装置。
【請求項5】
前記文字列分類装置は、
1つの文字列が2つ以上の意味属性を持つ場合にスコア算出を行うことを特徴とする請求項1及び2記載の情報処理装置。
【請求項6】
前記各文字列は、画像データより読み取られた文字列であることを特徴とする請求項1〜5のいずれかに記載の情報処理装置。
【請求項7】
前記各文字列は、名刺に対応する画像データより読み取られた文字列であり、
前記各意味属性は、氏名,役職,住所,電話番号,会社名を含むことを特徴とする請求項1〜5のいずれかに記載の情報処理装置。
【請求項8】
複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類可能な情報処理装置における文字列分類方法において、
前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを付与する1又は複数のスコア付与ステップと、
前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記各スコアステップでそれぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する分類ステップと、
を有することを特徴とする文字列分類方法。
【請求項9】
請求項8に記載された文字列分類方法をコンピュータが実行するためのプログラム。
【請求項10】
請求項8に記載された文字列分類方法をコンピュータが実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【請求項1】
複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類する情報処理装置において、
前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを付与する1又は複数のスコア付与手段と、
前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記各スコア付与手段によりそれぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する分類手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記1又は複数のスコア付与手段は、
文字列と前記各意味属性とを関連付けてスコアを持たせた辞書データを記憶する第1の記憶手段と、前記辞書データに基づいて前記文字列の前記各意味属性に対するスコアを付与する第1の付与手段とから構成される辞書スコア付与手段を、
含むことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記1又は複数のスコア付与手段は、
文字列と前記各意味属性とを関連付ける文字列ルールにスコアを持たせたルールデータを記憶する第2の記憶手段と、前記ルールデータに基づいて前記文字列の前記各意味属性に対するスコアを付与する第2の付与手段とから構成される辞書スコア付与手段を、
含むことを特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
前記1又は複数のスコア付与手段は、前記文字列群の書式に応じた確率モデルに基づいて前記文字列の前記各意味属性に対するスコアを付与する第3の付与手段とから構成される確率モデルスコア付与手段を、
含むことを特徴とする請求項1又は2記載の情報処理装置。
【請求項5】
前記文字列分類装置は、
1つの文字列が2つ以上の意味属性を持つ場合にスコア算出を行うことを特徴とする請求項1及び2記載の情報処理装置。
【請求項6】
前記各文字列は、画像データより読み取られた文字列であることを特徴とする請求項1〜5のいずれかに記載の情報処理装置。
【請求項7】
前記各文字列は、名刺に対応する画像データより読み取られた文字列であり、
前記各意味属性は、氏名,役職,住所,電話番号,会社名を含むことを特徴とする請求項1〜5のいずれかに記載の情報処理装置。
【請求項8】
複数の意味属性のいずれかに割り当てられた複数の文字列から構成される文字列群内の各文字列を前記意味属性毎に分類可能な情報処理装置における文字列分類方法において、
前記各文字列毎に、前記文字列を分析して前記文字列の前記各意味属性に対する割り当ての尤らしさを示すスコアを付与する1又は複数のスコア付与ステップと、
前記各文字列の前記各意味属性への割り当て組み合わせパターン毎の前記各スコアステップでそれぞれ付与されたスコアの合計値に基づいて、前記いずれかの組み合わせパターンを選択し、該選択した組み合わせパターンで、前記各文字列を前記各意味属性に分類する分類ステップと、
を有することを特徴とする文字列分類方法。
【請求項9】
請求項8に記載された文字列分類方法をコンピュータが実行するためのプログラム。
【請求項10】
請求項8に記載された文字列分類方法をコンピュータが実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2006−185342(P2006−185342A)
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願番号】特願2004−380567(P2004−380567)
【出願日】平成16年12月28日(2004.12.28)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願日】平成16年12月28日(2004.12.28)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】
[ Back to top ]