Vai al contenuto principale
Uno dei principali parametri di riconoscimento è la lingua utilizzata durante il riconoscimento. È importante impostare la lingua corretta prima dell’analisi e del riconoscimento. La lingua di riconoscimento può essere specificata facilmente usando il metodo IRecognizerParams::SetPredefinedTextLanguage. Questo method influisce sulla proprietà IRecognizerParams::TextLanguage. Per impostazione predefinita, questo parametro è inizializzato sulla lingua di riconoscimento inglese. Puoi anche usare il rilevamento automatico della lingua (per maggiori dettagli, vedi la proprietà IRecognizerParams::LanguageDetectionMode).
Il rilevamento automatico della lingua funziona solo con le lingue predefinite (consulta l’elenco completo in Lingue predefinite in ABBYY FineReader Engine).
Di seguito sono riportate informazioni utili sulle lingue supportate per impostazione predefinita in ABBYY FineReader Engine e sugli oggetti che offrono funzionalità avanzate per la gestione delle lingue di riconoscimento.

Lingue predefinite

ABBYY FineReader Engine fornisce un insieme di lingue supportate per impostazione predefinita. Queste lingue sono denominate “lingue predefinite”. La raccolta delle lingue predefinite disponibili, rappresentata dall’oggetto PredefinedLanguages, è accessibile tramite la proprietà PredefinedLanguages dell’oggetto Engine. Si tratta di una raccolta di oggetti PredefinedLanguage. Le lingue predefinite sono identificate dai rispettivi nomi interni. È possibile specificare direttamente una lingua di riconoscimento tramite il nome della corrispondente lingua predefinita usando il metodo IRecognizerParams::SetPredefinedTextLanguage. Per l’elenco dei nomi interni delle lingue predefinite, vedere Lingue predefinite in ABBYY FineReader Engine.

Lingua di riconoscimento per un testo

La lingua utilizzata durante il riconoscimento è rappresentata dall’oggetto TextLanguage. L’oggetto RecognizerParams, che specifica i parametri di riconoscimento, memorizza un riferimento all’oggetto TextLanguage. Le funzioni di riconoscimento ricevono questo oggetto come sotto-oggetto dell’oggetto PageProcessingParams passato come parametro di input oppure da un blocco di un oggetto Layout. L’oggetto TextLanguage espone le seguenti proprietà principali:
  • Nome interno. Si consiglia di selezionare un nome univoco per la lingua; per le lingue fornite nel pacchetto di distribuzione di ABBYY FineReader Engine il nome è già univoco. Assicurarsi che i nomi delle nuove lingue siano univoci.
  • insieme di lettere. L’oggetto TextLanguage contiene i seguenti set di caratteri: segni di punteggiatura che possono comparire tra le parole, caratteri vietati e segni di punteggiatura aggiuntivi che compaiono immediatamente prima e dopo le parole.
  • Dizionari di esclusione. È possibile creare una raccolta di dizionari di esclusione utilizzando la proprietà ProhibitingDictionaries dell’oggetto TextLanguage. Le parole di questi dizionari non possono essere usate come varianti di una parola riconosciuta. Tuttavia, se non rimane alcuna variante e l’uso di una parola vietata è l’unica opzione, le parole di questi dizionari possono comunque comparire nel testo riconosciuto. Vedere Lavorare con i dizionari.

Lingua di riconoscimento dei caratteri

Durante il riconoscimento, il testo viene suddiviso in parole e a ciascuna parola corrispondono una o più lingue di riconoscimento. A ogni carattere di una parola viene assegnata una lingua di riconoscimento. Questa lingua di riconoscimento è rappresentata dall’oggetto BaseLanguage ed è accessibile tramite la proprietà ITextLanguage::BaseLanguages. L’oggetto BaseLanguage ha le seguenti proprietà:
  • Nome interno. Si consiglia di selezionare un nome univoco per la lingua interna; per le lingue fornite con il pacchetto di distribuzione di ABBYY FineReader Engine questo nome è già univoco. Assicurarsi che anche i nomi delle nuove lingue siano univoci.
Se a una parola riconosciuta corrisponde una sola lingua di riconoscimento di base, la proprietà ICharParams::LanguageName di ciascun carattere della parola viene impostata, dopo il riconoscimento, sul nome interno della lingua di base. Se a una parola corrispondono più lingue di riconoscimento di base (ad esempio, nel caso di parole composte bilingui), la proprietà ICharParams::LanguageName per i caratteri di questa parola è vuota. La proprietà ICharParams::LanguageId contiene l’identificatore della lingua di base indipendentemente dalla parola riconosciuta.
  • Insiemi di lettere. Un insieme di lettere comprende le lettere che formano l’alfabeto della lingua, le lettere che formano il suo alfabeto esteso (usato nelle parole di origine straniera), i segni di punteggiatura che compaiono immediatamente prima o dopo le parole, i caratteri consentiti all’interno delle parole ma ignorati dal sistema interno di controllo ortografico e i simboli consentiti in apice e pedice.
  • Dizionario. A una lingua di riconoscimento per una parola può essere associato un dizionario. Vedere Lavorare con i dizionari.

Creare una lingua di riconoscimento composita

ABBYY FineReader Engine offre un modo semplice per creare lingue di riconoscimento composite costituite da più lingue di riconoscimento predefinite. Questa operazione viene eseguita tramite l’oggetto LanguageDatabase. Ad esempio, è possibile creare una lingua di riconoscimento che includa sia parole inglesi che tedesche:
  1. Creare un oggetto LanguageDatabase chiamando il metodo IEngine::CreateLanguageDatabase.
  2. Chiamare il metodo ILanguageDatabase::CreateCompoundTextLanguage con il parametro “English,German”.
  3. Utilizzare l’oggetto TextLanguage ottenuto per il riconoscimento del testo.
I Visual Components sono attualmente supportati solo in Windows.
L’oggetto LanguageDatabase consente inoltre di importare lingue personalizzate definite dall’utente create in ABBYY FineReader Engine per Windows tramite i Visual Components. I Visual Components forniscono gli strumenti necessari per creare lingue di riconoscimento personalizzate con insiemi di lettere, dizionari e altri parametri specificati dall’utente. Le lingue di riconoscimento create in questo modo vengono archiviate in un insieme di file e possono essere utilizzate tramite l’oggetto LanguageDatabase. Se si desidera utilizzare le lingue create con i Visual Components, procedere come segue:
  1. Creare un oggetto LanguageDatabase chiamando il metodo IEngine::CreateLanguageDatabase.
  2. Caricare le lingue nell’oggetto LanguageDatabase utilizzando il metodo ILanguageDatabase::LoadFrom.
  3. Ottenere dall’oggetto LanguageDatabase la lingua richiesta in base al nome come oggetto TextLanguage.
  4. Utilizzare l’oggetto TextLanguage ottenuto per il riconoscimento del testo.

Vedi anche

Lavorare con i dizionari Riconoscere le parole con spazi Riconoscere le lingue cinese, giapponese e coreana