辨識時使用的語言,是主要的辨識參數之一。在分析與辨識之前,設定正確的語言非常重要。您可以使用 IRecognizerParams::SetPredefinedTextLanguage 方法輕鬆指定辨識語言。此方法會影響 IRecognizerParams::TextLanguage 屬性。預設情況下,此參數會以英文辨識語言初始化。您也可以使用語言自動偵測功能 (詳情請參閱 IRecognizerParams::LanguageDetectionMode 屬性) 。
以下提供有關 ABBYY FineReader Engine 預設支援語言,以及可為辨識語言處理提供進階功能之物件的實用資訊。
ABBYY FineReader Engine 提供一組預設支援的語言。這些語言稱為「預定義語言」。可用的預定義語言集合由 PredefinedLanguages 物件表示,並可透過 Engine 物件的 PredefinedLanguages 屬性存取。它是由 PredefinedLanguage 物件組成的集合。
預定義語言會以其內部名稱來識別。您可以透過 IRecognizerParams::SetPredefinedTextLanguage 方法,使用對應預定義語言的名稱直接指定辨識語言。若要查看預定義語言內部名稱的清單,請參閱 Predefined Languages in ABBYY FineReader Engine。
辨識時所使用的語言會以 TextLanguage 物件表示。用來指定辨識參數的 RecognizerParams 物件會儲存對 TextLanguage 物件的參考。辨識函式會以下列其中一種方式取得此物件:作為輸入參數傳入的 PageProcessingParams 物件的子物件,或來自 Layout 物件中的區塊。
TextLanguage 物件提供下列主要屬性:
- 內部名稱。我們建議為內部語言選擇唯一名稱;對於 ABBYY FineReader Engine 發行套件中提供的語言,此名稱已具唯一性。請務必確保新語言的名稱也是唯一的。
- 字母集。TextLanguage 物件包含下列字母集:可能出現在單字之間的標點符號、禁用字元,以及緊接出現在單字前後的其他標點符號。
- 禁用字典。您可以使用 TextLanguage 物件的 ProhibitingDictionaries 屬性建立禁用字典集合。這些字典中的單字不能作為已辨識單字的候選變體。不過,如果已無其他候選變體可用,且唯一選項就是使用禁用單字,這些字典中的單字仍可能出現在辨識出的文字中。請參閱 使用字典。
在辨識過程中,文字會被分成單字,每個單字會對應一種或多種辨識語言。單字中的每個字元都會被指派一種辨識語言。此辨識語言由 BaseLanguage 物件表示,並可透過 ITextLanguage::BaseLanguages 屬性存取。
BaseLanguage 物件具有下列屬性:
- 內部名稱。我們建議為內部語言選擇唯一名稱;對於 ABBYY FineReader Engine 發行套件隨附的語言,此名稱已具唯一性。請務必確保新語言的名稱也是唯一的。
如果一個基礎辨識語言對應到一個已辨識的單字,則在辨識後,此單字中每個字元的 ICharParams::LanguageName 屬性會設為該基礎語言的內部名稱。如果同一個單字對應到多個基礎辨識語言 (例如雙語複合詞) ,則此單字中字元的 ICharParams::LanguageName 屬性會是空的。無論辨識出的單字為何,ICharParams::LanguageId 屬性都會包含該基礎語言的識別碼。
- 字母集。字母集包含構成該語言字母表的字母、構成其擴充字母表的字母 (用於外來語) 、緊接出現在單字前後的標點符號、允許出現在單字內但會被內部拼字檢查系統忽略的字元,以及可用於上標和下標的符號。
- 字典。單字的辨識語言可以附加字典。請參閱 Working with Dictionaries。
ABBYY FineReader Engine 提供簡便的方式,可建立由多個預先定義辨識語言組成的複合辨識語言。這可透過 LanguageDatabase 物件完成。例如,您可以建立同時包含英文與德文單字的辨識語言:
- 透過呼叫 IEngine::CreateLanguageDatabase 方法來建立 LanguageDatabase 物件。
- 使用參數 “English,German” 呼叫 ILanguageDatabase::CreateCompoundTextLanguage 方法。
- 使用取得的 TextLanguage 物件進行文字辨識。
Visual Components 目前僅支援 Windows。
LanguageDatabase 物件也可讓您匯入在適用於 Windows 的 ABBYY FineReader Engine 中,使用 Visual Components 建立的自訂使用者定義語言。Visual Components 可讓使用者建立自訂辨識語言,並指定字母集、字典及其他參數。以此方式建立的辨識語言會儲存在一組檔案中,並可透過 LanguageDatabase 物件存取。若您想使用在 Visual Components 中建立的語言,請執行下列步驟:
- 透過呼叫 IEngine::CreateLanguageDatabase 方法來建立 LanguageDatabase 物件。
- 使用 ILanguageDatabase::LoadFrom 方法,將語言載入 LanguageDatabase 物件。
- 從 LanguageDatabase 物件中依名稱取得所需語言,作為 TextLanguage 物件。
- 使用取得的 TextLanguage 物件進行文字辨識。
使用字典
辨識包含空格的字詞
辨識中文、日文和韓文