Accéder au contenu principal

Qu'est-ce que la tokenisation ?

La tokenisation permet de diviser le texte en parties plus petites afin de faciliter l'analyse par les machines et d'aider ces dernières à comprendre le langage humain.
Actualisé 22 nov. 2024  · 10 min de lecture

La tokenisation, dans le domaine du traitement du langage naturel (NLP) et de l'apprentissage automatique, fait référence au processus de conversion d'une séquence de texte en parties plus petites, connues sous le nom de tokens. Ces jetons peuvent être aussi petits que des caractères ou aussi longs que des mots. La principale raison de l'importance de ce processus est qu'il aide les machines à comprendre le langage humain en le décomposant en petits morceaux, plus faciles à analyser.

L'amélioration de l'IA pour les débutants

Apprenez les bases de l'IA et du ChatGPT en partant de zéro.
Apprendre l'IA Gratuitement

La tokenisation expliquée

Imaginez que vous essayez d'apprendre à lire à un enfant. Au lieu de plonger directement dans des paragraphes complexes, vous commencerez par leur présenter des lettres individuelles, puis des syllabes et enfin des mots entiers. Dans le même ordre d'idées, la tokenisation décompose de vastes étendues de texte en unités plus digestes et plus compréhensibles pour les machines.

L'objectif principal de la tokenisation est de représenter le texte de manière à ce qu'il soit significatif pour les machines sans perdre son contexte. En convertissant le texte en jetons, les algorithmes peuvent plus facilement identifier des modèles. Cette reconnaissance des formes est cruciale car elle permet aux machines de comprendre et de réagir aux données humaines. Par exemple, lorsqu'une machine rencontre le mot "courir", elle ne le considère pas comme une entité singulière, mais plutôt comme une combinaison d'éléments qu'elle peut analyser et dont elle peut déduire le sens.

Pour approfondir les mécanismes, considérez la phrase suivante : "Les chatbots sont utiles". Lorsque nous transformons cette phrase en mots, elle se transforme en un tableau de mots individuels :

["Chatbots", "are", "helpful"].

Il s'agit d'une approche simple dans la mesure où les espaces dictent généralement les limites des jetons. Cependant, si nous devions faire une tokenisation par caractères, la phrase se fragmenterait en :

["C", "h", "a", "t", "b", "o", "t", "s", " ", "a", "r", "e", " ", "h", "e", "l", "p", "f", "u", "l"].

Cette décomposition au niveau des caractères est plus granulaire et peut être particulièrement utile pour certaines langues ou pour des tâches NLP spécifiques.

Par essence, 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 le sens d'un texte.

Il convient de noter que si notre discussion est centrée 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 vie privée, en particulier dans les pratiques de protection des données telles que la tokenisation des cartes de crédit. Dans ce cas, les éléments de données sensibles sont remplacés par des équivalents non sensibles, appelés jetons. Cette distinction est cruciale pour éviter toute confusion entre les deux contextes.

Types de tokenisation

Les méthodes de tokenisation varient en fonction de la granularité du découpage du texte et des exigences spécifiques de la tâche à accomplir. Ces méthodes vont de la dissection du texte en mots individuels à la décomposition en caractères ou même en unités plus petites. Voici un examen plus approfondi des différents types :

  • Baptiser les mots. Cette méthode permet de décomposer le texte en mots individuels. C'est l'approche la plus courante et elle est particulièrement efficace pour les langues dont les frontières entre les mots sont claires, comme l'anglais.
  • La symbolisation des caractères. Ici, le texte est segmenté en caractères individuels. Cette méthode est utile pour les langues dont les frontières entre les mots ne sont pas clairement définies ou pour les tâches nécessitant une analyse granulaire, comme la correction orthographique.
  • Balisage des sous-mots. Cette méthode, qui établit un équilibre entre la tokenisation des mots et des caractères, 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 transformé en "Chat" et "bots". Cette approche est particulièrement utile pour les langues dont le sens est formé par la combinaison d'unités plus petites ou pour traiter les mots hors vocabulaire dans les tâches de NLP.

