Science

Normalisation des codes de langue

Dans cet article, nous expliquons comment le mappage entre la langue de saisie et les langues prises en charge par les fournisseurs est effectué afin de faciliter l'accès à l'un de nos moteurs d'IA. ‍

Normalisation des codes de langue
TABLE DES MATIÈRES

par Adnane Guettaf - 28 juillet 2022

Eden AI vise à simplifier l'utilisation et le déploiement des technologies d'IA en fournissant une API unique qui se connecte aux meilleurs moteurs d'IA possibles. Ces moteurs peuvent être utilisés à différentes fins, par exemple détection de visage, OCR (reçu, facture, tableau, etc.), extraction de mots clés, analyse des sentiments, détection de visage, et bien plus encore. L'objectif principal d'Eden AI est de fournir à ses clients le meilleur moteur d'IA adapté à leurs projets, afin que l'IA reste légère et facile pour tout développeur. Pour ce faire, une grande partie du traitement en arrière-plan est effectuée en arrière-plan, sans interférer ni obliger les utilisateurs à faire face à des contraintes, notamment linguistiques.

Aujourd'hui encore, la façon dont les langues sont codées dans certaines applications peut prêter à confusion. Différentes balises normalisées ou représentations de code des noms de langues sont publiées et disponibles. Cependant, la correspondance entre les noms de différentes langues, en particulier lorsqu'ils sont accompagnés de différents codes d'identification (par exemple, l'anglais peut être codé avec « en » ou « eng »), peut être difficile à gérer pour nos clients.

Par conséquent, dans cet article, nous décrivons comment le mappage linguistique est géré par notre service. En d'autres termes, nous expliquons comment la correspondance entre la langue de saisie fournie par l'utilisateur et les langues prises en charge par les fournisseurs est effectuée afin de faciliter l'accès de l'utilisateur à l'un de nos moteurs d'IA.

Normalisation des noms de langues

La normalisation des noms de langue est le processus d'encodage, de normalisation et de gestion des noms de langue conformément à certaines normes internationales. Une organisation bien connue qui développe et publie des normes pour tous les domaines techniques et non techniques, à l'exception des domaines de l'ingénierie électrique et électronique, est le Organisation internationale de normalisation, également connu sous l'acronyme ISO. Dans le rappel de cette section, nous nous concentrerons sur les normes concernant les codes de noms de langues.

Okẽndusu:Ñe'ẽ - Vikipetã
Eden AI- Standardisation des noms de langues

NORME ISO 639

Remplacer le nom d'une langue par un code équivalent (2 ou 3 lettres) peut être très utile pour les catalogues de bibliothèques ou à des fins bibliographiques, pour les bibliothèques de gestion de l'information, pour identifier les langues dans les systèmes informatiques et également pour représenter différentes versions linguistiques dans des applications Web sur Internet.

ISO 9001:2015 Certification: What Is It and What Does It Mean? – Custom  Truck One Source
Eden AI - ISO 639

La norme ISO 639 est actuellement composée de cinq parties, chacune d'entre elles étant maintenue par une agence chargée des révisions, en particulier lorsque l'ajout de nouveaux codes est nécessaire. Chaque code d'une partie signifie la même chose dans une autre partie, mais toutes les langues ne sont pas disponibles dans toutes les parties. Chacune des cinq parties de l'ISO 639 est brièvement décrite ci-dessous :

ISO 639-1 — Partie 1

Code Alpha-2. Il fournit un élément de code de langue composé de deux lettres pour identifier les noms des langues. Il couvre les principales langues du monde avec 184 codes enregistrés à ce jour et peut être adapté aux applications de systèmes informatiques. Par exemple, « en » peut être utilisé pour identifier le nom de la langue anglais, ou « fr » pour identifier la langue française.

ISO 639-2 — Partie 2

Code Alpha-3. La norme ISO 639-1 n'étant pas adaptée à un nombre suffisant de langues, la norme ISO 639-2, qui utilise une identification linguistique à trois lettres pour la représentation des noms de langues, propose davantage de combinaisons possibles et une couverture linguistique plus étendue.

ISO 639-3 — Partie 3

Code Alpha-3. Avec les trois mêmes lettres d'identification de langue, l'ISO 639-3 étend les normes ISO 639-1 et ISO 639-2 afin de couvrir toutes les langues naturelles connues. Il fournit une énumération presque complète de toutes les langues complètes avec près de 8 000 entrées et est conçu pour être utilisé dans un large éventail d'applications.

ISO 639-4 — Partie 4

Principes généraux du codage des langues et directives d'utilisation. Donne les principes généraux du codage des langues à l'aide de codes spécifiés dans d'autres parties de l'ISO 639 et de leurs combinaisons avec d'autres codes. Il fournit également des directives pour l'utilisation de n'importe quelle combinaison de pièces ISO 639.

ISO 639-5 — Partie 5

Familles et groupes linguistiques. Énumérez environ 115 codes collectifs qui identifient les familles et les groupes linguistiques. Toutefois, les langues conçues exclusivement pour une utilisation sur machine ne sont pas incluses dans cette partie.

Balise de langue IETF BCP 47

Le langage IETF BCP 47 définit des codes ou des balises standardisés utilisés pour identifier le langage humain sur Internet. La structure des balises est normalisée par Groupe de travail sur l'ingénierie Internet (IETF). BCP 47 signifie « »Meilleure pratique actuelle'et est un nom persistant pour une série de RFC qui décrivent la syntaxe des balises de langue. Le dernier est RÉF C 5646, et permet d'ajouter un certain nombre de sous-étiquettes supplémentaires. Les sous-étiquettes utilisées sont gérées par Registre des sous-étiquettes linguistiques de l'IANA (INA)) et peuvent être de différents types, par exemple language—extlang—script—région—variant—extension—usage privé. La figure 2 ci-dessous montre un exemple de balises.

