(57)【要約】【課題】文字認識精度を向上させる。【解決手段】本実施形態に係る文字認識装置は、辞書生成部、推定部、ラティス生成部および探索部を含む。辞書生成部は、ユーザが作成するテキストデータおよび該ユーザが利用するテキストデータの少なくとも１つから文字を抽出し、抽出した文字を優先文字として登録するユーザ辞書を生成する。推定部は、認識処理の対象となるテキストである処理対象テキストのレイアウトおよび処理対象テキストに付されるマーキングに関するマーキング情報の少なくともどちらか一方に基づいて、文字間の区切りを推定する。ラティス生成部は、処理対象テキストのブロックに含まれる文字列に関して、文字間の区切りに基づき、ストロークで表される文字セグメントを推定し、ラティス構造を生成する。探索部は、ラティス構造の中で、優先文字に該当する経路が存在する場合、優先文字となる経路を探索することにより文字認識結果を得る。【選択図】図１
2014067303.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが作成するテキストデータおよび該ユーザが利用するテキストデータの少なくとも１つから文字を抽出し、抽出した文字を優先文字として登録するユーザ辞書を生成する辞書生成部と、
認識処理の対象となるテキストである処理対象テキストのレイアウトおよび該処理対象テキストに付されるマーキングに関するマーキング情報の少なくともどちらか一方に基づいて、文字間の区切りを推定する推定部と、
前記処理対象テキストの前記レイアウトを構成するブロックに含まれる文字列に関して、前記文字間の区切りに基づき、ストロークで表される文字セグメントを推定し、該文字セグメントと該文字セグメント間の経路とにより形成されるラティス構造を生成するラティス生成部と、
前記ラティス構造の中で、前記優先文字に該当する経路が存在する場合、該優先文字となる経路を探索することにより文字認識結果を得る探索部と、を具備することを特徴とする文字認識装置。
【請求項２】
前記処理対象テキストから、行および罫線を含む図表と、下線および囲み線を含むマーキングに関するマーキング情報とを解析する解析部をさらに具備することを特徴とする請求項１に記載の文字認識装置。
【請求項３】
前記辞書生成部は、前記テキストデータにおいて、マーキングされたページに含まれる文字列およびマーキングされた文字列について、優先文字として優先して文字認識される度合いを示す優先度を高く設定し、前記ユーザ辞書に登録することを特徴とする請求項１または請求項２に記載の文字認識装置。
【請求項４】
前記ユーザが作成したメールおよび文書に含まれるテキストデータを、他のアプリケーションから取得する収集部をさらに具備することを特徴とする請求項１から請求項３のいずれか１項に記載の文字認識装置。
【請求項５】
前記収集部は、ユーザが所属する組織および従事する分野の少なくとも１つで利用される文書を示す特定ドメイン文書からテキストデータを収集することを特徴とする請求項４に記載の文字認識装置。
【請求項６】
前記推定部は、前記レイアウトに基づいて入力される可能性のある文字の種別を推定することを特徴とする請求項１から請求項５のいずれか１項に記載の文字認識装置。
【請求項７】
前記ブロックは、行、図表および箇条書きを含むテキストのレイアウトから抽出されることを特徴とする請求項１から請求項６のいずれか１項に記載の文字認識装置。
【請求項８】
前記優先文字は、行頭に付される記号である行頭文字と単語とを含むことを特徴とする請求項１から請求項７のいずれか１項に記載の文字認識装置。
【請求項９】
前記辞書生成部は、ユーザによりテキストに記入された記号および罫線を含むマーキングを、前記行頭文字および前記単語の区切りの手がかりとすることを特徴とする請求項８に記載の文字認識装置。
【請求項１０】
ユーザが作成するテキストデータおよび該ユーザが利用するテキストデータの少なくとも１つから文字を抽出し、抽出した文字を優先文字として登録するユーザ辞書を生成し、
認識処理の対象となるテキストである処理対象テキストのレイアウトおよび該処理対象テキストに付されるマーキングに関するマーキング情報の少なくともどちらか一方に基づいて、文字間の区切りを推定し、
前記処理対象テキストの前記レイアウトを構成するブロックに含まれる文字列に関して、前記文字間の区切りに基づき、ストロークで表される文字セグメントを推定し、該文字セグメントと該文字セグメント間の経路とにより形成されるラティス構造を生成し、
前記ラティス構造の中で、前記優先文字に該当する経路が存在する場合、該優先文字となる経路を探索することにより文字認識結果を得ることを特徴とする文字認識方法。
【請求項１１】
コンピュータを、
ユーザが作成するテキストデータおよび該ユーザが利用するテキストデータの少なくとも１つから文字を抽出し、抽出した文字を優先文字として登録するユーザ辞書を生成する辞書生成手段と、
認識処理の対象となるテキストである処理対象テキストのレイアウトおよび該処理対象テキストに付されるマーキングに関するマーキング情報の少なくともどちらか一方に基づいて、文字間の区切りを推定する推定手段と、
前記処理対象テキストの前記レイアウトを構成するブロックに含まれる文字列に関して、前記文字間の区切りに基づき、ストロークで表される文字セグメントを推定し、該文字セグメントと該文字セグメント間の経路とにより形成されるラティス構造を生成するラティス生成手段と、
前記ラティス構造の中で、前記優先文字に該当する経路が存在する場合、該優先文字となる経路を探索することにより文字認識結果を得る探索手段と、して機能させるための文字認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、文字認識装置、方法およびプログラムに関する。
【背景技術】
【０００２】
ペン入力など手書きによる文字入力方式は従来から広く利用されている。ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ：携帯用情報端末）だけでなく、スマートフォンやタブレット型端末、ゲーム機の広がりに伴い、ペン入力機能を備えた機器も増えている。
【０００３】
こうした環境において、ユーザは、慣れ親しんだ紙とペンとを電子的に模倣した直感的な入力手段によって、いつでも手軽に文書を作成できる。しかしながら、キーボードなどの手段を用いて直接テキストデータを入力する場合とは異なり、上述の入力手段で作成したテキストや文書の文字列は、そのままでは簡単に検索することはできない。通常は、後でデジタルデータとして扱うために手書き文書から文字認識を行う必要がある。
【０００４】
このような手書きデータ、特に自由なレイアウトで文字を記入する場合、認識精度の向上が課題となる。従来技術として、活字と手書き文字とが混在した文書について、活字と手書き文字とを分離後に、認識精度を確保しやすい活字をＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ：光学文字認識）処理し、手書き文字の認識候補に活字をＯＣＲ処理した結果が含まれる場合はその結果を採用する方法がある。これにより手書き文字の認識精度を向上させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−９２０９７号公報
【特許文献２】特開２００２−２５９９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ページ単位で作成される手書き文書に対し文字認識を行う場合、単に文字列の行を検出して文字認識するだけでは、ページのレイアウト上における記号（箇条書きに用いられる見出し記号「＊」など）が文字の一画と混同されやすい。また、会社の部署名の略称、社内用語や記号などの特定分野の専門用語に関しては、一般的なＮ−ｇｒａｍまたは言語モデルを適用するだけでは文字認識の精度は改善しない。
【０００７】
本開示は、上述の課題を解決するためになされたものであり、文字認識精度を向上させることができる文字認識装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本実施形態に係る文字認識装置は、辞書生成部、推定部、ラティス生成部および探索部を含む。辞書生成部は、ユーザが作成するテキストデータおよび該ユーザが利用するテキストデータの少なくとも１つから文字を抽出し、抽出した文字を優先文字として登録するユーザ辞書を生成する。推定部は、認識処理の対象となるテキストである処理対象テキストのレイアウトおよび該処理対象テキストに付されるマーキングに関するマーキング情報の少なくともどちらか一方に基づいて、文字間の区切りを推定する。ラティス生成部は、前記処理対象テキストの前記レイアウトを構成するブロックに含まれる文字列に関して、前記文字間の区切りに基づき、ストロークで表される文字セグメントを推定し、該文字セグメントと該文字セグメント間の経路とにより形成されるラティス構造を生成する。探索部は、前記ラティス構造の中で、前記優先文字に該当する経路が存在する場合、該優先文字となる経路を探索することにより文字認識結果を得る。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る文字認識装置を示すブロック図。
【図２】ユーザ辞書生成部の動作を示すフローチャート。
【図３】ユーザ辞書生成部の抽出処理の一例を示す図。
【図４】本実施形態に係るユーザ辞書の一例を示す図。
【図５】文字区切り推定部の動作を示すフローチャート。
【図６】文字区切り推定部おける検出および推定処理の一例を示す図。
【図７】文字区切り推定部における字種の推定処理の一例を示す図。
【図８】ラティス生成部およびラティス探索部の動作を示すフローチャート。
【図９】手書き文字とストロークとの関係を説明する図。
【図１０】文字セグメントとストロークデータとの関係性を示す図。
【図１１】本実施形態に係るラティス構造の一例を示す図。
【図１２】文字認識処理が正しく行われる場合の一例を示す図。
【図１３】本実施形態に係る文字認識処理を行なった場合の処理対象テキストデータに関する文字認識結果を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本実施形態に係る文字認識装置、方法およびプログラムについて詳細に説明する。なお、以下の実施形態では、同一の参照符号を付した部分は同様の動作をおこなうものとして、重複する説明を適宜省略する。  
（第１の実施形態）  
第１の実施形態に係る文字認識装置について図１のブロック図を参照して説明する。  
第１の実施形態に係る文字認識装置１００は、テキストデータ収集部１０１、ユーザ辞書生成部１０２、ユーザ辞書格納部１０３、レイアウト解析部１０４、文字区切り推定部１０５、ラティス生成部１０６、ラティス探索部１０７および出力部１０８を含む。
【００１１】
テキストデータ収集部１０１は、ユーザが作成したテキスト文書データ、閲覧などで利用したテキスト文書データを、メールアプリケーションおよび文書編集アプリケーションなど他の装置またはアプリケーションプログラムから収集する。すなわち、テキスト文書データは、ユーザがメールアプリケーションを用いて作成した文書、および、文書編集アプリケーションにより作成した文書を含む。  
また、テキストデータ収集部１０１は、業務文書などの特定ドメイン文書に含まれるテキスト文書データも収集する。特定ドメイン文書は、ユーザが所属する組織、ユーザが従事する分野などで利用される文書であり、ユーザが実際に作成および利用するかどうかによらず、ユーザが目にする機会の多い単語を含む文書である。特定ドメイン文書に含まれる単語としては、例えば、部署名の略称、社内用語や記号、および専門分野における専門用語が挙げられる。さらに、テキストデータ収集部１０１は、ユーザによる手書き文書データを収集する。手書き文書データは、例えばペンデバイスやタッチパネルへの指などを用いた筆記により入力されるデータ、ＯＣＲ処理により画像として入力される筆記データ、および、テキスト文書データにおけるテキストに対する下線または囲み線などのマーキング入力や、余白にコメント等の形で入力されたデータも含まれる。以下、特に断らない限り、テキスト文書データと手書き文書データとをまとめてテキストデータという。
【００１２】
ユーザ辞書生成部１０２は、テキストデータ収集部１０１から１つ以上のテキストデータを受け取り、テキスト集合、または手書き文書に含まれるテキスト文書データから単語および記号を抽出する。抽出した単語および記号を優先文字として登録したユーザ辞書を生成する。特徴的な文字は、例えば、テキスト中の出現頻度が高い文字である。ユーザ辞書の生成処理については、図２を参照して後述する。
【００１３】
ユーザ辞書格納部１０３は、ユーザ辞書生成部１０２からユーザ辞書を受け取って格納する。また、ユーザ辞書格納部１０３は、後述する文字区切り推定部１０５から行頭文字を受け取り、ユーザ辞書に行頭文字を優先文字として格納する。行頭文字とは、ページのレイアウト上の記号であり、例えば中点「・」といった見出し記号が挙げられる。
【００１４】
レイアウト解析部１０４は、外部から処理対象テキストデータを受け取り、処理対象テキストから、罫線および行などのレイアウト解析結果、テキストに付されるマーキングを示すマーキング情報を抽出する。処理対象テキストデータは、文字認識処理の対象となるテキストデータである。レイアウト解析結果およびマーキング情報の抽出は、例えば、図表と文字との領域を推定して分割し、行を分割し、テキストへのマーキングを解析することで得られる。レイアウト解析部１０４における抽出処理は、既存のストローク処理またはＯＣＲ処理を用いればよいためここでの説明は省略する。
【００１５】
文字区切り推定部１０５は、レイアウト解析部１０４からレイアウト解析結果、マーキング情報および処理対象テキストデータを受け取り、複数行に共通する行頭文字および記号を推定して推定結果を得る。また、文字区切り推定部１０５は、表に含まれる字種を推定して推定結果に含めてもよい。字種は、文字の種別を示し、例えば、漢字、ひらがな、数字、アルファベットが挙げられる。
【００１６】
ラティス生成部１０６は、文字区切り推定部１０５から推定結果および処理対象テキストデータを、レイアウト解析部１０４からレイアウト解析結果およびマーキング情報をそれぞれ受け取る。ラティス生成部１０６は、文字を構成するストロークで表される文字セグメントを推定し、ラティス構造（グラフともいう）を生成する。ラティス構造は、文字自体あるいは文字の一部（例えば、「へん」や「つくり」）を示す文字セグメントと、文字セグメント間の経路とにより形成される文字セグメント間の連結関係を示す。
【００１７】
ラティス探索部１０７は、ラティス生成部１０６からラティス構造を受け取る。ラティス探索部１０７は、ユーザ辞書格納部１０３に格納された優先文字を参照し、優先文字に該当する経路が存在する場合、優先文字となる経路を探索して文字認識処理を行ない、文字認識結果を得る。
【００１８】
出力部１０８は、ラティス探索部１０７から認識結果を受け取って外部に出力する。
【００１９】
次に、ユーザ辞書生成部１０２の辞書生成処理について図２のフローチャートを参照して説明する。  
ステップＳ２０１では、テキストデータ収集部１０１から、テキストデータを取得する。
【００２０】
ステップＳ２０２では、マーキングされたテキストデータであるか、すなわち手書き文書データであるかどうかを判定する。マーキングされたテキストデータでない、すなわちテキスト文書データであれば、ステップＳ２０３に進み、マーキングされたテキストデータであればステップＳ２０４に進む。なお、手書き文書データを取得する場合は、テキスト文書のデータ全体を取得してもよいし、手書きデータが入力されたページまたは段落のみを取得してもよいし、下線や囲み線などで限定された文字列のみを取得してもよい。または、全テキストデータを取得するが、手書き入力された箇所のみを重み付けするなどの処理でもよい。
【００２１】
ステップＳ２０３では、テキストデータから頻出語を抽出する。頻出語の抽出方法としては、例えば形態素解析を行い、出現頻度が高い単語、ＴＦ−ＩＤＦ（Term Frequency - Inverse Document Frequency）などの指標によるスコアが高い単語などを抽出すればよい。なお、ユーザによりテキストに記入された記号および罫線を含むマーキングを、行頭文字および単語の区切りの手がかりとして用いてもよい。
【００２２】
ステップＳ２０４では、マーキング情報に基づいてマーキングされた単語を抽出する。
【００２３】
ステップＳ２０５では、ステップＳ２０３およびステップＳ２０４で得られた頻出語およびマークアップされた単語を優先文字としてユーザ辞書に格納する。以上で、ユーザ辞書生成部１０２の辞書生成処理を終了する。
【００２４】
次に、ステップＳ２０４に示すマーキングされた単語の抽出処理の具体例について、図３を参照して説明する。  
図３は、ユーザによるマーキングを含むテキストデータから単語を抽出する例である。
【００２５】
図３（ａ）に示す例では、単語「認識」が囲み線で囲まれるマーキング３０１がなされ、単語「転置インデックス」に下線が引かれるマーキング３０２がなされる。これらの単語は、ユーザが強調したいと考える単語であるので、囲まれた領域に含まれる文字列、下線上に存在する文字列の優先度を高くする。
【００２６】
また、マーキングは、単語への下線や囲み線の他、行頭文字やページ全体へのマークなどにも用いられる。例えば、図３（ｂ）は行頭に見出し記号がある例であり、中点のマーク「・」のように見出し記号がある場合は、マークが後続する行に対し有効であると考えられるので、中点のマーク「・」がある１行に含まれる文字列全体を抽出する。すなわち、「・次回のミーティング」という行であれば、「次回のミーティング」がマーキングされた単語として抽出される。
【００２７】
図３（ｃ）は、文の一部にマークがある例であり、線により囲まれた、あるいは強調された言葉を対象とすることを示す。すなわち、「ＵＩ仕様の変更」のように「ＵＩ仕様」のみに下線が引かれている場合は、マーキングされた単語として「ＵＩ仕様」を抽出する。
【００２８】
図３（ｄ）は行全体にマークがある例であり、図３（ａ）と同様に、行全体がマーキングされた単語として抽出される。  
また、図３（ｅ）はページ全体にマークがある例であり、ページ全体が抽出対象となる。図３（ｅ）の例では、ページの右上に星印または「重要」というマークが付されているので、ページに含まれる文字全体をマーキングされた単語として抽出する。
【００２９】
なお、図３（ｂ）から図３（ｅ）まででは、手書き文字に対して手書きでマークされる例を示しているが、文書編集アプリケーションなどで作成されたテキストデータに対するマーキングの場合も同様に処理すればよい。また、マークが対象とする範囲についても、段落および図表の全体または一部など、レイアウトを構成する任意の単位に対し適用してもよい。
【００３０】
次に、ユーザ辞書格納部１０３に格納されるユーザ辞書の一例について図４を参照して説明する。
【００３１】
ユーザ辞書４００には、ＩＤ４０１、エントリ４０２、種類４０３および優先度４０４がそれぞれ対応づけられて格納される。ＩＤ４０１は、一意に定まる識別子である。エントリ４０２は、優先文字の文字である。種類４０３は、エントリ４０２の文字の属性を示す。優先度４０４は、ユーザ辞書内で優先して文字認識される度合いを示す。  
例えば、エントリ４０２「認識」という文字は単語であるので種類４０３「単語」が対応づけられ、手書き文書データから抽出されたので優先度４０４「高」となる。また、エントリ４０２「☆」は、見出し記号として行頭に用いられるマークとすると、種類４０３「マーキング：行頭文字」が対応づけられ、テキスト文書データから抽出されたとすると優先度４０４「低」となる。
【００３２】
このように、ユーザ辞書には文字列だけでなく、行頭文字も登録することにより、文字列と区別して高精度な認識処理を行うことができる。なお、マーキング情報の場合、エントリは必ずしもテキストデータとして表現できるとは限らないので、ストロークや形状を示す座標列やＩＤなど他の格納方式を用いてもよい。さらに、優先度として図４では、「高」「低」の２種類としているが、これに限らず１０段階の数値など優先度を測れる指標であれば何でもよい。
【００３３】
次に、文字区切り推定部１０５の動作について図５のフローチャートを参照して説明する。  
ステップＳ５０１では、レイアウト解析部１０４による処理対象テキストのレイアウト解析結果に基づいて、ブロックに分割する。ブロックは、処理対象テキストのレイアウトの構成である。ブロックの分割は、例えば１行に書かれている文字数や行または記述範囲の近さに基づいて、レイアウトから抽出される。
【００３４】
ステップＳ５０２では、隣接する複数のブロックの先頭部分に記載されるストロークを比較し、行頭文字を抽出する。行頭文字に関しては、隣接する複数のブロックの先頭に記述された、いくつかのストロークの形状または座標を比較し、ストローク形状が類似しかつ縦方向または横方向に並んでいる場合に、該当部分を行頭文字として抽出する。また、抽出された行頭文字を文字の区切りとみなすことができる。
【００３５】
ステップＳ５０３では、後から記入されたマーキングに対応する範囲を文字または単語の切れ目の候補として抽出する。例えば、図３（ａ）では、「認識処理」の「認識」という単語が線で囲まれているので、「認識」で文字が区切られていると推定することができる。特に、元の手書き文書がストロークデータとして与えられている場合は、下線および囲み線は、後から記入されていることを識別できるため、指し示す単語を推定する手がかりとして利用できる。
【００３６】
ステップＳ５０４では、抽出された行頭文字をユーザ辞書に登録する。以上で、文字区切り推定部１０５の動作を終了する。 
次に、文字区切り推定部１０５におけるレイアウトから行頭文字および単語を検出する処理の具体例について図６を参照して説明する。  
図６（ａ）は、手書きされた処理対象テキストデータである。手書きによる文字だけではなく、手書きによる囲み線、下線なども記入されている。  
図６（ｂ）は、従来手法を用いて、行単位での文字認識を行なった場合の例である。図６（ｂ）に示されるように、行頭の記号「・」および「□」が異なる文字（数字「０」やカタカナ「ロ」など）として認識され、「（田中）」が「佃中）」と認識されており、誤りを含んだ文字認識処理となる。ユーザが目視すれば、複数行にわたり、箇条書きで文字列が列挙されていることがわかるが、従来の行単位の処理では、行頭文字が別の文字や後続の文字の１画として誤って認識される可能性が高い。
【００３７】
一方、図６（ｃ）は、文字区切り推定部１０５が、レイアウト解析部１０４での解析結果に基づき、ブロックに分割して、複数行に共通する行頭文字および記号を推定する例である。ここで、図６（ｃ）は、２段階で列挙された文字列の推定結果である。
【００３８】
行頭の記号「・」および「□」に関しては、連続した行に記述されているため、行頭文字および記号であると推定することができる。また、「・」で始まる行が４行連続しているので、これらは記号「・」の行頭文字６０１による列挙であるとみなすことができる。  
さらに、その前後に「１．」「２．」で始まる行がある。これらは、１段階上位の階層を示す、数字と「．」との行頭文字６０２による列挙であるとみなすことができ、行頭文字６０１と行頭文字６０２による２段階の列挙であることがわかる。したがって、これら行頭文字と本文とは、別の文字であると推定できる。この結果を用いることで、行頭文字を同じ文字として揃えるとともに、ラティス生成前に行頭文字の部分だけセグメントを分割するなど、行頭文字と後続の文とを区切るように判定することができ、文字認識精度を高めることができる。  
なお、「イ、」「ロ、」「ハ、」あるいは「Ａ．」「Ｂ．」「Ｃ．」のように、連続するカナ順または連続するアルファベット順などの列挙も同様に推定することができる。
【００３９】
次に、文字区切り推定部１０５における字種の推定処理について図７を参照して説明する。  
図７は、手書きで表を記入した場合に、表に含まれる字種を推定する例である。  
図７（ａ）は、表形式の手書きデータの一例である。  
表の右端の列７０１には、手書きによる数字が記入される。同じ行または列に連続して同じ字種（アルファベット、数字など）が記入される場合、他の行または列にも同じ字種が記入される可能性が高くなる。
【００４０】
図７（ｂ）は、レイアウト解析部１０４における罫線のレイアウト解析結果である。複数のセグメントにまたがる線により罫線で区切られた領域が推定される。右下の領域７０２は、１つの列またはセルを示すものと推定される。
【００４１】
図７（ｃ）は、図７（ｂ）の領域７０２に含まれるブロック７０３から文字の種類を推定する処理である。図７（ｃ）に示すように、３つのブロック７０３に分かれているが、これらは全て数字である。ある２個の文字が数字であれば、もう1個の文字も数字である可能性が高いと想定される。よって、文字区切り推定部１０５は、ラティス生成部１０６によるラティス構造の生成の際、数字である候補の出現可能性を示すスコアを上げる情報をラティス生成部１０６に渡すことで、以降のブロックについても数字として認識されやすくする。
【００４２】
次に、ラティス生成部１０６およびラティス探索部１０７の文字認識処理について図８のフローチャートを参照して説明する。  
ステップＳ８０１では、ラティス生成部１０６が、ストロークを表すストロークデータから単語の区切りを考慮してラティス構造を生成する。具体的には、ステップＳ５０１からステップＳ５０４により生成されたユーザ辞書を参照して、文字領域に関して文字を構成する文字セグメントを推定することによりラティス構造を生成する。文字セグメント推定の処理は、既存のストロークあるいは画像処理による手法を用いればよい。生成されたラティス構造には、文字の一部を表すセグメント間の連接関係を示す経路に加え、およびそれぞれの経路に対する重みが付与される。
【００４３】
ステップＳ８０２では、ラティス生成部１０６が、ユーザ辞書とラティス構造とに基づいて、文字認識処理を行なう。ラティス中、ユーザ辞書中のエントリ（優先文字）が含まれるスコアを増加させる。具体的には、ラティス中に各ユーザ辞書のエントリの単語となるように辿れる経路があるかどうかを探索し、含まれる場合にその経路のスコアを増加させる。経路のスコアを増加させる方法については、一般的な方法を用いればよいためここでの説明を省略する。
【００４４】
その他、ユーザ辞書中のエントリが含まれる経路を強制的に通る方法や、探索できたユーザ辞書中のエントリを文字認識結果とは別にキーワードとして抽出する方式を用いてもよい。
【００４５】
ステップＳ８０３では、ラティス生成部１０６が、表中で推定される領域の隣接ブロックと同じ字種のスコアを増加させる。
【００４６】
ステップＳ８０４では、ラティス探索部１０７が、ラティス構造を辿り、出現確率を示すスコアが高い系列を文字認識結果として出力する。
【００４７】
なお、ステップＳ８０２およびステップＳ８０３の処理については、ラティス生成部１０６の代わりにラティス探索部１０７において同様の処理を行なってもよい。以上で、ラティス生成部１０６およびラティス探索部１０７の文字認識処理を終了する。
【００４８】
次に、手書き文字とストロークとの関係性の例について図９を参照して説明する。  
図９（ａ）は、行を示すブロックが検出された後の、手書き文字のストローク例である。この行のブロックは行頭文字９０１「§」と単語９０２「文字認識」とを含む。また、ストロークデータとして、図９（ｂ）に示す対応テーブルを得ることができる。図９（ｂ）に示すように、ストロークＩＤ９０３および座標列９０４が対応づけられる。座標列９０４は、ｘ座標およびｙ座標系を想定する。例えば、行頭文字９０１「§」のストロークデータとして、ｘ座標およびｙ座標の座標列９０４「（２４，４９）、（２５，５０）、．．．、（２０，６５）」が抽出され、ストロークごとに座標列が得られる。このように、一画ごとに、ストロークＩＤとストロークを構成する座標列とが抽出される。
【００４９】
次に、ブロックに含まれる文字セグメントとストロークデータとの関係性について図１０を参照して説明する。  
図１０は、ストローク形状から文字セグメントを推定した後、セグメントＩＤとセグメントに含まれるストロークＩＤ列、およびセグメントが示す種類の対応関係を示すテーブルである。図１０に示すテーブル１０００は、セグメントＩＤ１００１、ストロークＩＤの列１００２および種類１００３をそれぞれ対応づけて格納する。
【００５０】
セグメント１００１は、行を示すブロックに出現する文字列を示す。  
ストロークＩＤの列１００２は、図９（ｂ）に示すストロークのデータに基づいて、セグメントＩＤに示す文字を構成するために必要なストロークを格納する。  
種類１００３は、ストロークにより形成される文字を示す。例えば、最初の２ストロークは行頭文字を示し、ストローク３、４は、セグメント「文」「メ」「ひ」に用いられる、つまり複数の文字の候補となっていることを示す。図９（ｂ）同様、他の付加的な属性を付与しても構わない。また、ストローク形状からセグメントを推定する方法は、一般的なＯＣＲにおける検索および照合処理や、ベクトル列の類似性に基づく類似形状の検索および照合処理を用いればよい。
【００５１】
次に、ラティス構造の一例について図１１を参照して説明する。  
図１１は、行頭文字を除く部分のセグメントの連結関係を示したラティス構造であり、簡単のため図示しないが、ある文字セグメントと次に続く可能性のある文字セグメントとの間には、尤度のスコアが対応づけられる。このような連結関係に基づいて、セグメント間の重み付けに基づいて尤度の高い系列の経路を辿ることにより、文字認識処理を行なう。例えば、文字セグメント１１０１「文」から次に続く可能性のある文字セグメントとして、文字セグメント１１０２「字」と文字セグメント１１０３「学」との候補がある。この場合は、経路１１０４に対応づけられるスコアおよび経路１１０５に対応づけられるスコアに基づいて、スコアの高い経路を選択することにより文字セグメントを選択すればよい。
【００５２】
次に、文字認識処理が正しく行われる場合の一例を図１２に示す。  
図１２は、「文字認識」と手書き入力した場合に生成されるラティス構造の例である。正しい処理結果である「文字認識」という全体経路１２０１のほか、「文字言忍識」のような全体経路１２０２も存在する。ここで、ユーザ辞書に「認識」という単語が登録されている場合、ラティス構造中で「認識」を通るパスを優先させることで、適切な認識結果を出力することができる。
【００５３】
次に、本実施形態における手書きデータの文字認識結果を図１３に示す。  
図１３は、図６（ａ）を処理対象テキストデータとした場合に、本実施形態による文字認識処理を行なった場合の認識結果である。図１３に示すように、行頭の文字および記号や、隣接する文字と混じることなく、適切な結果が出力される。
【００５４】
以上に示した実施形態によれば、ユーザが作成または利用したテキストデータを登録したユーザ辞書に基づいて行頭文字または記号、および文字の区切りを推定することで、会社の部署名の略称、社内用語や記号などの特定分野の専門用語など一般的でない用語についても文字認識することができるので、文字認識誤りを低減し、文字認識精度を向上させることができる。
【００５５】
本実施形態に係る文字認識装置は、手書き文字情報を入力可能な端末（例えば、ＰＣやスマートフォン、タブレット等の端末）に用いられ得る。
【００５６】
テキストデータ収集部１０１と、ユーザ辞書生成部１０２と、レイアウト解析部１０４と、文字区切り推定部１０５と、ラティス生成部１０６と、ラティス探索部１０７と、出力部１０８は、中央演算処理装置（ＣＰＵ）、及びＣＰＵが用いるメモリにより実現されてよい。ユーザ辞書格納部１０３は、ＣＰＵが用いるメモリ、又は補助記憶装置により実現されてよい。
【００５７】
上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した文字認識装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷ、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の文字認識装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【００５８】
なお、本実施形態におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
【００５９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６０】
１００・・・文字認識装置、１０１・・・テキストデータ収集部、１０２・・・ユーザ辞書生成部、１０３・・・ユーザ辞書格納部、１０４・・・レイアウト解析部、１０５・・・文字区切り推定部、１０６・・・ラティス生成部、１０７・・・ラティス探索部、１０８・・・出力部、３０１，３０２・・・マーキング、４００・・・ユーザ辞書、４０１・・・ＩＤ、４０２・・・エントリ、４０３，１００３・・・種類、４０４・・・優先度、６０１，６０２・・・行頭文字、７０１・・・列、７０２・・・領域、７０３・・・ブロック、９０１・・・行頭文字、９０２・・・単語、９０３・・・ストロークＩＤ、９０４・・・座標列、１０００・・・テーブル、１００１・・・セグメント、１００２・・・ストロークＩＤの列、１００３・・・種類、１１０１，１１０２，１１０３・・・文字セグメント、１１０４，１１０５・・・経路、１２０１，１２０２・・・全体経路。
【図１】
2014067303.tif 000003
【図２】
2014067303.tif 000004
【図３】
2014067303.tif 000005
【図４】
2014067303.tif 000006
【図５】
2014067303.tif 000007
【図６】
2014067303.tif 000008
【図７】
2014067303.tif 000009
【図８】
2014067303.tif 000010
【図９】
2014067303.tif 000011
【図１０】
2014067303.tif 000012
【図１１】
2014067303.tif 000013
【図１２】
2014067303.tif 000014
【図１３】
2014067303.tif 000015