Voici un tableau expliquant les différences : 

Type Description Cas d'utilisation
Tokenisation des mots Décompose le texte en mots individuels. Efficace pour les langues dont les frontières entre les mots sont claires, comme l'anglais.
Tokenisation des caractères Décompose le texte en caractères individuels. Utile pour les langues dont les frontières entre les mots sont floues ou pour les tâches nécessitant une analyse granulaire.
Tokénisation des sous-mots Décompose le texte en unités plus grandes que des caractères mais plus petites que des mots. Bénéfique pour les langues à morphologie complexe ou pour la gestion des mots hors-vocabulaire.

Cas d'utilisation de la tokenisation

La tokenisation est l'épine dorsale d'une myriade d'applications dans le domaine numérique, permettant aux machines de traiter et de comprendre de grandes quantités de données textuelles. En décomposant le texte en morceaux faciles à gérer, la tokenisation facilite une analyse des données plus efficace et plus précise. Voici quelques cas d'utilisation importants, accompagnés d'applications concrètes :

Moteurs de recherche

Lorsque vous tapez une requête dans un moteur de recherche comme Google, celui-ci utilise la symbolisation pour disséquer votre entrée. Cette ventilation aide le moteur à passer au crible des milliards de documents pour 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 symbolisés, ces segments peuvent être traduits puis reconstruits dans la langue cible, en veillant à ce que la traduction conserve le contexte d'origine.

Reconnaissance vocale

Les assistants à commande vocale tels que Siri ou Alexa s'appuient fortement sur la tokenisation. Lorsque vous posez une question ou donnez un ordre, vos paroles sont d'abord converties en texte. Ce texte est ensuite symbolisé, ce qui permet au système de traiter votre demande et d'y donner suite.

Analyse des sentiments dans les commentaires

La tokenisation joue un rôle crucial dans l'extraction d'informations à partir de contenus générés par les utilisateurs, tels que les commentaires sur les produits ou les messages sur les médias sociaux. Par exemple, un système d'analyse des sentiments pour les plateformes de commerce électronique peut symboliser les commentaires des utilisateurs afin de déterminer si les clients expriment des sentiments positifs, neutres ou négatifs. Par exemple :

  • Le bilan : "This product is amazing, but the delivery was late."
  • Après la tokenisation : ["This", "product", "is", "amazing", ",", "but", "the", "delivery", "was", "late", "."]

Les jetons "incroyable" et "en retard" peuvent ensuite être traités par le modèle de sentiment pour attribuer des étiquettes de sentiment mixtes, fournissant ainsi des informations exploitables aux entreprises.

Chatbots et assistants virtuels

La tokenisation permet aux chatbots de comprendre les données des utilisateurs et d'y répondre efficacement. Par exemple, un chatbot de service à la clientèle peut symboliser la requête :

"I need to reset my password but can't find the link."

Ce qui est symbolisé par : ["I", "need", "to", "reset", "my", "password", "but", "can't", "find", "the", "link"].

Cette répartition aide le chatbot à identifier l'intention de l'utilisateur ("réinitialiser le mot de passe") et à y répondre de manière appropriée, par exemple en fournissant un lien ou des instructions.

Défis de la tokenisation

La navigation dans les méandres 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 des progrès récents qui permettent de les surmonter :

Ambiguïté

La langue est intrinsèquement ambiguë. Considérez la phrase "Piloter un avion peut être dangereux". Selon la façon dont il est symbolisé et interprété, il peut signifier que le fait de piloter un avion est risqué 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, comme le chinois, le japonais ou le thaï, n'ont pas d'espace clair entre les mots, ce qui rend la tokenisation plus complexe. Déterminer où un mot se termine et où un autre commence est un défi important dans ces langues.

Pour y remédier, les modèles de tokenisation multilingue ont fait des progrès considérables. Par exemple :

  • XLM-R (Cross-lingual Language Model - RoBERTa) utilise la tokenisation des sous-mots et une formation préalable à grande échelle pour traiter efficacement plus de 100 langues, y compris celles qui n'ont pas de frontières claires entre les mots.
  • mBERT (Multilingual BERT) utilise la tokenisation WordPiece et a montré de bonnes performances dans une variété de langues, excellant dans la compréhension des structures syntaxiques et sémantiques même dans les langues à faibles ressources.

