Tokenisation : comment découper un texte dans les langues écrites sans espaces ?

Là où langues et technologies se rencontrent

er-tim.fr

Pourquoi la tokenisation ne consiste pas toujours à séparer les mots par des espaces

Dans de nombreuses applications numériques, le traitement d’un texte commence par une opération appelée tokenisation. Elle consiste à transformer une suite de caractères en unités manipulables par un programme. Ces unités peuvent être des mots, des morceaux de mots, des signes de ponctuation ou des sous-unités adaptées à un modèle d’intelligence artificielle. Dans une langue comme le français, le découpage paraît souvent direct : les espaces donnent une première indication sur les limites entre les mots. Cette approche rencontre toutefois ses limites avec les contractions, les apostrophes, les nombres, les adresses électroniques et les langues dont l’écriture ne sépare pas systématiquement les mots par des espaces.

Le chinois, le japonais et le thaï illustrent particulièrement ce problème. Une phrase peut être écrite comme une suite continue de caractères, sans marque visible indiquant où commence ou se termine chaque mot. Pour un lecteur humain, le contexte, la connaissance du vocabulaire et la grammaire permettent d’interpréter la phrase. Pour un logiciel, le texte doit être analysé à partir de plusieurs indices. La tokenisation devient alors une opération linguistique, et non une simple séparation mécanique.

Cette distinction est importante pour la recherche, la traduction automatique, la correction, l’analyse de sentiment, la reconnaissance vocale, les assistants conversationnels et les systèmes de classement. Un mauvais découpage peut modifier le sens d’une phrase, réduire la pertinence des résultats ou produire des représentations incohérentes pour un modèle statistique ou neuronal.

Mot, caractère, syllabe ou sous-mot : que désigne réellement un token ?

Le terme token ne correspond pas à une définition unique. Dans un outil d’analyse linguistique traditionnel, un token peut être un mot, un signe de ponctuation ou un nombre. Dans un modèle de langage récent, le même terme désigne souvent une unité issue d’un algorithme de segmentation en sous-mots. Cette unité peut correspondre à un mot entier, à une partie fréquente d’un mot ou à un caractère isolé.

Il faut donc distinguer plusieurs niveaux :

Un système de recherche peut avoir besoin de mots linguistiquement interprétables, tandis qu’un modèle de langage peut privilégier des sous-unités réutilisables. Les deux opérations sont liées, mais elles ne répondent pas au même objectif. Parler de tokenisation sans préciser le niveau d’analyse peut donc prêter à confusion.

Pourquoi les langues sans espaces posent un problème particulier

Dans une écriture continue, une même séquence de caractères peut être découpée de plusieurs manières. Le système doit choisir une segmentation compatible avec le vocabulaire, la syntaxe et le contexte. Une suite de caractères peut contenir un nom propre, un verbe, une particule grammaticale ou une expression composée. Le découpage le plus probable dépend souvent des caractères voisins.

Le chinois utilise des caractères qui peuvent représenter des éléments porteurs de sens, mais la frontière entre les mots n’est pas matérialisée par un espace. Le japonais combine plusieurs systèmes d’écriture, notamment les kanji, les hiragana, les katakana et les caractères latins. Cette combinaison donne des indices utiles, sans résoudre tous les cas ambigus. Le thaï utilise également une écriture où les espaces séparent plutôt des groupes de mots ou des unités syntaxiques que chaque mot pris isolément.

D’autres difficultés apparaissent dans les messages numériques. Les utilisateurs mélangent parfois des alphabets, des chiffres, des émoticônes, des abréviations et des noms de produits. Les noms propres, les termes techniques et les mots nouveaux sont souvent absents des dictionnaires. Une méthode fondée uniquement sur un lexique connu risque alors de produire un découpage incomplet.

La segmentation doit aussi tenir compte de la fonction du texte. Pour une traduction, la structure grammaticale et les unités lexicales sont prioritaires. Pour un moteur de recherche, il peut être utile de conserver plusieurs variantes de découpage afin de retrouver une expression malgré une segmentation incertaine. Pour un modèle de langage, la cohérence statistique des unités peut être plus importante que leur correspondance avec des mots identifiables par un linguiste.

