Paramètres communs de traitement de texte
Lorsque vous soumettez une demande de traitement de texte à l'aide de l'API REST watsonx.ai, vous incluez une charge utile qui spécifie les détails de configuration de l'opération de traitement de texte.
Vous pouvez utiliser plusieurs API de traitement de texte pour comprendre et convertir vos documents dans un format textuel plus simple qui peut être utilisé dans une solution RAG. Vous pouvez utiliser l'API de classification de texte pour déterminer si votre document correspond au format de données structuré de certains types de documents courants. En fonction du résultat de la classification, vous pouvez ensuite personnaliser votre requête d'extraction de texte afin d'extraire plus efficacement le texte et d'autres contenus structurés de votre document.
Choisissez les paramètres suivants qui sont communs aux requêtes API REST de classification et d'extraction de texte :
- Langue du document d'entrée
- Traiter le texte à partir des images du document d'entrée
- Traiter les paires clé-valeur du document d'entrée
Outre les paramètres communs de l'API REST, vous pouvez définir des paramètres spécifiques aux différentes méthodes de l'API de traitement de texte dans la bibliothèque de compréhension de documents. Pour plus de détails, consultez les rubriques suivantes :
Spécifier les langues du document d'entrée avec le paramètre languages
Si votre document est rédigé dans une langue autre que l'anglais, vous devez spécifier la langue par son code ISO 639 dans le paramètre languages de votre demande API.
"parameters": {
"languages": [
"de"
]
}
Si le document comporte un mélange de langues, il convient d'énumérer chaque langue séparément. Le code de langue que vous spécifiez diffère selon que votre document contient du texte imprimé à la machine ou de l'écriture manuscrite. Si votre document comporte à la fois du texte imprimé et du texte manuscrit dans une langue spécifique, vous devez spécifier les deux types de codes de langue dans la liste des langues.
Restrictions linguistiques avec les API de traitement de texte
- Classification de texte
Vous ne pouvez utiliser l'API de classification qu'avec des documents en langue anglaise.
- Extraction de texte
Vous ne pouvez pas utiliser l'API d'extraction avec un document multilingue lorsque les langues ne partagent pas un script commun. Toutefois, vous pouvez utiliser des documents contenant un mélange d'anglais et d'une autre langue dans n'importe quel script. Par exemple, vous pouvez extraire du texte à partir d'images dans un document contenant un mélange de texte anglais et français, car les deux langues sont basées sur le latin. Toutefois, il n'est pas possible d'extraire le texte des images d'un document contenant à la fois du texte japonais et du texte français.
Vous pouvez utiliser l'API d'extraction de texte pour extraire des données de paires clé-valeur à partir de documents en langue anglaise uniquement.
Langues manuscrites prises en charge
Le tableau suivant répertorie les langues prises en charge pour la reconnaissance de l'écriture manuscrite :
| Langue | Clé d'invocation |
|---|---|
| Anglais | fr_hw / eng_hw |
| Allemand | de_hw / deu_hw |
Si votre document contient du texte manuscrit en anglais, utilisez le en_hw code de langue pris en charge sur s390x dans le corps de votre requête API.
Langues imprimées en machine prises en charge
Le tableau suivant fournit des détails sur les langues prises en charge par l'API d'extraction de texte pour la reconnaissance de texte imprimé :
| Langue | Code linguistique ISO 639 | Code du script API | Script |
|---|---|---|---|
| Acehnais | ‐ | latn |
Latin |
| Afrikaans | af |
latn |
Latin |
| albanais | sq |
latn |
Latin |
| Araucanien/Mapuche | ‐ | latn |
Latin |
| awadhi | ‐ | deva |
Devanagari |
| aymara | ay |
latn |
Latin |
| balinais | ‐ | latn |
Latin |
| Basque | eu |
latn |
Latin |
| biélorusse | be |
cyrl |
Cyrillique |
| Bemba | ‐ | latn |
Latin |
| Bengali | ‐ | beng |
Bengali |
| bicol | ‐ | latn |
Latin |
| bislama | bi |
latn |
Latin |
| bhojpuri | ‐ | deva |
Devanagari |
| Bulgare | bg |
cyrl |
Cyrillique |
| Catalan | ca |
latn |
Latin |
| Cebuano | ‐ | latn |
Latin |
| Tchétchénie | ‐ | cyrl |
Cyrillique |
| Chinois (simplifié) | zh_cn |
cjk |
Han (simplifié) |
| Chinois (traditionnel) | zh_tw |
cjk |
Han (traditionnel) |
| Choctaw | ‐ | latn |
Latin |
| Cree | cr |
latn |
Latin |
| Dakota | ‐ | latn |
Latin |
| Danois | da |
latn |
Latin |
| Dogri | ‐ | deva |
Devanagari |
| Néerlandais | nl |
latn |
Latin |
| Anglais | en |
latn |
Latin |
| Anglais (britannique) | en |
latn |
Latin |
| Estonien | et |
latn |
Latin |
| fidjien | fj |
latn |
Latin |
| Filipino | fil |
latn |
Latin |
| Finnois | fi |
latn |
Latin |
| Français | fr |
latn |
Latin |
| Français (Canada) | fr |
latn |
Latin |
| Galicien | gl |
latn |
Latin |
| Gayo | ‐ | latn |
Latin |
| Allemand | de |
latn |
Latin |
| gilbertin | ‐ | latn |
Latin |
| Grec | el |
el |
Grec |
| Créole haïtien | ht |
latn |
Latin |
| Hébreu | he |
he |
Hébreu |
| hiligaynon | ‐ | latn |
Latin |
| Hindi | hi |
deva |
Devanagari |
| Iban | ‐ | latn |
Latin |
| Iloko | ‐ | latn |
Latin |
| Indonésien | id |
latn |
Latin |
| Irlandais | ga |
latn |
Latin |
| Italien | it |
it |
Latin |
| Japonais | ja |
cjk |
Japonais |
| Javanais | jv |
latn |
Latin |
| Jinghpo | ‐ | latn |
Latin |
| Kalaallisut | kl |
latn |
Latin |
| khasi | ‐ | latn |
Latin |
| Kinyarwanda | rw |
latn |
Latin |
| Kongo | kg |
latn |
Latin |
| Konkani | ‐ | deva |
Devanagari |
| Coréen | ko |
cjk |
Coréen |
| Kosraéen | ‐ | latn |
Latin |
| Kuanyama | kj |
latn |
Latin |
| Latin | la |
latn |
Latin |
| Bas allemand | ‐ | latn |
Latin |
| Lozi | ‐ | latn |
Latin |
| Luo | ‐ | latn |
Latin |
| Macédonien | mk |
cyrl |
Cyrillique |
| Maithili | ‐ | deva |
Devanagari |
| Malgache | mg |
latn |
Latin |
| Manx | gv |
latn |
Latin |
| marathe | mr |
deva |
Devanagari |
| moyen anglais | ‐ | latn |
Latin |
| moyen haut-allemand | ‐ | latn |
Latin |
| Minangkabau | ‐ | latn |
Latin |
| Mohawk | ‐ | latn |
Latin |
| Mongol | mn |
cyrl |
Cyrillique |
| Ndonga | ng |
latn |
Latin |
| Népalais | ne |
deva |
Devanagari |
| Nord Ndebele | nd |
latn |
Latin |
| Norvégien | no |
no |
Latin |
| Nyankole | ‐ | latn |
Latin |
| occitan | oc |
latn |
Latin |
| Ojibwé | oj |
latn |
Latin |
| vieil anglais | ‐ | latn |
Latin |
| vieux français | ‐ | latn |
Latin |
| vieux haut allemand | ‐ | latn |
Latin |
| vieux norrois | ‐ | latn |
Latin |
| Vieux provençal | ‐ | latn |
Latin |
| Pampanga | ‐ | latn |
Latin |
| Pangasinan | ‐ | latn |
Latin |
| papiamento | ‐ | latn |
Latin |
| Polonais | pl |
latn |
Latin |
| Portugais | pt |
pt |
Latin |
| Portugais (européen) | pt |
pt |
Latin |
| Quechua | qu |
latn |
Latin |
| Romanche | rm |
latn |
Latin |
| Rundi | rn |
latn |
Latin |
| Russe | ru |
cyrl |
Cyrillique |
| Sango | sg |
latn |
Latin |
| Sanskrit | sa |
deva |
Devanagari |
| Écossais | ‐ | latn |
Latin |
| Serbe | sr |
cyrl |
Cyrillique |
| Shona | sn |
latn |
Latin |
| Espagnol | es |
es |
Latin |
| Espagnol (Amérique latine) | es |
es |
Latin |
| sundanais | su |
latn |
Latin |
| Swahili | sw |
latn |
Latin |
| Swati | ss |
latn |
Latin |
| Suédois | sv |
sv |
Latin |
| Tamoul | ta |
deva |
Tamoul |
| Télougou | te |
deva |
Télougou |
| Thaï | th |
th |
Thaï |
| Tsonga | ts |
latn |
Latin |
| tswana | tn |
latn |
Latin |
| Turc | tr |
tr |
Latin |
| Ukrainien | uk |
cyrl |
Cyrillique |
| Ouzbek | uz |
cyrl |
Cyrillique |
| Vietnamien | vi |
vi |
Latin |
| Xhosa | xh |
latn |
Latin |
| Zoulou | zu |
latn |
Latin |
Documents contenant à la fois du texte dactylographié et du texte manuscrit
Si votre document contient à la fois du texte dactylographié et du texte manuscrit, vous devez appeler l'API en indiquant les codes de langue correspondant à la fois au modèle linguistique pour le texte dactylographié et au modèle linguistique pour le texte manuscrit.
| Langue | Coder |
|---|---|
| Anglais | languages_list = [ 'en', 'en_hw'] |
| Allemand | languages_list = [ 'de', 'de_hw'] |
Documents en plusieurs langues
La combinaison de langues n'utilisant pas le même alphabet n'est pas prise en charge, sauf lorsque l'anglais est associé à une autre langue.
Si un document contient du texte en plusieurs langues utilisant soit l'alphabet latin, soit les alphabets CJK, vous pouvez indiquer plusieurs codes de langue dans le fichier languages_list. Par exemple, si vous spécifiez à la fois fra et eng, le service associe en interne la requête au latn modèle.
Seuls les langages de script répertoriés dans le tableau des langages pris en charge sont pris en charge. Vous ne pouvez pas spécifier plus d'un script dans une même requête.
Combinaisons autorisées :
['fra', 'spa']– deux langues qui utilisent le même alphabet['jpn', 'eng']– une langue non latine associée à l'anglais (Si le document contient du japonais et de l'anglais, il suffit d'indiquer['jpn'].)['fra', 'spa', 'eng']['jpn', 'kor']– deux langues qui utilisent le même alphabet['heb', 'eng']– une langue non latine associée à l'anglais['latn']– script unique['cjk']– script unique
Combinaisons non prises en charge :
['heb', 'fra']– une langue non latine associée à une langue latine autre que l'anglais['cjk', 'fra']['jpn', 'fra', 'eng']– une langue non latine associée à deux langues latines['latn', 'cjk']– deux scripts différents
Extraction de texte à partir d'images avec le paramètre ocr_mode
Vous pouvez spécifier comment traiter le texte dans les images de votre document en utilisant la reconnaissance optique de caractères (OCR). Spécifiez le paramètre suivant dans le corps de la requête API :
"parameters": {
"ocr_mode": "enabled"
}
Le tableau suivant fournit des détails sur les différents modes d'OCR que vous pouvez utiliser pour spécifier le traitement des images dans votre demande d'API :
| Mode OCR | Descriptif |
|---|---|
disabled |
Les fichiers images et les documents numérisés ne sont pas traités. Pour les documents hybrides qui contiennent à la fois des images et du texte, seul le texte est extrait. |
enabled |
L'OCR n'est exécutée que si aucun texte n'a pu être extrait du document. Les images intégrées dans les documents sont traitées. |
forced |
Chaque page du document est convertie en image et traitée par OCR. Tous les types de documents, y compris les fichiers texte, sont convertis en images avant d'être traités. |
Configuration du pipeline de traitement des paires clé-valeur avec le paramètre semantic_config
Vous pouvez identifier et extraire des informations structurées sous forme de paires clé-valeur à partir de documents non structurés ou semi-structurés tels que des factures, des formulaires, des contrats ou des reçus. Le texte traité est dans un format où chaque donnée (la valeur) est associée à un identifiant unique (la clé). Les données de paires clé-valeur sont traitées à l'aide d'un modèle de base général ou d'un modèle adapté à des formats de documents spécifiques.
Pour traiter les données de paires clé-valeur, assurez-vous que les GPU et les modèles de base requis sont installés dans votre cluster. Pour plus de détails, consultez la section Modèles de base dans watsonx.ai la documentation IBMSoftware Hub.
Vous pouvez utiliser l'API de classification de texte pour vérifier rapidement si un document peut être classé dans l'un des schémas prédéfinis pour les types de documents courants sans procéder à l'extraction des paires clé-valeur. Si le document ne correspond pas à un type prédéfini, vous pouvez alors définir un nouveau type de document et un schéma personnalisé avant de lancer une requête API d'extraction de texte.
Utilisez divers paramètres semantic_config dans le corps de la requête de l'API REST pour configurer les capacités suivantes du pipeline de traitement des paires clé-valeur :
Vous définissez également dans le semantic_config paramètre les champs spécifiques à la méthode API d'extraction de texte. Pour plus d'informations, consultez la section « Spécification de la manière d'extraire les données sous forme de paires clé-valeur ».
Langues prises en charge :
- Chinois
- Anglais
- Français
- Allemand
- Italien
- Japonais
- Portugais
- Espagnol
Définition de schémas avec le champ schemas
En fonction de la mise en page, les documents peuvent être classés dans les types suivants :
- Documents à structure variable
- Les documents sans structure cohérente, tels que les factures, les bons de commande ou les passeports, dont la structure s'étend sur plusieurs pages.
- Documents à mise en page fixe
- Documents structurés dont chaque page suit un format prédéfini, comme un formulaire fiscal dont chaque page a une mise en page spécifique.
Schémas prédéfinis
Vous pouvez classer ou extraire le texte de vos fichiers dans des schémas prédéfinis pour les types de documents courants suivants :
- Facture
- Facture de services publics
- Document de prêt hypothécaire
- Connaissement
- Formulaire douanier
- Accusé de réception
- Rapport de dépenses
- Réception
- Bon de commande
- Formulaire fiscal
- État financier
- Avis de remise ou de paiement
- Relevé bancaire
- Relevé de carte de crédit
- Permis de conduire
- Passeport
- Carte d'identité nationale
- W-4 formulaire
- I-9 formulaire
- Formulaire d'admission du patient
- Demande d'indemnisation
- Transcript
- Diplôme ou certification
- Formulaire de demande d'indemnisation en cas d'invalidité standard pour l'assurance vie
- Formulaire d'autorisation pour l'assurance vie standard
- Formulaire d'assurance standardisé de l'Association for Cooperative Operations Research and Development (ACORD)
- Déclaration du demandeur - formulaire de demande d'indemnisation en cas de décès
- Licence et permis d'exploitation
Schémas personnalisés
Si vos documents contiennent un contenu structuré unique, vous pouvez fournir un schéma personnalisé qui définit des données spécifiques et des identifiants uniques. Lorsque vous spécifiez un schéma personnalisé, le processus d'extraction de texte passe automatiquement outre la classification du document dans l'un des schémas prédéfinis et n'utilise que le schéma que vous avez fourni dans le paramètre schemas de la page semantic_config.
Pour plus d'informations sur la définition des paramètres dans un schéma personnalisé, voir Création de schémas personnalisés pour l'extraction de paires clé-valeur.
L'exemple suivant fournit un schéma personnalisé pour un reçu dans le corps de la requête de l'API REST :
"semantic_config": {
"schemas": [ {
"document_type": "Receipt",
"document_description": "A receipt issued for a purchase at ABC store.",
"fields": {
"receipt_number": {
"default": "",
"example": "R-20241027-ABC",
"description": "Unique identifier on the receipt."
},
"customer_name": {
"default": "",
"example": "John Smith",
"description": "Full name of the customer or payee."
},
"date_of_transaction": {
"default": "",
"example": "2023-01-01",
"description": "Date when the purchase or payment occurred."
},
"total_paid": {
"default": "",
"example": "8.64",
"description": "Final amount paid by the customer."
},
"payment_method": {
"default": "",
"example": "Credit Card",
"description": "How payment was made, such as cash, card, check, etc.)."
},
}
} ]
}
Contrôle de l'interaction entre les schémas prédéfinis et personnalisés et le champ schemas_merge_strategy
Vous pouvez définir comment les schémas personnalisés que vous créez interagissent avec les schémas prédéfinis pris en charge par l'API de traitement de texte.
Le tableau suivant détaille les différentes manières dont les schémas prédéfinis et personnalisés sont traités lorsque vous configurez l'option schemas_merge_strategy dans le paramètre semantic_config :
| Définition de la stratégie de schéma | Descriptif |
|---|---|
replace |
Abandonner tous les schémas prédéfinis et n'utiliser que le schéma personnalisé. |
merge |
Les schémas personnalisés sont fusionnés avec tous les schémas prédéfinis qui partagent le même attribut document_type dans la définition du schéma et les remplacent. |
Par défaut, si vous créez un schéma personnalisé pour un type de document qui correspond à un schéma prédéfini pris en charge, les deux schémas sont fusionnés avant d'être utilisés pour traiter les données des paires clé-valeur dans votre document.