Cursus
Dans le domaine du traitement du langage naturel (NLP) et de l'apprentissage automatique, la tokenisation désigne le processus consistant à convertir une séquence de texte en éléments plus petits, appelés tokens. Ces jetons peuvent être aussi courts que des caractères ou aussi longs que des mots. La raison principale pour laquelle ce processus est important est qu'il aide les machines à comprendre le langage humain en le décomposant en éléments plus petits, plus faciles à analyser.
L'amélioration de l'IA pour les débutants
Qu'est-ce que la tokenisation ?
Imaginez que vous essayez d'apprendre à un enfant à lire. Au lieu de vous lancer directement dans des paragraphes complexes, vous commenceriez par leur présenter les lettres individuelles, puis les syllabes et enfin les mots entiers. De la même manière, la tokenisation divise de longs passages de texte en unités plus digestes et compréhensibles pour les machines.
L'objectif principal de la tokenisation est de représenter le texte d'une manière qui soit significative pour les machines sans perdre son contexte. En convertissant le texte en jetons, les algorithmes peuvent identifier plus facilement les modèles. Cette reconnaissance des formes est essentielle, car elle permet aux machines de comprendre et de répondre aux commandes humaines. Par exemple, lorsqu'une machine rencontre le mot « courir », elle ne le considère pas comme une entité unique, mais plutôt comme une combinaison de tokens qu'elle peut analyser et dont elle peut déduire le sens.
Pour approfondir le fonctionnement, considérons la phrase suivante : « Les chatbots sont utiles. » Lorsque nous tokenisons cette phrase par mots, elle se transforme en un tableau de mots individuels :
["Chatbots", "are", "helpful"].
Il s'agit d'une approche simple où les espaces déterminent généralement les limites des jetons. Cependant, si nous devions tokeniser par caractères, la phrase serait fragmentée en :
["C", "h", "a", "t", "b", "o", "t", "s", " ", "a", "r", "e", " ", "h", "e", "l", "p", "f", "u", "l"].
Cette analyse au niveau des caractères est plus détaillée et peut s'avérer particulièrement utile pour certaines langues ou certaines tâches spécifiques de traitement du langage naturel.
En substance, la tokenisation s'apparente à la dissection d'une phrase pour en comprendre l'anatomie. Tout comme les médecins étudient les cellules individuelles pour comprendre un organe, les praticiens de la PNL utilisent la tokenisation pour disséquer et comprendre la structure et la signification d'un texte.
Il convient de noter que, bien que notre discussion porte principalement sur la tokenisation dans le contexte du traitement du langage, le terme « tokenisation » est également utilisé dans les domaines de la sécurité et de la confidentialité, en particulier dans les pratiques de protection des données telles que la tokenisation des cartes de crédit. Dans de tels scénarios, les éléments de données sensibles sont remplacés par des équivalents non sensibles, appelés jetons. Cette distinction est essentielle pour éviter toute confusion entre les deux contextes.
Types de tokenisation
Les méthodes de tokenisation varient en fonction de la granularité de la décomposition du texte et des exigences spécifiques de la tâche à accomplir. Ces méthodes peuvent aller de la dissection du texte en mots individuels à leur décomposition en caractères ou en unités encore plus petites. Voici un aperçu détaillé des différents types :
- Tokenisation des mots. Cette méthode divise le texte en mots individuels. Il s'agit de l'approche la plus courante, particulièrement efficace pour les langues où les mots sont clairement délimités, comme l'anglais.
- Tokenisation des caractères. Ici, le texte est segmenté en caractères individuels. Cette méthode est particulièrement utile pour les langues qui ne disposent pas de limites claires entre les mots ou pour les tâches qui nécessitent une analyse minutieuse, telles que la correction orthographique.
- Tokenisation des sous-mots. En trouvant un équilibre entre la tokenisation des mots et celle des caractères, cette méthode divise le texte en unités qui peuvent être plus grandes qu'un seul caractère mais plus petites qu'un mot entier. Par exemple, « Chatbots » pourrait être tokenisé en « Chat » et « bots ». Cette approche est particulièrement utile pour les langues qui forment du sens en combinant des unités plus petites ou lorsqu'il s'agit de mots hors vocabulaire dans les tâches de TALN.
Voici un tableau illustrant les différences :
| Type | Description | Cas d'utilisation |
|---|---|---|
| Tokenisation des mots | Divise le texte en mots individuels. | Efficace pour les langues dont les mots sont clairement délimités, comme l'anglais. |
| Tokenisation des caractères | Divise le texte en caractères individuels. | Utile pour les langues sans délimitation claire des mots ou pour les tâches nécessitant une analyse granulaire. |
| Tokenisation des sous-mots | Divise le texte en unités plus grandes que des caractères mais plus petites que des mots. | Avantageux pour les langues présentant une morphologie complexe ou pour le traitement des mots hors vocabulaire. |
Cas d'utilisation de la tokenisation
La tokenisation constitue la base d'une multitude d'applications dans le domaine numérique, permettant aux machines de traiter et de comprendre de grandes quantités de données textuelles. En divisant le texte en segments gérables, la tokenisation permet une analyse des données plus efficace et plus précise. Voici quelques cas d'utilisation notables, accompagnés d'applications concrètes :
Moteurs de recherche
Lorsque vous saisissez une requête dans un moteur de recherche tel que Google, celui-ci utilise la tokenisation pour analyser votre saisie. Cette analyse permet au moteur de passer au crible des milliards de documents afin de vous présenter les résultats les plus pertinents.
Traduction automatique
Des outils tels que Google Translate utilisent la tokenisation pour segmenter les phrases dans la langue source. Une fois tokenisés, ces segments peuvent être traduits puis reconstruits dans la langue cible, garantissant ainsi que la traduction conserve le contexte d'origine.
Reconnaissance vocale
Les assistants vocaux tels que Siri ou Alexa s'appuient fortement sur la tokenisation. Lorsque vous formulez une question ou une commande, vos paroles sont d'abord converties en texte. Ce texte est ensuite tokenisé, ce qui permet au système de traiter votre demande et d'y répondre.
Analyse des sentiments dans les avis
La tokenisation joue un rôle crucial dans l'extraction d'informations à partir du contenu généré par les utilisateurs, tel que les avis sur les produits ou les publications sur les réseaux sociaux. Par exemple, un système d'analyse des sentiments pour les plateformes de commerce électronique pourrait tokeniser les avis des utilisateurs afin de déterminer si les clients expriment des sentiments positifs, neutres ou négatifs. Par exemple :
- La critique :
"This product is amazing, but the delivery was late." - Après la tokenisation :
["This", "product", "is", "amazing", ",", "but", "the", "delivery", "was", "late", "."]
Les tokens « incroyable » et « tardif » peuvent ensuite être traités par le modèle de sentiment afin d'attribuer des étiquettes de sentiment mixtes, fournissant ainsi des informations exploitables pour les entreprises.
Chatbots et assistants virtuels
La tokenisation permet aux chatbots de comprendre et de répondre efficacement aux requêtes des utilisateurs. Par exemple, un chatbot de service client pourrait tokeniser la requête :
"I need to reset my password but can't find the link."
Ceci est tokenisé comme suit : ["I", "need", "to", "reset", "my", "password", "but", "can't", "find", "the", "link"].
Cette analyse aide le chatbot à identifier l'intention de l'utilisateur (« réinitialiser le mot de passe ») et à répondre de manière appropriée, par exemple en fournissant un lien ou des instructions.
Défis liés à la tokenisation
La navigation dans les subtilités du langage humain, avec ses nuances et ses ambiguïtés, présente un ensemble de défis uniques pour la tokenisation. Voici une analyse plus approfondie de certains de ces obstacles, ainsi que les avancées récentes qui permettent de les surmonter :
Ambiguïté
Le langage est intrinsèquement ambigu. Considérons la phrase « Piloter des avions peut être dangereux. » Selon la manière dont cela est interprété, cela pourrait signifier que le pilotage d'avions comporte des risques ou que les avions en vol représentent un danger. De telles ambiguïtés peuvent conduire à des interprétations très différentes.
Langues sans frontières claires
Certaines langues, telles que le chinois, le japonais ou le thaï, ne comportent pas d'espaces distincts entre les mots, ce qui rend la tokenisation plus complexe. Déterminer où un mot se termine et où un autre commence représente un défi important dans ces langues.
Pour remédier à cela, les progrès réalisés dans les modèles de tokenisation multilingues ont permis d'importantes avancées. Par exemple :
- XLM-R (Cross-lingual Language Model - RoBERTa) utilise la tokenisation des sous-mots et un pré-entraînement à grande échelle pour traiter efficacement plus de 100 langues, y compris celles qui ne présentent pas de limites claires entre les mots.
- mBERT (Multilingual BERT) utilise la tokenisation WordPiece et a démontré d'excellentes performances dans diverses langues, excellant dans la compréhension des structures syntaxiques et sémantiques, même dans les langues disposant de peu de ressources.
Ces modèles permettent non seulement de tokeniser efficacement le texte, mais également d'exploiter des vocabulaires de sous-mots communs à plusieurs langues, améliorant ainsi la tokenisation des scripts généralement plus difficiles à traiter.
Gestion des caractères spéciaux
Les textes contiennent souvent plus que de simples mots. Les adresses e-mail, les URL ou les symboles spéciaux peuvent être difficiles à tokeniser. Par exemple, «john.doe@email.com » doit-il être traité comme un seul mot ou divisé au niveau du point ou du symbole « @ » ? Les modèles de tokenisation avancés intègrent désormais des règles et des modèles appris afin de garantir un traitement cohérent de ces cas.
Mise en œuvre de la tokenisation
Le domaine du traitement du langage naturel propose de nombreux outils, chacun étant adapté à des besoins et à des complexités spécifiques. Voici un guide présentant certains des outils et méthodologies les plus importants disponibles pour la tokenisation.
Transformateurs Hugging Face
La bibliothèque Hugging Face Transformers est la référence dans le domaine des applications NLP modernes. Il offre une intégration transparente avec PyTorch et des modèles de transformateurs de pointe, et gère automatiquement la tokenisation via l'API AutoTokenizer. Les principales fonctionnalités comprennent :
AutoTokenizer: Charge automatiquement le tokeniseur pré-entraîné approprié pour tout modèle.- Tokeniseurs rapides : Développés à l'aide de Rust, ces tokeniseurs offrent des améliorations significatives en termes de vitesse, permettant un prétraitement plus rapide des grands ensembles de données.
- Compatibilité pré-entraînée : Les tokeniseurs s'adaptent parfaitement à des modèles spécifiques (BERT, GPT-2, Llama, Mistral, etc.).
- Prise en charge de la tokenisation des sous-mots : La bibliothèque prend en charge les techniques de tokenisation BPE (Byte-Pair Encoding), WordPiece et Unigram, garantissant ainsi un traitement efficace des mots hors vocabulaire et des langues complexes.
spaCy
spaCy est une bibliothèque Python NLP moderne et efficace qui excelle dans les systèmes de production exigeant rapidité et interprétabilité. Contrairement à Hugging Face, il utilise une tokenisation basée sur des règles optimisée pour la précision linguistique.
Quand utiliser spaCy :
- Construction de pipelines NLP traditionnels (reconnaissance d'entités nommées, analyse syntaxique de dépendance)
- Projets n'utilisant pas de modèles de transformateur
- Systèmes critiques en termes de performances nécessitant une tokenisation rapide
NLTK (à des fins éducatives uniquement)
NLTK (Natural Language Toolkit) est une bibliothèque Python fondamentale principalement utilisée pour l'apprentissage et la recherche. Bien qu'il soit toujours fonctionnel, il est considérablement plus lent que les alternatives modernes et n'est pas recommandé pour les systèmes de production.
Veuillez utiliser NLTK uniquement pour :
- Apprendre les concepts du NLP
- Projets éducatifs
- Recherche linguistique
Pour toutes les applications de production, il est recommandé d'utiliser spaCy ou Hugging Face Transformers.
Remarque concernant l'héritage : Tokeniseur Keras
keras.preprocessing.text.Tokenizer est obsolète depuis Keras 3.0 et ne devrait pas être utilisé dans les nouveaux projets. Les projets Keras modernes devraient plutôt utiliser keras.layers.TextVectorization. Pour les tâches de traitement du langage naturel, l'approche recommandée est Hugging Face Transformers.
Techniques avancées de tokenisation
Pour les cas d'utilisation spécialisés ou lors de la création de modèles personnalisés, ces méthodes offrent un contrôle précis :
- Codage par paires d'octets (BPE) : Une méthode de tokenisation adaptative qui fusionne de manière itérative les paires d'octets les plus fréquentes dans un texte. Il s'agit de la tokenisation par défaut pour GPT-2, GPT-3 et la plupart des modèles linguistiques modernes de grande taille. Le BPE est particulièrement efficace pour traiter les mots inconnus et les scripts divers sans pré-traitement spécifique à la langue.
- SentencePiece: Un tokeniseur de texte non supervisé conçu pour les tâches de génération de texte basées sur les réseaux neuronaux. Contrairement à BPE, il peut traiter les espaces comme des jetons et gérer plusieurs langues avec un seul modèle, ce qui le rend idéal pour les projets multilingues et la tokenisation indépendante de la langue.
Les deux méthodes sont disponibles via Hugging Face Transformers ou sous forme de bibliothèques autonomes.
Modélisation sans tokenisation
Bien que la tokenisation soit actuellement essentielle pour un traitement efficace du langage naturel, des recherches émergentes explorent des modèles qui fonctionnent directement sur des octets ou des caractères sans schémas de tokenisation fixes.
Derniers développements :
- Par T5: Modèle pré-entraîné qui fonctionne sur des octets UTF-8 plutôt que sur des tokens de sous-mots, offrant des performances comparables à celles des approches traditionnelles basées sur les tokens, tout en présentant une meilleure robustesse face aux variations au niveau des caractères.
- CharacterBERT: Apprend les représentations au niveau des caractères et construit dynamiquement des plongements de mots à partir de séquences de caractères, éliminant ainsi le besoin d'un vocabulaire fixe.
- Transformateurs hiérarchiques : Innovations architecturales qui acceptent les octets bruts avec une perte d'efficacité minimale grâce à l'utilisation de stratégies de codage hiérarchiques.
Ces approches ne sont pas encore prêtes à être mises en production à grande échelle et restent principalement des pistes de recherche. Cependant, ils offrent des avantages prometteurs en termes de robustesse pour divers langages et scripts.
Pourquoi est-ce important ? Les modèles sans tokenisation pourraient à terme réduire la dépendance vis-à-vis du prétraitement spécifique à la langue et de la gestion du vocabulaire, rendant ainsi les systèmes de TALN plus universellement applicables. Cependant, pour les applications actuelles, la tokenisation traditionnelle demeure la norme en matière d'efficacité et de praticité.
Conclusions finales
La tokenisation est fondamentale pour toutes les applications modernes de traitement du langage naturel, des moteurs de recherche aux grands modèles linguistiques.
Le choix de la méthode et de l'outil de tokenisation a un impact direct sur la précision du modèle, la vitesse d'inférence et les coûts liés à l'API. Il est donc essentiel de bien comprendre les compromis entre les différentes approches. En choisissant la stratégie de tokenisation adaptée à votre cas d'utilisation spécifique, vous pouvez améliorer considérablement les performances et l'efficacité des systèmes de production.
Je recommande de suivre le cours Introduction au traitement du langage naturel en Python pour approfondir vos connaissances sur les techniques de prétraitement et explorer le domaine des tokeniseurs.
Souhaitez-vous en savoir plus sur l'intelligence artificielle et l'apprentissage automatique ? Veuillez consulter les ressources suivantes :
Obtenez une certification de haut niveau en matière d'IA
Questions fréquentes
Quelle est la différence entre la tokenisation par mot et la tokenisation par caractère ?
La tokenisation par mot divise le texte en mots, tandis que la tokenisation par caractère le divise en caractères.
Pourquoi la tokenisation est-elle importante en NLP ?
Il aide les machines à comprendre et à traiter le langage humain en le décomposant en éléments gérables.
Est-il possible d'utiliser plusieurs méthodes de tokenisation sur un même texte ?
Oui, selon la tâche à accomplir, la combinaison de plusieurs méthodes peut donner de meilleurs résultats.
Quels sont les outils de tokenisation les plus couramment utilisés en NLP ?
Les outils de tokenisation les plus populaires utilisés en NLP sont Hugging Face Transformers, spaCy, NLTK, SentencePiece et Byte-Pair Encoding, chacun présentant des atouts distincts adaptés à différentes tâches, des modèles de transformateurs de production aux applications de recherche spécialisées.
Comment la tokenisation fonctionne-t-elle pour des langues telles que le chinois ou le japonais qui ne comportent pas d'espaces ?
La tokenisation utilise des techniques telles que la segmentation au niveau des caractères ou la recherche des limites de mots les plus probables à partir de modèles statistiques pour les langues sans séparateurs de mots explicites.
Comment la tokenisation aide-t-elle les moteurs de recherche à fournir des résultats pertinents ?
Il décompose les requêtes et les documents en unités indexables, ce qui permet des recherches et des correspondances efficaces. Cela favorise la rapidité et la précision.

En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.