Les principales méthodes de segmentation linguistique

Plusieurs familles de méthodes sont utilisées pour découper les textes sans espaces. Elles peuvent être combinées dans une chaîne de traitement qui commence par la normalisation et se termine par une analyse contextuelle.

  1. La segmentation par dictionnaire recherche dans un lexique les mots présents dans la séquence. Lorsqu’il existe plusieurs possibilités, l’algorithme peut choisir le mot le plus long, le mot le plus fréquent ou une combinaison qui couvre toute la phrase. Cette méthode est rapide et compréhensible, mais elle dépend fortement de la qualité du dictionnaire.
  2. La programmation dynamique compare plusieurs découpages possibles et attribue un score à chacun. Le score peut intégrer la fréquence des mots, les probabilités de succession et des règles grammaticales. L’algorithme conserve la meilleure combinaison selon le modèle choisi.
  3. Les modèles statistiques apprennent les séquences de caractères ou de segments observées dans des corpus annotés. Ils peuvent estimer la probabilité qu’une frontière de mot apparaisse à un endroit donné. Leur qualité dépend de la représentativité des données d’apprentissage.
  4. Les réseaux neuronaux exploitent le contexte plus largement. Ils peuvent prendre en compte les caractères précédents et suivants, ainsi que la structure globale de la phrase. Ils sont puissants, mais demandent des données adaptées et sont moins transparents lorsqu’une erreur survient.
  5. Les approches hybrides associent dictionnaires, règles, statistiques et modèles neuronaux. Elles permettent de traiter les termes connus tout en conservant une solution pour les mots nouveaux, les noms propres et les formulations inhabituelles.

Dans la pratique, le meilleur choix dépend du corpus, de la langue, du domaine et de l’usage final. Une méthode adaptée à des articles de presse peut produire de mauvais résultats sur des conversations courtes ou des catalogues techniques.

La segmentation en sous-mots pour les modèles de langage

Les modèles de langage utilisent souvent une tokenisation en sous-mots. Cette approche évite de créer un vocabulaire contenant chaque mot possible. Un mot fréquent peut être conservé comme une unité complète, tandis qu’un mot rare est divisé en fragments connus. Un terme technique ou un mot composé peut ainsi être représenté par plusieurs morceaux réutilisables dans d’autres contextes.

Parmi les familles d’algorithmes courantes figurent les méthodes fondées sur des paires de segments fréquentes, les modèles probabilistes de sous-mots et les segmentations produites à partir de caractères ou de séquences Unicode. Ces méthodes n’ont pas besoin de reconstruire parfaitement les mots selon une analyse grammaticale traditionnelle. Elles cherchent plutôt un compromis entre la taille du vocabulaire, la longueur des séquences et la capacité à représenter des textes variés.

Pour les langues sans espaces, la segmentation en caractères ou en sous-séquences peut être particulièrement utile. Elle limite le nombre de mots inconnus, mais elle ne garantit pas une compréhension linguistique. Deux caractères appartenant au même mot peuvent être séparés, tandis qu’une unité statistique peut traverser une frontière de mot. Le token généré sert alors de représentation informatique, pas nécessairement d’unité linguistique.

Cette différence a une conséquence pratique : le nombre de tokens ne correspond pas toujours au nombre de mots affichés. La longueur apparente d’un texte et son coût de traitement peuvent évoluer différemment selon la langue, le vocabulaire, les caractères utilisés et l’algorithme choisi. Toute estimation technique doit donc préciser le tokenizer concerné.

Comment concevoir une chaîne de traitement fiable