Ces modèles ne se contentent pas de tokeniser efficacement le texte, ils exploitent également des vocabulaires de sous-mots partagés entre les langues, améliorant ainsi la tokenisation pour les scripts qui sont généralement plus difficiles à traiter.

Traitement des caractères spéciaux

Les textes contiennent souvent plus que des mots. Les adresses électroniques, les URL ou les symboles spéciaux peuvent être difficiles à tokeniser. Par exemple,"john.doe@email.com" doit-il être traité comme un seul jeton 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 pour garantir un traitement cohérent de ces cas.

Mise en œuvre de la tokenisation

Le paysage du traitement du langage naturel offre de nombreux outils, chacun adapté à des besoins et à des complexités spécifiques. Voici un guide des principaux outils et méthodologies disponibles pour la tokenisation :

  • NLTK (Natural Language Toolkit). Véritable pilier de la communauté NLP, NLTK est une bibliothèque Python complète qui répond à un large éventail de besoins linguistiques. Il offre des fonctionnalités de tokenisation de mots et de phrases, ce qui en fait un choix polyvalent pour les débutants comme pour les praticiens chevronnés.
  • Spacy. Alternative moderne et efficace à NLTK, Python est une autre bibliothèque NLP basée sur Python. Il est rapide et prend en charge plusieurs langues, ce qui en fait un favori pour les applications à grande échelle.
  • BERT tokenizer. Issu du modèle pré-entraîné du BERT, ce tokenizer excelle dans la tokenisation contextuelle. Il est capable de gérer les nuances et les ambiguïtés du langage, ce qui en fait un choix de premier ordre pour les projets NLP avancés (voir ce tutoriel sur le NLP avec BERT).
  • Techniques avancées.
    • Codage par paires d'octets (BPE). Méthode de tokenisation adaptative, BPE tokenise sur la base des paires d'octets les plus fréquentes dans un texte. Elle est particulièrement efficace pour les langues qui forment le sens en combinant des unités plus petites.
    • SentencePiece. Un tokenizer et un detokenizer de texte non supervisé principalement pour les tâches de génération de texte basées sur les réseaux neuronaux. Il gère plusieurs langues avec un seul modèle et peut transformer un texte en sous-mots, ce qui le rend polyvalent pour diverses tâches de traitement automatique des langues.

Transformateurs Hugging Face

L'un des outils les plus populaires pour les tâches de NLP, la bibliothèque Hugging Face Transformers offre une intégration transparente avec PyTorch, ce qui la rend idéale à la fois pour la recherche et la production. Cette bibliothèque comprend des tokenizers avancés conçus pour fonctionner avec des modèles de transformateurs de pointe tels que BERT, GPT et RoBERTa. Les principales caractéristiques sont les suivantes :

  • Des tokenizers rapides : Construits en Rust, ces tokenizers offrent des améliorations significatives en termes de vitesse, permettant un prétraitement plus rapide pour les grands ensembles de données.
  • Prise en charge de l'encodage des sous-mots : La bibliothèque prend en charge le codage par paires d'octets (BPE), WordPiece et la tokenisation Unigram, ce qui permet de traiter efficacement les mots hors vocabulaire et les langues complexes.
  • Des tokenizers préformés intégrés : Chaque modèle de la bibliothèque Hugging Face Transformers est accompagné d'un tokenizer préformé correspondant, ce qui garantit la compatibilité et la facilité d'utilisation. Par exemple, le tokenizer de BERT divise le texte en sous-mots, ce qui le rend apte à gérer les nuances linguistiques.

Le choix de l'outil doit correspondre aux exigences spécifiques de votre projet. Pour ceux qui font leurs premiers pas dans le domaine de la PNL, NLTK ou Spacy peuvent offrir une courbe d'apprentissage plus accessible. Toutefois, pour les projets exigeant une compréhension plus approfondie du contexte et des nuances, les transformateurs Hugging Face et le tokenizer BERT s'imposent comme des options robustes.

