メインコンテンツへスキップ
主要な認識パラメーターの 1 つは、認識時に使用する言語です。解析と認識を実行する前に、適切な言語を設定しておくことが重要です。認識言語は、IRecognizerParams::SetPredefinedTextLanguage メソッドを使って簡単に指定できます。このメソッドは、IRecognizerParams::TextLanguage プロパティに反映されます。既定では、このパラメーターは英語の認識言語で初期化されています。言語の自動検出を使用することもできます (詳細は IRecognizerParams::LanguageDetectionMode プロパティを参照してください) 。
言語の自動検出で対象となるのは、事前定義言語のみです (一覧は ABBYY FineReader Engine の事前定義言語 を参照してください) 。
以下では、ABBYY FineReader Engine が既定でサポートしている言語と、認識言語を扱うための高度な機能を提供するオブジェクトについて、役立つ情報を紹介します。

事前定義言語

ABBYY FineReader Engine には、既定でサポートされる一連の言語が用意されています。これらの言語は「事前定義言語」と呼ばれます。利用可能な事前定義言語のコレクションは PredefinedLanguages オブジェクトで表され、Engine オブジェクトの PredefinedLanguages プロパティからアクセスできます。これは PredefinedLanguage オブジェクトのコレクションです。 事前定義言語は、内部名によって識別されます。対応する事前定義言語の名前を使って、IRecognizerParams::SetPredefinedTextLanguage メソッドにより、認識言語を直接指定できます。事前定義言語の内部名の一覧については、ABBYY FineReader Engine の事前定義言語 を参照してください。

テキストの認識言語

認識時に使用される言語は、TextLanguage オブジェクトで表されます。認識パラメーターを指定する RecognizerParams オブジェクトには、TextLanguage オブジェクトへの参照が格納されます。認識関数は、このオブジェクトを、入力パラメーターとして渡される PageProcessingParams オブジェクトのサブオブジェクトとして受け取るか、Layout オブジェクト内のブロックから取得します。 TextLanguage オブジェクトでは、主に次のプロパティを利用できます。
  • 内部名。内部言語には一意の名前を付けることをお勧めします。ABBYY FineReader Engine の配布パッケージに含まれる言語には、すでに一意の名前が設定されています。新しい言語の名前も、必ず一意にしてください。
  • 文字セット。TextLanguage オブジェクトには、次の文字セットが含まれます。単語間に現れる可能性のある句読点、使用禁止文字、および単語の直前または直後にのみ付く追加の句読点です。
  • 禁止辞書。TextLanguage オブジェクトの ProhibitingDictionaries プロパティを使用すると、禁止辞書のコレクションを作成できます。これらの辞書に含まれる単語は、認識された単語の候補として使用できません。ただし、ほかに候補がなく、禁止語を使用する以外に選択肢がない場合は、これらの辞書の単語が認識テキストに現れることがあります。辞書の使用方法 を参照してください。

文字の認識言語

認識時には、テキストは単語に分割され、各単語には1つまたは複数の認識言語が対応付けられます。単語内の各文字には1つの認識言語が割り当てられます。この認識言語は BaseLanguage オブジェクトで表され、ITextLanguage::BaseLanguages プロパティからアクセスできます。 BaseLanguage オブジェクトには、次のプロパティがあります。
  • 内部名。内部言語には一意の名前を付けることをお勧めします。ABBYY FineReader Engine 配布パックに含まれる言語には、すでに一意の名前が設定されています。新しい言語の名前も必ず一意にしてください。
1つの基本認識言語が1つの認識単語に対応する場合、その単語内の各文字の ICharParams::LanguageName プロパティには、認識後に基本言語の内部名が設定されます。複数の基本認識言語が1つの単語に対応する場合 (たとえば、2言語の複合語の場合) 、その単語内の文字の ICharParams::LanguageName プロパティは空になります。ICharParams::LanguageId プロパティには、認識された単語にかかわらず、基本言語の識別子が格納されます。
  • 文字セット。文字セットには、その言語のアルファベットを構成する文字、拡張アルファベットを構成する文字 (外来語で使用) 、単語の直前および直後に置く句読点、単語内での使用は許可されているものの内部スペルチェックシステムでは無視される文字、ならびに下付き文字および上付き文字で使用できる記号が含まれます。
  • 辞書。単語の認識言語には辞書を関連付けることができます。辞書の使用方法 を参照してください。

複合認識言語の作成

ABBYY FineReader Engine では、あらかじめ定義された複数の認識言語を組み合わせて、複合認識言語を簡単に作成できます。これは LanguageDatabase オブジェクトを使用して行います。たとえば、英語とドイツ語の両方の単語を含む認識言語を作成できます。
  1. IEngine::CreateLanguageDatabase メソッドを呼び出して、LanguageDatabase オブジェクトを作成します。
  2. パラメーター “English,German” を指定して ILanguageDatabase::CreateCompoundTextLanguage メソッドを呼び出します。
  3. 取得した TextLanguage オブジェクトをテキスト認識に使用します。
Visual Components は現在、Windows でのみサポートされています。
LanguageDatabase オブジェクトでは、Visual Components を使用して ABBYY FineReader Engine for Windows で作成したユーザー定義のカスタム言語をインポートすることもできます。Visual Components では、文字セット、辞書、およびユーザーが指定したその他のパラメーターを用いて、カスタム認識言語を作成できます。この方法で作成した認識言語は一連のファイルに保存され、LanguageDatabase オブジェクトを使用してアクセスできます。Visual Components で作成した言語を使用する場合は、次の手順に従います。
  1. IEngine::CreateLanguageDatabase メソッドを呼び出して、LanguageDatabase オブジェクトを作成します。
  2. ILanguageDatabase::LoadFrom メソッドを使用して、言語を LanguageDatabase オブジェクトに読み込みます。
  3. LanguageDatabase オブジェクトから、必要な言語を名前で TextLanguage オブジェクトとして取得します。
  4. 取得した TextLanguage オブジェクトをテキスト認識に使用します。

関連項目

辞書の使用方法 スペースを含む単語の認識 中国語、日本語、韓国語の認識