Un projet de segmentation gagne à être organisé en étapes distinctes. Mélanger toutes les transformations dans une seule opération rend les erreurs difficiles à diagnostiquer.

  1. Identifier les données : préciser la langue, le type de documents, le niveau de formalité, la présence de noms propres et le domaine concerné.
  2. Conserver le texte original : garder une copie non modifiée permet de comparer les résultats et de revenir en arrière lorsqu’une règle de normalisation dégrade l’information.
  3. Normaliser avec prudence : harmoniser certains caractères Unicode, les espaces invisibles ou les variantes de ponctuation, sans supprimer les éléments qui portent du sens.
  4. Détecter les frontières évidentes : traiter les signes de ponctuation, les nombres, les adresses électroniques, les URL, les émoticônes et les suites alphanumériques selon des règles adaptées.
  5. Appliquer la segmentation linguistique : utiliser un dictionnaire, un modèle statistique ou un système neuronal correspondant à la langue et au domaine.
  6. Prévoir les mots inconnus : conserver une stratégie de repli fondée sur les caractères ou les sous-mots pour éviter la perte d’information.
  7. Évaluer les résultats : comparer la sortie à un échantillon annoté manuellement et examiner les erreurs par catégorie.

La conservation des positions dans le texte source est également utile. Elle permet de relier chaque token à son emplacement original, ce qui facilite la recherche, la surbrillance d’un terme et l’explication d’une erreur de traitement.

Les erreurs fréquentes et leurs conséquences

Une segmentation incorrecte peut avoir des effets différents selon l’application. Dans un moteur de recherche, un découpage trop large peut empêcher la recherche d’un composant d’expression. Un découpage trop fin peut au contraire générer du bruit et rapprocher des termes qui ne devraient pas être associés. Dans une traduction automatique, une mauvaise frontière peut modifier la fonction grammaticale d’un segment ou confondre un nom propre avec une expression courante.

Les erreurs les plus fréquentes concernent les mots composés, les noms de personnes, les lieux, les marques, les termes scientifiques, les chiffres et les expressions nouvelles. Les textes courts sont parfois plus difficiles à interpréter, car ils fournissent moins de contexte. Les conversations contiennent aussi des fautes de frappe, des répétitions et des formes abrégées qui ne figurent pas dans les corpus standards.

Une autre erreur consiste à appliquer un outil conçu pour une langue à une autre langue proche sans vérifier ses hypothèses. La présence ou l’absence d’espaces, la fonction de la ponctuation et la structure des mots varient considérablement. Le résultat peut sembler plausible tout en étant linguistiquement incorrect.

Pour réduire ces risques, il est préférable de mesurer séparément plusieurs aspects : la couverture du texte, la précision des frontières, la conservation des caractères et la stabilité sur des données nouvelles. Une évaluation globale peut masquer un problème important sur les noms propres ou les termes techniques.

Comment tester une tokenisation sur ses propres textes

Un test utile commence par un corpus représentatif du traitement prévu. Il peut contenir des phrases courtes et longues, des nombres, des noms propres, des termes spécialisés, de la ponctuation, des mots nouveaux et des exemples réellement rencontrés dans les documents à traiter. L’objectif n’est pas de sélectionner uniquement des phrases bien formées, mais de couvrir les cas susceptibles de provoquer une erreur.

La procédure peut suivre ce cadre :

  1. Rassembler un échantillon dont l’utilisation est autorisée et supprimer les informations personnelles qui ne sont pas nécessaires au test.
  2. Annoter manuellement les frontières attendues, en documentant les choix discutables et les conventions retenues.
  3. Exécuter plusieurs configurations de tokenisation plutôt que de retenir le premier résultat disponible.
  4. Comparer les frontières produites avec les frontières de référence, en séparant les erreurs de découpage, les caractères perdus et les unités ajoutées à tort.
  5. Examiner les résultats par catégorie de texte, car une moyenne générale peut cacher une faiblesse sur les noms propres ou les messages courts.
  6. Conserver les exemples problématiques dans une suite de tests réutilisable après chaque modification.

Les conventions doivent être écrites avant la comparaison. Par exemple, deux systèmes peuvent traiter différemment une ponctuation collée à un mot ou une expression composée tout en restant cohérents avec leur objectif. La question n’est pas de rechercher une sortie universelle, mais de vérifier que le découpage répond au besoin défini.