La contribution d'Eden AI à la gestion des langues

Eden AI - Exemple de code de langue

Étant donné qu'Eden AI vise à faciliter l'utilisation de l'IA pour les développeurs, les utilisateurs qui utilisent notre API ne devraient pas avoir à se soucier des contraintes linguistiques posées par chacun de nos fournisseurs. Les utilisateurs sélectionnent simplement la langue qu'ils souhaitent utiliser lorsqu'ils utilisent nos services, sans être gênés par la manière dont ils fournissent le nom de la langue, ni par la normalisation ou les balises à utiliser. L'interpolation linguistique entre les entrées de l'utilisateur et les contraintes du fournisseur est effectuée par notre service.

Pour mieux illustrer le problème, nous présenterons un cas d'utilisation simplifié. Une technologie (nous examinerons le traitement des factures avec l'OCR dans cet exemple) est fournie par trois fournisseurs différents : A, B et C, chacun utilisant un ensemble différent de contraintes linguistiques. Le fournisseur A gère le traitement de la liste de balises de langue suivante : ["en-US », « fr-FR », « fr-CA"]. Le fournisseur B gère le traitement pour ["it », « en-GB », « ceb-CB », « fr-BE »], et le fournisseur C gère la liste suivante de balises de langue ["fr-FR », « it », « ar"].

Les trois fournisseurs sont disponibles via notre service. Un utilisateur du nom de Mike souhaite utiliser le traitement des factures pour une facture rédigée en anglais. Cependant, Mike ne sait pas si l'anglais utilisé sur la facture est l'anglais américain, l'anglais britannique ou un autre type d'anglais parlé. Par souci de simplicité, Mike essaiera de traiter le document en spécifiant simplement qu'il est écrit en anglais (« en »).

Notre service associera la langue sélectionnée par Mike (« en » dans cet exemple) aux langues fournies par les fournisseurs, en choisissant la meilleure étiquette de langue qui correspond au choix de Mike, même s'il n'y a pas de correspondance exacte. Le fournisseur A doit utiliser l'anglais américain (« en-US »). Le fournisseur B considérera l'anglais britannique (« en-GB ») comme langue de traitement, tandis que le fournisseur C ne fournira aucun résultat car cette dernière langue ne correspond pas à la demande de Mike.

Développement de solutions

Afin d'effectuer le mappage linguistique approprié entre la langue sélectionnée par l'utilisateur et les balises de langue prises en charge par le fournisseur, différentes approches ont été étudiées et testées. Nous avons commencé par comprendre comment les noms de langues sont normalisés selon les normes approuvées au niveau international. Nous avons ensuite exploré les meilleures pratiques actuelles pour identifier les langages humains sur Internet et pour les applications Web. Nous avons pu trouver des bibliothèques tierces pertinentes pour la programmation Python qui fournissent des informations sur la gestion des codes de noms de langue ISO 639. Nous en listons quelques-uns :

- iso639 lang. 1 bibliothèque légère qui gère la série de normes internationales ISO 639 pour les codes de langue et permet de passer facilement d'un code de langue à un autre. Par exemple, il permet de passer facilement d'une identification de langue à deux lettres (ISO 639-1) à une identification de langue à trois lettres (ISO 639-2 ou ISO 639-3).

- pays pyjama. 1 bibliothèque qui fournit des bases de données ISO pour chacune des normes suivantes : langues ISO 639-3, pays ISO 3166, pays supprimés ISO 3166-3, subdivision des pays ISO 3166-2, devises ISO 4217 et ISO 15924 pour les scripts.

- langcodes. Fournit des outils très intuitifs et légers pour gérer les codes de langue. En plus des multiples fonctionnalités fournies par la bibliothèque, par exemple la standardisation des balises de langue, la vérification de la validité des balises de langue ou l'obtention de données linguistiques démographiques. Une fonctionnalité utile pour la correspondance linguistique est la recherche de la meilleure fonctionnalité linguistique correspondante. Cette fonctionnalité vous permet de choisir la bonne langue, même s'il n'y a pas de correspondance exacte, et renvoie la balise de langue de la meilleure langue prise en charge.

Pour la conception et la mise en œuvre de notre solution, nous avons choisi de nous appuyer sur cette dernière bibliothèque, car elle nous permet de sélectionner la meilleure correspondance entre les langues prises en charge par le fournisseur et la langue de saisie fournie par l'utilisateur.

Prochaines étapes

Il est important pour nous de gérer les préférences des utilisateurs jusque dans les moindres détails tout en gérant la grande complexité que représentent les langues (+200 langues prises en charge pour le moment). Il est important pour Eden AI de pouvoir faire bénéficier les utilisateurs de toutes les possibilités offertes par les différents fournisseurs intégrés.

Nous pensons qu'à l'avenir, une véritable norme robuste émergera et sera suivie par tous les fournisseurs de services. Nous nous efforçons d'y contribuer à notre échelle. N'hésitez pas à nous contacter si ce sujet vous intéresse.

Commencez votre aventure avec l’IA dès aujourd’hui

  • Accédez à plus de 100 API d’IA sur une seule plateforme.
  • Comparez et déployez des modèles d’IA en toute simplicité.
  • Paiement à l’usage, sans frais initiaux.
Commencez à créer GRATUITEMENT

Articles connexes

Essayez Eden AI gratuitement.

Vous pouvez commencer à créer dès maintenant. Si vous avez des questions, n'hésitez pas à discuter avec nous !

CommencezContactez le service commercial
X

Commencez votre parcours IA dès aujourd'hui!

Inscrivez-vous dès maintenant avec des crédits gratuits pour explorer plus de 100 API d'IA.
Commencer