(57)【特許請求の範囲】
【請求項１】
文字列を受け付ける受付手段と、
前記受付手段によって受け付けられた文字列を既知語と未知語に分類する分類手段と、
前記分類手段によって未知語と分類された文字列を誤り語として検出し、前記分類手段によって未知語と分類された文字列が第１の文字列と第２の文字列の間にあり、該文字列が前記分類手段によって既知語と分類されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第３の文字列を誤り語として検出する検出手段
を具備し、
前記第３の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列である
ことを特徴とする情報処理装置。
【請求項２】
前記分類手段によって未知語と分類された文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、該文字列は未知語であるか否かを判断する第１の判断手段
をさらに具備し、
前記検出手段は、前記第１の判断手段によって未知語と判断された文字列を誤り語として検出し、前記第１の判断手段によって未知語と判断された文字列が第４の文字列と第５の文字列の間にあり、該文字列が前記分類手段によって既知語と分類されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第６の文字列を誤り語として検出し、
前記第６の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検出手段によって誤り語として検出された文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、該文字列は誤り語であるか否かを判断する第２の判断手段
をさらに具備することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記検出手段によって誤り語として検出された前記第３の文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、該第３の文字列は誤り語であるか否かを判断する第３の判断手段
をさらに具備することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記分類手段によって未知語と分類された文字列であって、該文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、該文字列は未知語であるか否かを判断する第４の判断手段
をさらに具備し、
前記検出手段は、前記第４の判断手段によって未知語と判断された文字列を誤り語として検出し、前記第４の判断手段によって未知語と判断された文字列が第７の文字列と第８の文字列の間にあり、該文字列が前記分類手段によって既知語と判断されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第９の文字列を誤り語として検出し、
前記第９の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列である
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
コンピュータを、
文字列を受け付ける受付手段と、
前記受付手段によって受け付けられた文字列を既知語と未知語に分類する分類手段と、
前記分類手段によって未知語と分類された文字列を誤り語として検出し、前記分類手段によって未知語と分類された文字列が第１の文字列と第２の文字列の間にあり、該文字列が前記分類手段によって既知語と分類されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第３の文字列を誤り語として検出する検出手段
として機能させ、
前記第３の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列である
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
文字列の誤りを検出する技術がある。
これに関連する技術として、例えば、特許文献１には、より正確な修正を行うことができる文章修正装置、文章修正システム、文章修正方法、文章修正プログラムを提供することを課題とし、ブログ等の独特の表現や口語的な表現の文章を修正ルールにしたがい修正部が修正した文章について、形態素解析部により形態素解析コストを算出し、算出した形態素解析コストを修正の判定に判定部が用い、また、算出した形態素解析コストを修正ルールのスコアリングに修正ルール評価部が用いることが開示されている。
【０００３】
また、例えば、特許文献２には、文字認識の後処理として形態素解析を行って、文字認識の誤りを検出する場合に、ランダムな誤りや切り出し不良による文字数が変わった場合には、解析不能となった直前の位置の解析結果の確からしさも低くなるので、誤りの修正対象を位置でなく、範囲とすることにより、解析不能となった位置と異なる認識誤りを修正することができるようにすることを目的とし、形態素解析が解析不能となった位置の近辺で解析が正しいと思われる部分と、誤りを含んでいると思われる部分とに分割し、誤りを含んでいる範囲を決定して、その部分を他と置き換えることにより、正しい文字認識を行うことが開示されている。
【０００４】
また、例えば、特許文献３には、日本語を対象とした文字認識装置や音声認識装置などのパターン認識装置における認識結果について、日本語解析によっては修正が困難となるカタカナ、アルファベット、数字又は記号の単語の修正が可能な誤認識修正方法を提供することを目的とし、文字認識装置などの認識結果について日本語解析により誤認識の修正処理を行うとともに、日本語解析を失敗した未知語の部分を、その候補文字に含まれる、又は該候補文字及びその類似文字に含まれるカタカナ、アルファベット、数字又は記号に修正する未知語処理を行い、この未知語処理は日本語解析を失敗したすべての部分について行ってもよいが、日本語解析を失敗した未知語の部分の品詞を普通名詞又はサ変名詞として次の日本語解析に成功した単語との接続を調べ、この接続が可能な未知語の部分にのみ未知語処理を行ってもよいことが開示されている。
【０００５】
また、例えば、特許文献４には、予め漢字２文字の高出現頻度の一般単語で出現頻度の順に格納した漢字単語テーブルを作成し、漢字列複合語内での漢字１文字あるいは漢字列の直後にひらがな列を有する漢字列の末尾に未知語が発生した場合に、漢字単語テーブルを検索して漢字２文字の訂正単語群を抽出し、原文上で置き換えられるべき位置の前後の単語との文法的な接続関係あるいは意味的な係り受け関係が成立する訂正候補を正解の訂正候補として選択することにより、訂正精度の向上、処理性能の向上ならびに脱字が出現する誤りにも対応して訂正候補を抽出する日本文訂正候補文字抽出方法を提供することを課題とし、その方法を実施するために、入力装置、入力処理部、入力日本文データベース、日本語単語辞書、文法辞書、未知語検出部、訂正候補文字抽出部、漢字単語テーブル、訂正候補選択部、日本語文書データベース、等の手段を使用し、漢字単語テーブルは、予め漢字２文字の高出現頻度の単語で前方文字あるいは後方文字を同一とする一般語の組について、それぞれ見出し、出現頻度、品詞、意味属性を対とし出現頻度の順に格納して、前方１文字あるいは後方１文字をキーとして索引し、未知語検出部は、日本語単語辞書及び文法辞書を用いた形態素解析によって、単語の位置的あるいは文法的に不連続な接続箇所の文字を未知語として検出し、訂正候補文字抽出部は漢字単語テーブルを用いて未知語を検出した際に、これに対応する訂正候補文字を複数文字単語の形式で抽出し、訂正候補選択部は抽出された訂正候補文字を含む単語について前後の単語との文法的な接続関係、意味的な承接関係あるいは単語の出現頻度を用いて訂正候補を選択することが開示されている。
【０００６】
また、例えば、特許文献５には、形態素解析を利用する文字認識後処理方式において、誤認識文字位置の判定能力が高くない場合にも、誤認識文字の高い訂正能力が期待できる方式を提供することを目的とし、各入力文字に対して文字認識を行って候補文字を検出し、その第１候補文字のみから文字列を作成して形態素解析を施し、そして、解析不能となる部分を抽出し、その文字列部（未知語部と称する）に対して未知語部の各文字の候補文字から作成可能な未知語部の文字列すべてに対して形態素解析を行い、最も評価値の高い文字列を選択する処理、あるいは未知語部の各文字に対し、誤認識文字位置の判定処理を行い、誤認識文字と判定された文字位置についてのみ、候補文字を順次代入することにより作成される未知語部の候補文字列に対して形態素解析を行い、最も評価値の高い文字列を選択する処理を実行して入力文字を最終的に推定することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２５７０２１号公報
【特許文献２】特開平０５−１２８２９６号公報
【特許文献３】特開平０２−１１８７８５号公報
【特許文献４】特開平０１−２８１５６１号公報
【特許文献５】特開昭６２−２８５１８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、文字列に誤りが含まれているが、その文字列が既知語であるために誤り語ではないと判断されてしまうことを抑制するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、文字列を受け付ける受付手段と、前記受付手段によって受け付けられた文字列を既知語と未知語に分類する分類手段と、前記分類手段によって未知語と分類された文字列を誤り語として検出し、前記分類手段によって未知語と分類された文字列が第１の文字列と第２の文字列の間にあり、該文字列が前記分類手段によって既知語と分類されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第３の文字列を誤り語として検出する検出手段を具備し、前記第３の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列であることを特徴とする情報処理装置である。
【００１０】
請求項２の発明は、前記分類手段によって未知語と分類された文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、該文字列は未知語であるか否かを判断する第１の判断手段をさらに具備し、前記検出手段は、前記第１の判断手段によって未知語と判断された文字列を誤り語として検出し、前記第１の判断手段によって未知語と判断された文字列が第４の文字列と第５の文字列の間にあり、該文字列が前記分類手段によって既知語と分類されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第６の文字列を誤り語として検出し、前記第６の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列であることを特徴とする請求項１に記載の情報処理装置である。
【００１１】
請求項３の発明は、前記検出手段によって誤り語として検出された文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、該文字列は誤り語であるか否かを判断する第２の判断手段をさらに具備することを特徴とする請求項１又は２に記載の情報処理装置である。
【００１２】
請求項４の発明は、前記検出手段によって誤り語として検出された前記第３の文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、該第３の文字列は誤り語であるか否かを判断する第３の判断手段をさらに具備することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置である。
【００１３】
請求項５の発明は、前記分類手段によって未知語と分類された文字列であって、該文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、該文字列は未知語であるか否かを判断する第４の判断手段をさらに具備し、前記検出手段は、前記第４の判断手段によって未知語と判断された文字列を誤り語として検出し、前記第４の判断手段によって未知語と判断された文字列が第７の文字列と第８の文字列の間にあり、該文字列が前記分類手段によって既知語と判断されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第９の文字列を誤り語として検出し、前記第９の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列であることを特徴とする請求項１から４のいずれか一項に記載の情報処理装置である。
【００１４】
請求項６の発明は、コンピュータを、文字列を受け付ける受付手段と、前記受付手段によって受け付けられた文字列を既知語と未知語に分類する分類手段と、前記分類手段によって未知語と分類された文字列を誤り語として検出し、前記分類手段によって未知語と分類された文字列が第１の文字列と第２の文字列の間にあり、該文字列が前記分類手段によって既知語と分類されており、該既知語の数が予め定めた数未満又は以下である場合は、該既知語によって構成されている第３の文字列を誤り語として検出する検出手段として機能させ、前記第３の文字列は、前記誤り語と隣り合う単語を結合して生成された文字列であることを特徴とする情報処理プログラムである。
【発明の効果】
【００１５】
請求項１の情報処理装置によれば、文字列に誤りが含まれているが、その文字列が既知語であるために誤り語ではないと判断されてしまうことを抑制することができるようになる。
【００１６】
請求項２の情報処理装置によれば、文字コードに関する規則に沿っているか否かによって未知語であるか否かを判断することができるようになる。
【００１７】
請求項３の情報処理装置によれば、文字コードに関する規則に沿っているか否かによって誤り語であるか否かを判断することができるようになる。
【００１８】
請求項４の情報処理装置によれば、文字列の長さによって未知語であるか否かを判断することができるようになる。
【００１９】
請求項５の情報処理装置によれば、文字列の長さによって誤り語であるか否かを判断することができるようになる。
【００２０】
請求項６の情報処理プログラムによれば、文字列に誤りが含まれているが、その文字列が既知語であるために誤り語ではないと判断されてしまうことを抑制することができるようになる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】未知語の検出処理例を示す説明図である。
【図３】未知語に挟まれている語の検出処理例を示す説明図である。
【図４】誤り語の検出処理例を示す説明図である。
【図５】第１の実施の形態による処理例を示すフローチャートである。
【図６】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図７】第２の実施の形態による処理例を示すフローチャートである。
【図８】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図９】第３の実施の形態による処理例を示すフローチャートである。
【図１０】第４の実施の形態の構成例についての概念的なモジュール構成図である。
【図１１】第４の実施の形態による処理例を示すフローチャートである。
【図１２】第５の実施の形態の構成例についての概念的なモジュール構成図である。
【図１３】第５の実施の形態による処理例を示すフローチャートである。
【図１４】第５の実施の形態による別の処理例を示すフローチャートである。
【図１５】第６の実施の形態の構成例についての概念的なモジュール構成図である。
【図１６】第６の実施の形態による処理例を示すフローチャートである。
【図１７】第７の実施の形態の構成例についての概念的なモジュール構成図である。
【図１８】第７の実施の形態による処理例を示すフローチャートである。
【図１９】第７の実施の形態による別の処理例を示すフローチャートである。
【図２０】第８の実施の形態の構成例についての概念的なモジュール構成図である。
【図２１】第９の実施の形態の構成例についての概念的なモジュール構成図である。
【図２２】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
まず、以下に説明する実施の形態の概略を説明する。この実施の形態は、テキストを処理対象として、テキストに含まれる誤りを検出する技術に属する。特に、単語解析の未知語に基づく技術に属する。
いま、あるテキストが、誤りを発生しうる変換によって、変換されたとする。誤りを発生しうる変換とは、人間によるタイピング（キーボード、タッチパネル等を用いた手入力）や文字認識（画像である文字をテキストである文字に変換する技術であって、認識率は１００％とは限らない）等である。
一般に、単語に基づく文字列の誤り検出は、単語解析を要する。単語解析とは、不特定多数の単文字の連なりである文字列に対して、単語（又は、その領域の切れ目）の連なりを出力する処理である。単語に基づく文字列の誤り検出技術のうち、予め定められた禁則に基づくものにおいて、未知語を禁則とする誤り検出の技術がある。未知語を禁則とする文字列の誤り検出とは、具体的には、単語辞書に登録がない、又は、文法規則に則さないとして、単語解析が不能となる領域（すなわち、未知語）を、誤りを含む領域として検出するものである。具体的には、辞書（品詞等の情報付きの単語リスト）に登録されているか否かを検証する処理、形態素解析等が該当する。
【００２３】
図２は、未知語の検出処理例を示す説明図である。元の文字列（誤りのない文字列）である元文字列２１０「使命感をプロフェッショナリズムとして大切に」に対して、誤りを発生しうる変換により、受付文字列２２０「使命感をプロフエッシ∋ナリズムとして大切に」を得る。ここでの誤りは、「エ」（元文字列２１０内では「ェ」）と「∋」（元文字列２１０内では「ョ」）の２つである。
この誤りを含む受付文字列２２０に対して、単語解析処理と未知語を禁則とする文字列の誤り検出処理を行う。すると、図２の例に示すような単語情報２３０を得る。この例では、その処理の結果、既知語（辞書に単語として登録されている単語）は、名詞、助詞等の品詞が解析結果として付されており、既知語ではない語は、品詞のかわりに未知語が解析結果として付されている。具体的には、「プロフエッシ∋ナリズム」が、「プロフエッシ」「∋」「ナリズム」と解析され、うち、「プロフエッシ」（文字列２４０）と「ナリズム」（文字列２５０）が未知語として、「∋」は未知語でない語となっている。
【００２４】
さて、未知語のみを誤りを含む領域として検出してしまう場合は、図２の例では、文字列２４０によって「エ」（元文字列２１０内では「ェ」）の誤りは正しく検出されるが、「∋」（元文字列２１０内では「ョ」）は未知語でないために検出されない。すなわち、誤りを含む領域は、未知語とそうでない語に分割される場合があり、このとき、誤りを含む文字列が、未知語に含まれない場合がある。
以下に説明する実施の形態は、未知語を、誤りを含む領域として検出する。さらに、未知語に挟まれる語を、誤りを含む領域として検出する。前述の通り、誤りを含む領域は、未知語とそうでない語に分割される場合があり、このとき、誤りを含む文字列が、未知語に含まれない場合がある。
しかし、このような状況下では、たとえ誤りが未知語に含まれずとも、その周辺に未知語が発生することがある。実施の形態では、未知語に挟まれる語が、誤りを含む領域として検出される。
この様子を図３の例に示す。図３は、未知語に挟まれている語の検出処理例を示す説明図である。未知語である「プロフエッシ」（文字列３４０）と「ナリズム」（文字列３５０）によって、誤りを含むが、未知語ではない語である「∋」（文字列３４５）が誤り語として検出される。
【００２５】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２６】
第１の実施の形態である情報処理装置は、対象としている文字列内に誤りが含まれている領域を検出するものであって、図１の例に示すように、単語解析モジュール１１０、単語分類モジュール１２０、誤り語検出モジュール１３０、誤り文字列出力モジュール１４０を有している。
単語解析モジュール１１０は、単語分類モジュール１２０と接続されており、文字列を受け付けて、その文字列内の単語を抽出して、抽出した単語を単語分類モジュール１２０に渡す。なお、単語解析モジュール１１０による解析結果としての単語には、既知語である文字列、未知語である文字列がある。
単語分類モジュール１２０は、単語解析モジュール１１０、誤り語検出モジュール１３０と接続されており、単語解析モジュール１１０より単語を受け取り、その単語を既知語と未知語に分類し、分類した既知語の単語と未知語の単語を誤り語検出モジュール１３０に渡す。また、単語解析モジュール１１０と単語分類モジュール１２０によって、前述した「単語解析処理と既知語と未知語の分類処理」を行っている。
【００２７】
誤り語検出モジュール１３０は、単語分類モジュール１２０、誤り文字列出力モジュール１４０と接続されており、誤り語検出モジュール１３０は、単語分類モジュール１２０によって未知語と分類された文字列を誤り語として検出し、単語分類モジュール１２０によって未知語と分類された第１の文字列と第２の文字列の間にあり、単語分類モジュール１２０によって既知語と分類されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第３の文字列を誤り語として検出する。つまり、単語分類モジュール１２０より既知語と未知語を受け取り、その既知語と未知語から誤り語を検出して、検出した誤り語を誤り文字列出力モジュール１４０へ出力する。
誤り文字列出力モジュール１４０は、誤り語検出モジュール１３０と接続されており、誤り語検出モジュール１３０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。具体的には、誤り語検出モジュール１３０によって検出された誤り語を単語解析モジュール１１０が受け付けた文字列の順に並べ、隣り合う単語を結合して誤りを含む文字列として生成する。
【００２８】
図４は、誤り語の検出処理例を示す説明図である。
単語解析モジュール１１０が受け付けた文字列から、単語解析モジュール１１０による単語解析によって、単語列が得られる。その単語列について、単語分類モジュール１２０によって未知語とそれ以外の語（すなわち、既知語）に分類する。誤り語検出モジュール１３０によって、ある未知語と、次に出現する未知語について、その間にある既知語が、予め定められた整数Ｎ未満又は以下である場合、この既知語を、誤り語として出力する。また、未知語も誤り語として出力する。
図４の例では、誤り語検出モジュール１３０は、整数Ｎを２として、未知語に挟まれている既知語の数が２以下の場合は、その既知語も誤り語としている。具体的には、図４の例では、未知語４１４、未知語４２０、未知語４２８は未知語であるので、誤り語とされ、既知語４１６と既知語４１８は、未知語４１４と未知語４２０に挟まれており、その語数が２であるので、誤り語とされる。ただし、既知語４２２、４２４、４２６は、未知語４２０と未知語４２８に挟まれているが、その語数が３であるので、誤り語とはされない。結局、誤り文字列出力モジュール１４０は、未知語４１４、既知語４１６、既知語４１８、未知語４２０、未知語４２８を誤り文字列として出力することになる。
【００２９】
図５は、第１の実施の形態による処理例を示すフローチャートである。なお、Ｗｋは、単語解析で得られたｋ番目の語を表す。また、Ｍは、単語解析で得られた語数を表す。
ステップＳ５０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ５０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ５０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ５０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ５１０へ進み、それ以外の場合はステップＳ５２６へ進む。
ステップＳ５１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ５１２へ進み、それ以外の場合はステップＳ５２２へ進む。
ステップＳ５１２では、誤り語検出モジュール１３０が、Ｗｋを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ５１４では、誤り語検出モジュール１３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ５１６へ進み、それ以外の場合はステップＳ５２４へ進む。ここでの、変数ｋは後に出現した未知語の順番（０から数えた場合の順番）であり、変数ｓはその前に出現した未知語の順番（０から数えた場合の順番）である。したがって、ここでの判断は、未知語に挟まれた既知語の数がＮ以下であるか否かの判断である。
【００３０】
ステップＳ５１６では、誤り語検出モジュール１３０が、ｋ＝＝ｓであるか否か（ｋとｓは等しいか否か）を判断し、ｋ＝＝ｓである場合はステップＳ５２４へ進み、それ以外の場合はステップＳ５１８へ進む。
ステップＳ５１８では、誤り語検出モジュール１３０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。ここでのＷｓは、既知語である。
ステップＳ５２０では、誤り語検出モジュール１３０が、変数ｓにｓ＋１を代入し、ステップＳ５１６からの処理を行う。
ステップＳ５２２では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ５０８に戻る。
ステップＳ５２４では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ５２２に進む。
ステップＳ５２６では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。なお、ステップＳ５１２で、未知語を誤り語として出力した後に、その未知語の前にある既知語であるが誤り語を出力する場合がある。この場合は、文字列に沿った出力とはならない。そこで、誤り文字列出力モジュール１４０は、例えば、誤り語にはフラグを付して、単語解析モジュール１１０が受け付けた文字列の順に、そのフラグが付された誤り語を順に出力するようにしてもよい。
【００３１】
図６は、第２の実施の形態の構成例についての概念的なモジュール構成図である。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する（以下、同様である）。
文字列の誤り検出において、文字コード制限を行う実施の形態を示す。
文字コード制限を行うことで、誤りを含まない既知語を、誤り語として検出することが低減される。例えば、単語解析モジュール１１０、単語分類モジュール１２０による処理が日本語のみを対象とする場合、英語の単語が未知語として検出される割合が高い。これは、誤りを含まない既知語を、誤り語として検出することになる。
そこで、文字コード制限において、単語解析と単語分類によって検出された未知語のうち、漢字・ひらがな・カタカナを含む未知語のみを、未知語として出力する。
【００３２】
第２の実施の形態は、単語解析モジュール１１０、単語分類モジュール１２０、文字コード制限モジュール６１０、誤り語検出モジュール６３０、誤り文字列出力モジュール１４０を有している。
【００３３】
単語分類モジュール１２０は、単語解析モジュール１１０、文字コード制限モジュール６１０、誤り語検出モジュール６３０と接続されており、単語解析モジュール１１０より単語を受け取り、その単語を既知語と未知語に分類し、分類した既知語を誤り語検出モジュール６３０に渡し、未知語を文字コード制限モジュール６１０へ渡す。
文字コード制限モジュール６１０は、単語分類モジュール１２０、誤り語検出モジュール６３０と接続されており、単語分類モジュール１２０によって未知語と分類された文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、その文字列は未知語であるか否かを判断する。予め定めた文字コードに関する規則として、例えば、前述のように、漢字・ひらがな・カタカナの文字コードを含む単語を未知語とする規則であってもよいし、漢字・ひらがな・カタカナの文字コードと英数字の文字コードとが混在する単語を未知語とする規則であってもよいし、英数字のみの文字コードからなる単語は未知語としないとする規則であってもよい。さらに、単語解析モジュール１１０と単語分類モジュール１２０の対象とする言語に合わせて規則を定めるようにしてもよい。つまり、単語解析モジュール１１０と単語分類モジュール１２０の対象とする言語が主に用いている文字コードで、単語分類モジュール１２０から受け取った未知語が構成されている場合は、その未知語は未知語として誤り語検出モジュール６３０に渡し、それ以外の場合は、既知語として誤り語検出モジュール６３０に渡すような規則である。文字コード制限モジュール６１０が未知語（いわば第２の未知語）と判断するのは、単語分類モジュール１２０によって未知語（いわば第１の未知語）と分類されたものであって、さらに、予め定めた文字コードに関する規則に沿っているものである。
【００３４】
誤り語検出モジュール６３０は、単語分類モジュール１２０、文字コード制限モジュール６１０、誤り文字列出力モジュール１４０と接続されており、文字コード制限モジュール６１０によって未知語と判断された文字列を誤り語として検出し、文字コード制限モジュール６１０によって未知語と判断された第４の文字列と第５の文字列の間にあり、単語分類モジュール１２０によって既知語（文字コード制限モジュール６１０によって未知語ではないと判断された単語（既知語）を含めてもよい）と分類されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第６の文字列を誤り語として検出する。そして、検出した誤り語を誤り文字列出力モジュール１４０へ出力する。
誤り文字列出力モジュール１４０は、誤り語検出モジュール６３０と接続されており、誤り語検出モジュール１３０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。
【００３５】
図７は、第２の実施の形態による処理例を示すフローチャートである。
ステップＳ７０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ７０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ７０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ７０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ７１０へ進み、それ以外の場合はステップＳ７２８へ進む。
ステップＳ７１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ７１２へ進み、それ以外の場合はステップＳ７２４へ進む。
ステップＳ７１２では、文字コード制限モジュール６１０が、Ｗｋが予め定められた文字コードを含むか否かを判断し、含む場合はステップＳ７１４へ進み、それ以外の場合はステップＳ７２４へ進む。
ステップＳ７１４では、誤り語検出モジュール６３０が、Ｗｋを誤り語として誤り文字列出力モジュール１４０へ出力する。
【００３６】
ステップＳ７１６では、誤り語検出モジュール６３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ７１８へ進み、それ以外の場合はステップＳ７２６へ進む。
ステップＳ７１８では、誤り語検出モジュール６３０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ７２６へ進み、それ以外の場合はステップＳ７２０へ進む。
ステップＳ７２０では、誤り語検出モジュール６３０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ７２２では、誤り語検出モジュール６３０が、変数ｓにｓ＋１を代入し、ステップＳ７１８からの処理を行う。
ステップＳ７２４では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ７０８に戻る。
ステップＳ７２６では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ７２４に進む。
ステップＳ７２８では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００３７】
図８は、第３の実施の形態の構成例についての概念的なモジュール構成図である。
文字列の誤り検出において、文字コード制限を行う実施の形態を示す。第２の実施の形態と異なるのは、誤り語検出モジュール１３０の後に文字コード制限を行うことである。
第３の実施の形態は、単語解析モジュール１１０、単語分類モジュール１２０、誤り語検出モジュール１３０、文字コード制限モジュール８１０、誤り文字列出力モジュール１４０を有している。
【００３８】
誤り語検出モジュール１３０は、単語分類モジュール１２０、文字コード制限モジュール８１０と接続されており、単語分類モジュール１２０によって未知語と分類された文字列を誤り語として検出し、単語分類モジュール１２０によって未知語と分類された第１の文字列と第２の文字列の間にあり、単語分類モジュール１２０によって既知語と分類されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第３の文字列を誤り語として検出する。つまり、単語分類モジュール１２０より既知語と未知語を受け取り、その既知語と未知語から誤り語を検出して、検出した誤り語を文字コード制限モジュール８１０へ出力する。
文字コード制限モジュール８１０は、誤り語検出モジュール１３０、誤り文字列出力モジュール１４０と接続されており、誤り語検出モジュール１３０によって誤り語として検出された文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、その文字列は誤り語であるか否かを判断する。そして、誤り語を誤り文字列出力モジュール１４０へ出力する。予め定めた文字コードに関する規則は、前述の第２の実施の形態の文字コード制限モジュール６１０が用いた規則と同等である。文字コード制限モジュール８１０が誤り語（いわば第２の誤り語）と判断するのは、誤り語検出モジュール１３０によって誤り語（いわば第１の誤り語）として検出されたものであって、さらに、予め定めた文字コードに関する規則に沿っているものである。
誤り文字列出力モジュール１４０は、文字コード制限モジュール８１０と接続されており、文字コード制限モジュール８１０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。
【００３９】
図９は、第３の実施の形態による処理例を示すフローチャートである。
ステップＳ９０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ９０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ９０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ９０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ９１０へ進み、それ以外の場合はステップＳ９２８へ進む。
ステップＳ９１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ９１２へ進み、それ以外の場合はステップＳ９２４へ進む。
ステップＳ９１２では、誤り語検出モジュール１３０が、Ｗｋを誤り語として文字コード制限モジュール８１０へ出力する。
ステップＳ９１４では、誤り語検出モジュール１３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ９１６へ進み、それ以外の場合はステップＳ９２６へ進む。
【００４０】
ステップＳ９１６では、誤り語検出モジュール１３０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ９２６へ進み、それ以外の場合はステップＳ９１８へ進む。
ステップＳ９１８では、文字コード制限モジュール８１０が、Ｗｓが予め定められた文字コードを含むか否かを判断し、含む場合はステップＳ９２０へ進み、それ以外の場合はステップＳ９２２へ進む。
ステップＳ９２０では、文字コード制限モジュール８１０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ９２２では、誤り語検出モジュール１３０が、変数ｓにｓ＋１を代入し、ステップＳ９１６からの処理を行う。
ステップＳ９２４では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ９０８に戻る。
ステップＳ９２６では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ９２４に進む。
ステップＳ９２８では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００４１】
図１０は、第４の実施の形態の構成例についての概念的なモジュール構成図である。
文字列の誤り検出において、文字コード制限を行う実施の形態を示す。第４の実施の形態は、第２の実施の形態と第３の実施の形態を組み合わせたものである。
第４の実施の形態は、単語解析モジュール１１０、単語分類モジュール１２０、文字コード制限モジュール６１０、誤り語検出モジュール６３０、文字コード制限モジュール８１０、誤り文字列出力モジュール１４０を有している。
【００４２】
誤り語検出モジュール６３０は、単語分類モジュール１２０、文字コード制限モジュール６１０、文字コード制限モジュール８１０と接続されており、文字コード制限モジュール６１０によって未知語と判断された文字列を誤り語として検出し、文字コード制限モジュール６１０によって未知語と判断された第４の文字列と第５の文字列の間にあり、単語分類モジュール１２０によって既知語（文字コード制限モジュール６１０によって未知語ではないと判断された単語（既知語）を含めてもよい）と分類されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第６の文字列を誤り語として検出する。そして、検出した誤り語を文字コード制限モジュール８１０へ出力する。
文字コード制限モジュール８１０は、誤り語検出モジュール６３０、誤り文字列出力モジュール１４０と接続されており、誤り語検出モジュール６３０によって誤り語として検出された第６の文字列を構成している文字の文字コードが予め定めた文字コードに関する規則に沿っているか否かによって、その第６の文字列は誤り語であるか否かを判断する。そして、誤り語を誤り文字列出力モジュール１４０へ出力する。予め定めた文字コードに関する規則は、前述の第２の実施の形態の文字コード制限モジュール６１０が用いた規則と同等である。
誤り文字列出力モジュール１４０は、文字コード制限モジュール８１０と接続されており、文字コード制限モジュール８１０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。
【００４３】
図１１は、第４の実施の形態による処理例を示すフローチャートである。
ステップＳ１１０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ１１０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ１１０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ１１０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ１１１０へ進み、それ以外の場合はステップＳ１１３０へ進む。
ステップＳ１１１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ１１１２へ進み、それ以外の場合はステップＳ１１２６へ進む。
ステップＳ１１１２では、文字コード制限モジュール６１０が、Ｗｋが予め定められた文字コードを含むか否かを判断し、含む場合はステップＳ１１１４へ進み、それ以外の場合はステップＳ１１２６へ進む。
ステップＳ１１１４では、誤り語検出モジュール６３０が、Ｗｋを誤り語として文字コード制限モジュール８１０へ出力する。
ステップＳ１１１６では、誤り語検出モジュール６３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ１１１８へ進み、それ以外の場合はステップＳ１１２８へ進む。
【００４４】
ステップＳ１１１８では、誤り語検出モジュール６３０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ１１２８へ進み、それ以外の場合はステップＳ１１２０へ進む。
ステップＳ１１２０では、文字コード制限モジュール８１０が、Ｗｓが予め定められた文字コードを含むか否かを判断し、含む場合はステップＳ１１２２へ進み、それ以外の場合はステップＳ１１２４へ進む。
ステップＳ１１２２では、文字コード制限モジュール８１０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ１１２４では、文字コード制限モジュール８１０が、変数ｓにｓ＋１を代入し、ステップＳ１１１８からの処理を行う。
ステップＳ１１２６では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ１１０８に戻る。
ステップＳ１１２８では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ１１２６に進む。
ステップＳ１１３０では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００４５】
図１２は、第５の実施の形態の構成例についての概念的なモジュール構成図である。
文字列の誤り検出において、文字数制限を行う実施の形態を示す。
文字数制限を行うことで、誤りを含まない既知語を、誤り語として検出することが低減される。例えば、既知語の文字数が長い場合、これは、誤り語でない割合が高い。しかし、前述の実施の形態によれば、未知語に挟まれ、誤り語として検出される場合があり得る。
そこで、予め定められた文字数よりも短い又は以下である文字数である既知語だけを、誤り語として出力する。
【００４６】
第５の実施の形態は、単語解析モジュール１１０、単語分類モジュール１２０、誤り語検出モジュール１３０、文字数制限モジュール１２１０、誤り文字列出力モジュール１４０を有している。
誤り語検出モジュール１３０は、単語分類モジュール１２０、文字数制限モジュール１２１０と接続されており、誤り語検出モジュール１３０は、単語分類モジュール１２０によって未知語と分類された文字列を誤り語として検出し、単語分類モジュール１２０によって未知語と分類された第１の文字列と第２の文字列の間にあり、単語分類モジュール１２０によって既知語と分類されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第３の文字列を誤り語として検出する。つまり、単語分類モジュール１２０より既知語と未知語を受け取り、その既知語と未知語から誤り語を検出して、検出した誤り語を文字数制限モジュール１２１０へ出力する。
【００４７】
文字数制限モジュール１２１０は、誤り語検出モジュール１３０、誤り文字列出力モジュール１４０と接続されている。文字数制限モジュール１２１０は、誤り語検出モジュール１３０によって誤り語として検出された第３の文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、その第３の文字列は誤り語であるか否かを判断する。つまり、誤り語検出モジュール１３０によって誤り語として検出された第３の文字列の文字列長が予め定めた長さ未満又は以下である場合は、その第３の文字列を誤り語として検出する。前述の例では、未知語に挟まれており、Ｎ語以下の既知語であって、さらに、その未知語に挟まれている全体の既知語の長さ（つまり、未知語に挟まれている既知語の文字列長の和）が、予め定めた長さ未満又は以下である場合に、その第３の文字列を誤り語として検出する。文字数制限モジュール１２１０が誤り語（いわば第３の誤り語）と判断するのは、誤り語検出モジュール１３０によって誤り語（いわば第１の誤り語）として検出されたものであって、さらに、第３の文字列の文字列長が予め定めた長さ未満又は以下であるものである。そして、誤り語を誤り文字列出力モジュール１４０へ出力する。
【００４８】
また、未知語に挟まれており、Ｎ語以下の既知語であって、さらに、その未知語に挟まれている各既知語の長さが、予め定めた長さ未満又は以下である場合に、その第３の文字列を誤り語として検出するようにしてもよい。なお、未知語に挟まれている各既知語の文字列長のうち、１つでもその既知語の文字列長が、予め定めた長さ未満又は以下である場合に、その第３の文字列（未知語に挟まれている全ての既知語）を誤り語として検出するようにしてもよい。また、未知語に挟まれている各既知語の文字列長のうち、全てのその既知語の文字列長が、予め定めた長さ未満又は以下である場合に、その第３の文字列（未知語に挟まれている全ての既知語）を誤り語として検出するようにしてもよい。また、未知語に挟まれている各既知語の文字列長のうち、その既知語の文字列長が、予め定めた長さ未満又は以下である場合に、その既知語を誤り語として検出するようにしてもよい。つまり、未知語に挟まれており、Ｎ語以下の既知語であっても、誤り語として検出するものと誤り語ではないものとがあることになる。
【００４９】
誤り文字列出力モジュール１４０は、文字数制限モジュール１２１０と接続されており、文字数制限モジュール１２１０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。
【００５０】
図１３は、第５の実施の形態による処理例を示すフローチャートである。
ステップＳ１３０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ１３０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ１３０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ１３０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ１３１０へ進み、それ以外の場合はステップＳ１３２８へ進む。
ステップＳ１３１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ１３１２へ進み、それ以外の場合はステップＳ１３２４へ進む。
ステップＳ１３１２では、誤り語検出モジュール１３０が、Ｗｋを誤り語として文字数制限モジュール１２１０へ出力する。また、誤り文字列出力モジュール１４０へ出力してもよい。
ステップＳ１３１４では、誤り語検出モジュール１３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ１３１６へ進み、それ以外の場合はステップＳ１３２６へ進む。
【００５１】
ステップＳ１３１６では、文字数制限モジュール１２１０が、ＷｓからＷｋ−１までの合計の文字列長（ＷｓからＷｋ−１までの文字列を連結させた場合の文字列長）が予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１３１８へ進み、それ以外の場合はステップＳ１３２６へ進む。
ステップＳ１３１８では、文字数制限モジュール１２１０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ１３２６へ進み、それ以外の場合はステップＳ１３２０へ進む。
ステップＳ１３２０では、文字数制限モジュール１２１０が、Ｗｓを誤り語として文字数制限モジュール１２１０へ出力する。
ステップＳ１３２２では、文字数制限モジュール１２１０が、変数ｓにｓ＋１を代入し、ステップＳ１３１８からの処理を行う。
ステップＳ１３２４では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ１３０８に戻る。
ステップＳ１３２６では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ１３２４に進む。
ステップＳ１３２８では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００５２】
図１４は、第５の実施の形態による別の処理例を示すフローチャートである。
ステップＳ１４０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ１４０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ１４０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ１４０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ１４１０へ進み、それ以外の場合はステップＳ１４２８へ進む。
ステップＳ１４１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ１４１２へ進み、それ以外の場合はステップＳ１４２４へ進む。
ステップＳ１４１２では、誤り語検出モジュール１３０が、Ｗｋを誤り語として文字数制限モジュール１２１０へ出力する。また、誤り文字列出力モジュール１４０へ出力してもよい。
ステップＳ１４１４では、誤り語検出モジュール１３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ１４１６へ進み、それ以外の場合はステップＳ１４２６へ進む。
【００５３】
ステップＳ１４１６では、文字数制限モジュール１２１０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ１４２６へ進み、それ以外の場合はステップＳ１４１８へ進む。
ステップＳ１４１８では、文字数制限モジュール１２１０が、Ｗｓの文字列長（個々の文字列長）が予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１４２０へ進み、それ以外の場合はステップＳ１４２２へ進む。
ステップＳ１４２０では、文字数制限モジュール１２１０が、Ｗｓを誤り語として文字数制限モジュール１２１０へ出力する。
ステップＳ１４２２では、文字数制限モジュール１２１０が、変数ｓにｓ＋１を代入し、ステップＳ１４１６からの処理を行う。
ステップＳ１４２４では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ１４０８に戻る。
ステップＳ１４２６では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ１４２４に進む。
ステップＳ１４２８では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００５４】
図１５は、第６の実施の形態の構成例についての概念的なモジュール構成図である。
文字列の誤り検出において、文字数制限を行う実施の形態を示す。第５の実施の形態と異なるのは、単語分類モジュール１２０によって既知語であると分類されたものに文字数制限を行うことである。
第６の実施の形態は、単語解析モジュール１１０、単語分類モジュール１２０、文字数制限モジュール１５１０、誤り語検出モジュール１５３０、誤り文字列出力モジュール１４０を有している。
【００５５】
単語分類モジュール１２０は、文字数制限モジュール１５１０、誤り語検出モジュール１５３０と接続されており、文字数制限モジュール１５１０へ未知語、誤り語検出モジュール１５３０へ既知語を出力する。
文字数制限モジュール１５１０は、単語分類モジュール１２０、誤り語検出モジュール１５３０と接続されており、単語分類モジュール１２０によって未知語と分類された文字列であって、その文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、その文字列は未知語であるか否かを判断する。つまり、単語分類モジュール１２０によって未知語と分類された文字列であって、その文字列の文字列長が予め定めた長さ未満又は以下である場合に未知語であると判断する。逆に、単語分類モジュール１２０によって未知語と分類された文字列であっても、その文字列の文字列長が予め定めた長さ未満又は以下ではない場合には未知語ではないと判断することになる。
【００５６】
誤り語検出モジュール１５３０は、単語分類モジュール１２０、文字数制限モジュール１５１０、誤り文字列出力モジュール１４０と接続されており、文字数制限モジュール１５１０によって未知語と判断された文字列を誤り語として検出し、文字数制限モジュール１５１０によって未知語と分類された第７の文字列と第８の文字列の間にあり、単語分類モジュール１２０によって既知語と判断されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第９の文字列を誤り語として検出する。そして、検出した誤り語を誤り文字列出力モジュール１４０へ出力する。
誤り文字列出力モジュール１４０は、誤り語検出モジュール１５３０と接続されており、誤り語検出モジュール１５３０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。
【００５７】
図１６は、第６の実施の形態による処理例を示すフローチャートである。
ステップＳ１６０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ１６０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ１６０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ１６０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ１６１０へ進み、それ以外の場合はステップＳ１６２８へ進む。
ステップＳ１６１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ１６１２へ進み、それ以外の場合はステップＳ１６２４へ進む。
ステップＳ１６１２では、文字数制限モジュール１５１０が、Ｗｋが予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１６１４へ進み、それ以外の場合はステップＳ１６２４へ進む。
ステップＳ１６１４では、誤り語検出モジュール１５３０が、Ｗｋを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ１６１６では、誤り語検出モジュール１５３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ１６１８へ進み、それ以外の場合はステップＳ１６２６へ進む。
【００５８】
ステップＳ１６１８では、誤り語検出モジュール１５３０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ１６２６へ進み、それ以外の場合はステップＳ１６２０へ進む。
ステップＳ１６２０では、誤り語検出モジュール１５３０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ１６２２では、誤り語検出モジュール１５３０が、変数ｓにｓ＋１を代入し、ステップＳ１６１８からの処理を行う。
ステップＳ１６２４では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ１６０８に戻る。
ステップＳ１６２６では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ１６２４に進む。
ステップＳ１６２８では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００５９】
図１７は、第７の実施の形態の構成例についての概念的なモジュール構成図である。
文字列の誤り検出において、文字数制限を行う実施の形態を示す。第７の実施の形態は、第５の実施の形態と第６の実施の形態を組み合わせたものである。
第７の実施の形態は、単語解析モジュール１１０、単語分類モジュール１２０、文字数制限モジュール１５１０、誤り語検出モジュール１５３０、文字数制限モジュール１２１０、誤り文字列出力モジュール１４０を有している。
誤り語検出モジュール１５３０は、単語分類モジュール１２０、文字数制限モジュール１５１０、文字数制限モジュール１２１０と接続されており、文字数制限モジュール１５１０によって未知語と分類された文字列を誤り語として検出し、文字数制限モジュール１５１０によって未知語と分類された第７の文字列と第８の文字列の間にあり、単語分類モジュール１２０によって既知語と判断されており、その既知語の数が予め定めた数未満又は以下である場合は、その既知語によって構成されている第９の文字列を誤り語として検出する。そして、検出した誤り語を文字数制限モジュール１２１０へ出力する。
文字数制限モジュール１２１０は、誤り語検出モジュール１５３０、誤り文字列出力モジュール１４０と接続されており、誤り語検出モジュール１５３０によって誤り語として検出された第９の文字列の文字列長が予め定めた長さ未満又は以下であるか否かによって、その第９の文字列は誤り語であるか否かを判断する。つまり、誤り語検出モジュール１５３０によって誤り語として検出された第９の文字列の文字列長が予め定めた長さ未満又は以下である場合は、その第９の文字列を誤り語として検出する。前述の例では、未知語に挟まれており、Ｎ語以下の既知語であって、さらに、その未知語に挟まれている全体の既知語の長さ（つまり、未知語に挟まれている既知語の文字列長の和）が、予め定めた長さ未満又は以下である場合に、その第９の文字列を誤り語として検出する。そして、誤り語を誤り文字列出力モジュール１４０へ出力する。
誤り文字列出力モジュール１４０は、文字数制限モジュール１２１０と接続されており、文字数制限モジュール１２１０より誤り語を受け取り、その誤り語から誤り文字列を生成し、生成した誤り文字列を出力する。
【００６０】
図１８は、第７の実施の形態による処理例を示すフローチャートである。
ステップＳ１８０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ１８０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ１８０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ１８０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ１８１０へ進み、それ以外の場合はステップＳ１８３０へ進む。
ステップＳ１８１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ１８１２へ進み、それ以外の場合はステップＳ１８２６へ進む。
ステップＳ１８１２では、文字数制限モジュール１５１０が、Ｗｋが予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１８１４へ進み、それ以外の場合はステップＳ１８２６へ進む。
ステップＳ１８１４では、誤り語検出モジュール１５３０が、Ｗｋを誤り語として文字数制限モジュール１２１０へ出力する。また、誤り文字列出力モジュール１４０へ出力してもよい。
ステップＳ１８１６では、誤り語検出モジュール１５３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ１８１８へ進み、それ以外の場合はステップＳ１８２８へ進む。
【００６１】
ステップＳ１８１８では、文字数制限モジュール１２１０が、ＷｓからＷｋ−１までの合計の文字列長（ＷｓからＷｋ−１までの文字列を連結させた場合の文字列長）が予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１８２０へ進み、それ以外の場合はステップＳ１８２８へ進む。
ステップＳ１８２０では、文字数制限モジュール１２１０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ１８２８へ進み、それ以外の場合はステップＳ１８２２へ進む。
ステップＳ１８２２では、文字数制限モジュール１２１０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ１８２４では、文字数制限モジュール１２１０が、変数ｓにｓ＋１を代入し、ステップＳ１８２０からの処理を行う。
ステップＳ１８２６では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ１８０８に戻る。
ステップＳ１８２８では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ１８２６に進む。
ステップＳ１８３０では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
【００６２】
図１９は、第７の実施の形態による別の処理例を示すフローチャートである。
ステップＳ１９０２では、単語解析モジュール１１０が、単語解析を行う。
ステップＳ１９０４では、単語分類モジュール１２０が、変数ｓに０を代入する。
ステップＳ１９０６では、単語分類モジュール１２０が、変数ｋに０を代入する。
ステップＳ１９０８では、単語分類モジュール１２０が、ｋ＜Ｍであるか否かを判断し、ｋ＜Ｍである場合はステップＳ１９１０へ進み、それ以外の場合はステップＳ１９３０へ進む。
ステップＳ１９１０では、単語分類モジュール１２０が、Ｗｋが未知語であるか否かを判断し、未知語である場合はステップＳ１９１２へ進み、それ以外の場合はステップＳ１９２６へ進む。
ステップＳ１９１２では、文字数制限モジュール１５１０が、Ｗｋが予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１９１４へ進み、それ以外の場合はステップＳ１９２６へ進む。
ステップＳ１９１４では、誤り語検出モジュール１５３０が、Ｗｋを誤り語として文字数制限モジュール１２１０へ出力する。また、誤り文字列出力モジュール１４０へ出力してもよい。
ステップＳ１９１６では、誤り語検出モジュール１５３０が、ｋ−ｓ≦Ｎであるか否かを判断し、ｋ−ｓ≦Ｎである場合はステップＳ１９１８へ進み、それ以外の場合はステップＳ１９２８へ進む。
【００６３】
ステップＳ１９１８では、文字数制限モジュール１２１０が、ｋ＝＝ｓであるか否かを判断し、ｋ＝＝ｓである場合はステップＳ１９２８へ進み、それ以外の場合はステップＳ１９２０へ進む。
ステップＳ１９２０では、文字数制限モジュール１２１０が、Ｗｓの文字列長（個々の文字列長）が予め定められた文字数以下であるか否かを判断し、予め定められた文字数以下である場合はステップＳ１９２２へ進み、それ以外の場合はステップＳ１９２４へ進む。
ステップＳ１９２２では、文字数制限モジュール１２１０が、Ｗｓを誤り語として誤り文字列出力モジュール１４０へ出力する。
ステップＳ１９２４では、文字数制限モジュール１２１０が、変数ｓにｓ＋１を代入し、ステップＳ１９１８からの処理を行う。
ステップＳ１９２６では、単語分類モジュール１２０が、変数ｋにｋ＋１を代入する。そして、ステップＳ１９０８に戻る。
ステップＳ１９２８では、単語分類モジュール１２０が、変数ｓにｋ＋１を代入する。そして、ステップＳ１９２６に進む。
ステップＳ１９３０では、誤り文字列出力モジュール１４０が、誤り文字列を出力する。
なお、第２〜４の実施の形態と第５〜７の実施の形態を組み合わせてもよい。これによって、文字列の誤り検出において、文字コード制限と文字数制限の両方を行う実施の形態となる。
【００６４】
図２０は、第８の実施の形態の構成例についての概念的なモジュール構成図である。
第８の実施の形態は、誤り訂正を行うものであって、誤り検出モジュール２０１０、誤り文字列訂正モジュール２０２０を有している。前述の実施の形態（第２〜４の実施の形態と第５〜７の実施の形態を組み合わせも含む）によって検出される誤り文字列に対して、誤り訂正を行う。
【００６５】
誤り検出モジュール２０１０は、誤り文字列訂正モジュール２０２０と接続されており、文字列を受け付けて、その文字列内の誤り文字列を抽出して、抽出した誤り文字列を誤り文字列訂正モジュール２０２０に渡す。具体的には、前述の実施の形態が該当する。
誤り文字列訂正モジュール２０２０は、誤り検出モジュール２０１０と接続されており、誤り検出モジュール２０１０より誤り文字列を受け取り、その誤り文字列を訂正し、元の文字列（誤り検出モジュール２０１０が受け付けた文字列であって、誤り文字列以外の文字列）と統合して、訂正文字列を出力する。例えば、特許文献１に記載の技術を用いてもよい。
【００６６】
図２１は、第９の実施の形態の構成例についての概念的なモジュール構成図である。
第９の実施の形態は、文字認識結果の誤り訂正を行うものであって、文字認識モジュール２１１０、誤り検出モジュール２１２０、誤り文字列訂正モジュール２１３０を有している。
【００６７】
文字認識モジュール２１１０は、画像を受け付けて、その画像内の文字認識を行い、文字認識結果である文字列を誤り検出モジュール２１２０及び誤り文字列訂正モジュール２１３０へ渡し、識別確度を誤り検出モジュール２１２０及び誤り文字列訂正モジュール２１３０へ渡し、識別候補を誤り文字列訂正モジュール２１３０へ渡す。
文字認識の結果として、文字コードの他に、各文字認識結果の１文字毎の識別確度と識別候補がある。ここで、識別確度とは、文字識別の結果である文字コードらしさであり、識別確度が低いほど、識別誤りである可能性が高いことを表す数値である。また、識別候補とは、文字識別の結果である文字コードの他に、識別確度の高い文字コードのセット（集合）である。
【００６８】
誤り検出モジュール２１２０は、文字認識モジュール２１１０、誤り文字列訂正モジュール２１３０と接続されており、文字認識モジュール２１１０より文字列及び識別確度を受け取り、その文字列内の誤り文字列を抽出して、抽出した誤り文字列を誤り文字列訂正モジュール２１３０に渡す。具体的には、前述の第１〜７の実施の形態（第２〜４の実施の形態と第５〜７の実施の形態を組み合わせも含む）が該当する。
また、識別確度は、誤り検出モジュール２１２０において利用する。前述の第１〜７の実施の形態で、さらに、未知語に挟まれた既知語において、既知語に含まれる各文字の識別確度の統合値が、予め定められた値より小さい又は以下である場合、誤り語として出力するようにしてもよい。ここで、識別確度の統合値とは、最大値、最小値、中央値、最頻値、平均値等である。また、未知語に挟まれた既知語の各文字の識別確度の分散値が予め定められた値より大きい又は以上である場合は、誤り語として出力するようにしてもよい。
【００６９】
誤り文字列訂正モジュール２１３０は、文字認識モジュール２１１０、誤り検出モジュール２１２０と接続されており、文字認識モジュール２１１０より文字列、識別確度、識別候補を受け取り、誤り検出モジュール２１２０より誤り文字列を受け取る。そして、その誤り文字列を訂正し、元の文字列（誤り検出モジュール２１２０からの文字認識結果である文字列であって、誤り文字列以外の文字列）と統合して、訂正文字列を出力する。例えば、特許文献１に記載の技術を用いてもよい。
また、識別候補は、誤り文字列訂正モジュール２１３０において利用する。訂正候補である誤り文字列を、識別候補から作成し、作成した複数の訂正候補から選択して出力する。訂正候補の選択においては、訂正候補を構成している各文字の識別確度の統合値が高いものを優先してもよい。
【００７０】
図２２を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図２２に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部２２１７と、プリンタなどのデータ出力部２２１８を備えたハードウェア構成例を示している。
【００７１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２２０１は、前述の実施の形態において説明した各種のモジュール、すなわち、単語解析モジュール１１０、単語分類モジュール１２０、誤り語検出モジュール１３０、誤り文字列出力モジュール１４０、文字コード制限モジュール６１０、誤り語検出モジュール６３０、文字コード制限モジュール８１０、文字数制限モジュール１２１０、文字数制限モジュール１５１０、誤り語検出モジュール１５３０、誤り検出モジュール２０１０、誤り文字列訂正モジュール２０２０、文字認識モジュール２１１０、誤り検出モジュール２１２０、誤り文字列訂正モジュール２１３０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００７２】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２０２は、ＣＰＵ２２０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２０３は、ＣＰＵ２２０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス２２０４により相互に接続されている。
【００７３】
ホストバス２２０４は、ブリッジ２２０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス２２０６に接続されている。
【００７４】
キーボード２２０８、マウス等のポインティングデバイス２２０９は、操作者により操作される入力デバイスである。ディスプレイ２２１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００７５】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２２１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ２２０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けた文字列、生成した誤り文字列、辞書などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００７６】
ドライブ２２１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体２２１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース２２０７、外部バス２２０６、ブリッジ２２０５、及びホストバス２２０４を介して接続されているＲＡＭ２２０３に供給する。リムーバブル記録媒体２２１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００７７】
接続ポート２２１４は、外部接続機器２２１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート２２１４は、インタフェース２２０７、及び外部バス２２０６、ブリッジ２２０５、ホストバス２２０４等を介してＣＰＵ２２０１等に接続されている。通信部２２１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部２２１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部２２１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００７８】
なお、図２２に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２２に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図２２に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００７９】
なお、前述の各種の実施の形態を組み合わせてもよく（例えば、ある実施の形態内のモジュールを他の実施の形態内に追加する、入れ替えをする等も含む）、また、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
また、前述の実施の形態では、日本語の文字列を主な対象として説明したが、他の言語（中国語、ハングル語、英語等）の文字列であってもよい。
【００８０】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００８１】
１１０…単語解析モジュール
１２０…単語分類モジュール
１３０…誤り語検出モジュール
１４０…誤り文字列出力モジュール
６１０…文字コード制限モジュール
６３０…誤り語検出モジュール
８１０…文字コード制限モジュール
１２１０…文字数制限モジュール
１５１０…文字数制限モジュール
１５３０…誤り語検出モジュール
２０１０…誤り検出モジュール
２０２０…誤り文字列訂正モジュール
２１１０…文字認識モジュール
２１２０…誤り検出モジュール
２１３０…誤り文字列訂正モジュール
【図１】
0005853531.tif 000002
【図２】
0005853531.tif 000003
【図３】
0005853531.tif 000004
【図４】
0005853531.tif 000005
【図５】
0005853531.tif 000006
【図６】
0005853531.tif 000007
【図７】
0005853531.tif 000008
【図８】
0005853531.tif 000009
【図９】
0005853531.tif 000010
【図１０】
0005853531.tif 000011
【図１１】
0005853531.tif 000012
【図１２】
0005853531.tif 000013
【図１３】
0005853531.tif 000014
【図１４】
0005853531.tif 000015
【図１５】
0005853531.tif 000016
【図１６】
0005853531.tif 000017
【図１７】
0005853531.tif 000018
【図１８】
0005853531.tif 000019
【図１９】
0005853531.tif 000020
【図２０】
0005853531.tif 000021
【図２１】
0005853531.tif 000022
【図２２】
0005853531.tif 000023