Comment j'ai utilisé la tokenisation pour un projet de classificateur de notation

J'ai acquis ma première expérience de la tokenisation de texte en travaillant sur un projet de portefeuille il y a trois ans. Le projet portait sur un ensemble de données contenant des avis et des évaluations d'utilisateurs, que j'ai utilisé pour développer un modèle de classification de texte par apprentissage profond. J'ai utilisé `word_tokenize` de NLTK pour nettoyer le texte et `Tokenizer` de Keras pour le prétraiter.

Voyons comment j'ai utilisé les tokenizers dans le projet :

  1. Lorsque l'on travaille avec des données NLP, les tokenizers sont couramment utilisés pour traiter et nettoyer l'ensemble de données textuelles. L'objectif est d'éliminer les mots parasites, la ponctuation et les autres informations non pertinentes du texte. Les tokenizers transforment le texte en une liste de mots, qui peuvent être nettoyés à l'aide d'une fonction de nettoyage de texte.
  2. Ensuite, j'ai utilisé la méthode Keras Tokenizer pour transformer le texte en un tableau à des fins d'analyse et pour préparer les jetons pour le modèle d'apprentissage profond. Dans ce cas, j'ai utilisé le modèle LSTM bidirectionnel, qui a produit les résultats les plus favorables.
  3. Ensuite, j'ai converti les tokens en une séquence en utilisant la fonction`texts_to_sequences`.
  4. Avant d'introduire la séquence dans le modèle, j'ai dû ajouter du rembourrage pour que la séquence de nombres ait la même longueur.
  5. Enfin, j'ai divisé l'ensemble de données en ensembles de formation et de test, j'ai formé le modèle sur l'ensemble de formation et je l'ai évalué sur l'ensemble de test.

Le tokenizer présente de nombreux avantages dans le domaine du traitement du langage naturel, où il est utilisé pour nettoyer, traiter et analyser les données textuelles. Le fait de se concentrer sur le traitement du texte peut améliorer les performances du modèle.

Je vous recommande de suivre le cours Introduction au traitement du langage naturel en Python pour en savoir plus sur les techniques de prétraitement et plonger en profondeur dans le monde des tokenizers.

Vous souhaitez en savoir plus sur l'IA et l'apprentissage automatique ? Consultez ces ressources :

Obtenez une certification de haut niveau en matière d'IA

Démontrez que vous pouvez utiliser l'IA de manière efficace et responsable.

FAQ

Quelle est la différence entre la tokenisation de mots et la tokenisation de caractères ?

La tokenisation des mots décompose le texte en mots, tandis que la tokenisation des caractères le décompose en caractères.

Pourquoi la tokenisation est-elle importante pour le NLP ?

Il aide les machines à comprendre et à traiter le langage humain en le décomposant en éléments gérables.

Puis-je utiliser plusieurs méthodes de symbolisation sur le même texte ?

Oui, en fonction de la tâche à accomplir, la combinaison des méthodes peut donner de meilleurs résultats.

Quels sont les outils de symbolisation les plus couramment utilisés dans le domaine du NLP ?

Parmi les outils de tokenisation les plus populaires utilisés en NLP, citons NLTK, Spacy, Stanford CoreNLP, GENSIM et TensorFlow Tokenizer. Chacun a ses propres atouts et est adapté à des tâches différentes.

Comment fonctionne la tokenisation pour des langues comme le chinois ou le japonais qui n'ont pas d'espaces ?

La tokenisation fait appel à des techniques telles que la segmentation au niveau des caractères ou la recherche des limites de mots les plus probables sur la base de modèles statistiques pour les langues dépourvues de séparateurs de mots explicites.

Comment la tokenisation aide-t-elle les moteurs de recherche à renvoyer 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 permet de gagner en rapidité et en précision.


Photo of Abid Ali Awan
Author
Abid Ali Awan
LinkedIn
Twitter

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.

Sujets