Comparaison des approches selon le besoin

ApprocheAtout principalLimite à surveillerUsage pertinent
DictionnaireRésultat lisible et règles compréhensiblesVocabulaire incomplet et ambiguïtésCorpus spécialisés et terminologie contrôlée
Règles et heuristiquesTraitement rapide de formats prévisiblesFragilité face aux formulations nouvellesNombres, ponctuation et données structurées
Modèle statistiquePrise en compte des fréquences et du contexte localDépendance aux données d’apprentissageTextes homogènes et corpus annotés
Modèle neuronalContexte étendu et adaptation à des cas complexesCoût, opacité et besoin de validationApplications multilingues et analyse avancée
Sous-motsBonne gestion des mots rares et inconnusUnités qui ne correspondent pas toujours aux motsModèles de langage et représentations générales

Ce tableau ne désigne pas une méthode universellement supérieure. Un système de production peut associer plusieurs niveaux : règles pour les formats particuliers, segmentation linguistique pour les phrases et sous-mots pour la représentation destinée à un modèle. La séparation des étapes rend le comportement plus contrôlable et permet de remplacer un composant sans réécrire toute la chaîne.

Précautions concernant les données et les outils de traitement

La tokenisation intervient souvent avant une indexation, une traduction ou une analyse automatique. Les textes transmis à un outil peuvent contenir des informations personnelles, des données professionnelles ou des passages confidentiels. Avant toute expérimentation, il faut vérifier où les données sont traitées, combien de temps elles sont conservées et quelles conditions encadrent leur réutilisation. Lorsque le traitement peut être réalisé localement, cette option réduit la circulation du contenu, mais elle demande une installation et une maintenance maîtrisées.

Les fichiers de configuration, les modèles téléchargés et les journaux d’exécution méritent aussi une attention particulière. Un journal peut enregistrer le texte source au lieu de conserver uniquement des statistiques. Les sauvegardes doivent être protégées selon le niveau de sensibilité des documents. Les versions de l’outil et du modèle doivent être notées, car une mise à jour peut modifier le vocabulaire, les règles ou la segmentation obtenue.

Pour un résultat reproductible, il est utile de conserver la langue déclarée, les paramètres de normalisation, la version du tokenizer et les règles appliquées. Cette traçabilité permet d’expliquer pourquoi deux traitements effectués à des dates différentes ne produisent pas exactement la même sortie.

FAQ sur la tokenisation des langues sans espaces

La tokenisation permet-elle de trouver automatiquement les mots chinois ou japonais ?

Elle peut produire une segmentation probable, mais aucun découpage ne doit être considéré comme infaillible. Les ambiguïtés, les noms propres et les termes nouveaux nécessitent un modèle adapté et une évaluation sur le corpus réellement utilisé.

Un caractère chinois correspond-il toujours à un token ?

Non. Selon l’outil, plusieurs caractères peuvent former un token, un mot peut être divisé en plusieurs unités ou un caractère peut être combiné avec d’autres éléments. Le token dépend de l’algorithme et de son vocabulaire.

Pourquoi conserver les espaces si la langue n’en utilise pas pour séparer les mots ?

Les espaces peuvent séparer des groupes syntaxiques, marquer une structure éditoriale ou apparaître dans des contenus mélangés avec des chiffres et des caractères latins. Les supprimer sans analyse peut faire perdre une information utile.

Faut-il utiliser le même tokenizer pour toutes les langues ?

Non. Un outil multilingue peut être pratique, mais ses performances varient selon les écritures et les corpus. Une configuration ou un modèle spécialisé peut mieux convenir à une langue et à un domaine précis.

Comment choisir entre mots et sous-mots ?

Le choix dépend de l’objectif. Une analyse linguistique, une recherche ou une extraction de termes demande souvent des unités interprétables. Un modèle de langage peut préférer des sous-mots pour gérer le vocabulaire rare. Dans les deux cas, un test sur des données représentatives reste nécessaire.

En savoir plus à ce sujet :