Qu'est-ce que la tokenisation? Méthodes pour effectuer la tokenisation

Contenu

Vue d'ensemble

  • Vous souhaitez vous initier au traitement du langage naturel (PNL)? C'est le premier pas parfait
  • Apprenez à tokeniser, un aspect clé de la préparation de vos données pour créer des modèles NLP
  • Nous présentons 6 différentes manières de tokeniser les données textuelles

introduction

Êtes-vous fasciné par la quantité de données textuelles disponibles sur Internet ?? Vous cherchez des moyens de travailler avec ces données textuelles, mais vous ne savez pas par où commencer? Après tout, les machines reconnaissent les nombres, pas les lettres de notre langue. Et cela peut être un paysage difficile à naviguer dans l'apprentissage automatique..

Ensuite, Comment pouvons-nous manipuler et nettoyer ces données textuelles pour construire un modèle? La réponse se trouve dans le monde merveilleux de Traitement du langage naturel (PNL).

Résoudre un problème de PNL est un processus en plusieurs étapes. Nous devons d'abord nettoyer les données textuelles non structurées avant de pouvoir penser à passer à l'étape de la modélisation. Le nettoyage des données se compose de quelques étapes clés:

  • Tokenisation des mots
  • Prédire les parties du discours pour chaque jeton
  • Racine de texte
  • Identifiez et supprimez les mots vides et bien plus encore.

comp-2-0_00_13_15-8303848

Dans cet article, nous parlerons de la première étape: tokenisation. Nous verrons d'abord ce qu'est la tokenisation et pourquoi elle est nécessaire en PNL.. Alors, Nous examinerons six façons uniques de faire de la tokenisation en Python.

Cet article n'a pas de prérequis. Toute personne intéressée par la PNL ou la science des données pourra la suivre. Si vous recherchez une ressource complète pour apprendre la PNL, vous devriez consulter notre cours complet:

Table des matières

  • Qu'est-ce que la tokenisation en PNL?
  • Pourquoi la tokenisation est-elle requise?
  • Différentes méthodes pour effectuer la tokenisation en Python
    • Tokenisation à l'aide de la fonction split () de Python
    • Tokenisation à l'aide d'expressions régulières
    • Tokenisation à l'aide de NLTK
    • Tokenisation avec Spacy
    • Tokenisation avec Keras
    • Tokenisation avec Gensim

Qu'est-ce que la tokenisation en PNL?

La tokenisation est l'une des tâches les plus courantes lorsqu'il s'agit de travailler avec des données textuelles. Mais, Que signifie vraiment le terme « tokenisation » ??

La tokenisation consiste essentiellement à diviser une phrase, prière, paragraphe ou un document de texte intégral en unités plus petites, en tant que mots ou termes individuels. Chacune de ces petites unités s'appelle des jetons.

Regardez l'image ci-dessous pour visualiser cette définition:

capture d

Les jetons peuvent être des mots, chiffres ou signes de ponctuation. En tokenisation, des unités plus petites sont créées en localisant les limites des mots. Attendre, Quelles sont les limites des mots?

Ce sont la fin d'un mot et le début du suivant. Ces jetons sont considérés comme une première étape pour la dérivation et le stemming (la prochaine étape du prétraitement de texte que nous aborderons dans le prochain article).

Dur? Ne t'inquiète pas! Le 21e siècle a facilité l'accès à l'apprentissage et au savoir. Tout cours de traitement du langage naturel peut être utilisé pour les apprendre facilement.

Pourquoi la tokenisation est-elle requise dans la PNL?

Je veux que vous pensiez en anglais ici. Choisissez n'importe quelle phrase qui vous vient à l'esprit et gardez-la en tête pendant que vous lisez cette section. Cela vous aidera à comprendre l'importance de la tokenisation d'une manière beaucoup plus facile.

Avant de traiter une langue naturelle, nous devons identifier les mots qui constituent une chaîne de caractères. C'est pourquoi vousL'okénisation est l'étape la plus élémentaire pour procéder à la PNL (données de texte). Ceci est important car le sens du texte peut être facilement interprété en analysant les mots présents dans le texte..

Prenons un exemple. Considérez la chaîne suivante:

“Ceci est un chat.”

Que pensez-vous qu'il se passera après la tokenisation de cette chaîne? On obtient ['Cette', 'est', 'une', chat'].

Il y a de nombreuses utilisations pour faire cela. Nous pouvons utiliser ce formulaire tokenisé pour:

  • Compter le nombre de mots dans le texte.
  • Compter la fréquence du mot, c'est-à-dire, le nombre de fois qu'un mot particulier est présent.

Etc. Nous pouvons extraire beaucoup plus d'informations dont nous discuterons en détail dans les prochains articles.. Pour l'instant, il est temps de plonger dans les détails de cet article: les différentes méthodes pour effectuer la tokenisation en NLP.

Méthodes pour effectuer la tokenisation en Python

Nous examinerons six façons uniques de tokeniser les données textuelles. J'ai fourni le code Python pour chaque méthode afin que vous puissiez le suivre sur votre propre machine.

1. Tokenisation à l'aide de la fonction split () de Python

Commençons par le briser() méthode car c'est la plus basique. Renvoie une liste de chaînes après avoir divisé la chaîne donnée par le séparateur spécifié. Par défaut, diviser () briser une chaîne dans chaque espace. Nous pouvons changer le séparateur en n'importe quoi. Nous allons voir.

Tokenisation des mots

Sortir : ['Fondé', 'dans', '2002,', « SpaceX », 'mission', 'est', 'à', 'permettre', 'humains', 
          'à', 'devenir', 'une', "voyage dans l'espace", 'civilisation', 'et', 'une', 'multi-planète', 
          'espèce', 'par', 'imeuble', 'une', 'autonome', 'ville', 'au', 'Mars.', 'Dans', 
          '2008',, « SpaceX », 'Faucon', '1', 'devenu', 'les', 'premier', 'en privé', 
          'développé', « carburant liquide », 'lancement', 'véhicule', 'à', 'orbite', 'les', 'Terre.']

Tokenisation de la déclaration

Ceci est similaire à la tokenisation des mots. Ici, nous étudions la structure des phrases dans l'analyse. Une phrase se termine généralement par un point (.), Pour ce que nous pouvons utiliser “.” comme séparateur pour casser la corde:

Sortir : ['Fondé en 2002, La mission de SpaceX est de permettre aux humains de devenir un astronaute
           civilisation et une espèce multiplanétaire en construisant une ville autosuffisante sur
           Mars', 
          'Dans 2008, Le faucon de SpaceX 1 est devenu le premier carburant nliquide développé en privé
           lanceur pour orbiter autour de la Terre.]

Un gros inconvénient d'utiliser Python briser() La méthode est que nous ne pouvons utiliser qu'un seul séparateur à la fois. Une autre chose à garder à l'esprit: dans la tokenisation des mots, briser() ne considérait pas la ponctuation comme un symbole indépendant.

2. Tokenisation à l'aide d'expressions régulières (RegEx)

Premier, comprenons ce qu'est une expression régulière. Essentiellement, est une séquence de caractères spéciale qui vous aide à faire correspondre ou à trouver d'autres chaînes ou ensembles de chaînes en utilisant cette séquence comme modèle.

Nous pouvons utiliser le Bibliothèque Python pour travailler avec des expressions régulières. Cette bibliothèque est pré-installée avec le package d'installation Python.

À présent, faisons la tokenisation des mots et la tokenisation des phrases en gardant à l'esprit la regex.

Tokenisation des mots

Sortir : ['Fondé', 'dans', '2002', 'EspaceX', 's', 'mission', 'est', 'à', 'permettre', 
          'humains', 'à', 'devenir', 'une', "voyage dans l'espace", 'civilisation', 'et', 'une', 
          'multi', 'planète', 'espèce', 'par', 'imeuble', 'une', 'soi', 'soutenir', 
          'ville', 'au', 'Mars', 'Dans', '2008', 'EspaceX', 's', 'Faucon', '1', 'devenu', 
          'les', 'premier', 'en privé', 'développé', 'liquide', 'carburant', 'lancement', 'véhicule', 
          'à', 'orbite', 'les', 'Terre']

Les re.trouver () La fonction trouve tous les mots qui correspondent au modèle qui lui est passé et les stocke dans la liste.

Les “w"Représente" tout caractère de mot "qui signifie normalement alphanumérique (des lettres, nombres) et souligner (_). '+’ signifie n'importe quel nombre de fois. Ensuite [w']+ indique que le code doit trouver tous les caractères alphanumériques jusqu'à ce qu'un autre caractère soit trouvé.

capture d

Tokenisation de la déclaration

Pour effectuer la tokenisation de la phrase, nous pouvons utiliser le re.séparer () une fonction. Cela divisera le texte en phrases en lui passant un modèle.

Sortir : ['Fondé en 2002, La mission de SpaceX est de permettre aux humains de devenir un astronaute
           civilisation et une espèce multiplanétaire en construisant une ville autosuffisante sur
           Mars.', 
          'Dans 2008, Le faucon de SpaceX 1 est devenu le premier carburant nliquide développé en privé
           lanceur pour orbiter autour de la Terre.]

Ici, nous avons un avantage sur lui briser() méthode puisque nous pouvons passer plusieurs séparateurs en même temps. Dans le code ci-dessus, nous utilisons le recompiler () fonction dans laquelle on passe [.?!]. Cela signifie que les phrases seront divisées dès que l'un de ces caractères sera trouvé.

Êtes-vous intéressé à en savoir plus sur l'expression régulière? Les ressources suivantes vous aideront à démarrer avec les expressions régulières en PNL:

3. Tokenisation à l'aide de NLTK

À présent, c'est une bibliothèque que vous apprécierez au fur et à mesure que vous travaillerez avec des données textuelles. NLTK, abréviation de Natural Language ToolKit, est une bibliothèque écrite en Python pour le traitement symbolique et statistique du langage naturel.

Vous pouvez installer NLTK en utilisant le code suivant:

pip install --user -U nltk

NLTK contient un module appelé tokenizar () qui est également classé en deux sous-catégories:

  • Tokenisation des mots: Nous utilisons la méthode word_tokenize () diviser une phrase en jetons ou en mots
  • Tokenisation de la phrase: Nous utilisons la méthode sent_tokenize () diviser un document ou un paragraphe en phrases

Voyons les deux un par un.

Tokenisation des mots

Sortir: ['Fondé', 'dans', '2002', ',', 'EspaceX', ''', 's', 'mission', 'est', 'à', 'permettre', 
         'humains', 'à', 'devenir', 'une', "voyage dans l'espace", 'civilisation', 'et', 'une', 
         'multi-planète', 'espèce', 'par', 'imeuble', 'une', 'autonome', 'ville', 'au', 
         'Mars', '.', 'Dans', '2008', ',', 'EspaceX', ''', 's', 'Faucon', '1', 'devenu', 
         'les', 'premier', 'en privé', 'développé', « carburant liquide », 'lancement', 'véhicule', 
         'à', 'orbite', 'les', 'Terre', '.']

Tokenisation de la déclaration

Sortir: ['Fondé en 2002, La mission de SpaceX est de permettre aux humains de devenir un astronaute
          civilisation et une espèce multiplanétaire en construisant une ville autosuffisante sur
          Mars.', 
         'Dans 2008, Le faucon de SpaceX 1 est devenu le premier carburant nliquide développé en privé
          lanceur pour orbiter autour de la Terre.]

4. Tokenisation à l'aide de la bibliothèque spaCy

J'adore la bibliothèque SpaCy. Je ne me souviens pas de la dernière fois que je ne l'ai pas utilisé lorsque je travaillais sur un projet PNL. C'est si utile.

spaCy est un bibliothèque open source pour avancé Traitement du langage naturel (PNL). Prend en charge plus de 49 langues et offre une vitesse de calcul de pointe.

spacy-2586479

Pour installer Spacy sur Linux:

pip install -U spacy
python -m spacy télécharger fr

Pour l'installer sur d'autres systèmes d'exploitation, aller à ce lien.

Ensuite, Voyons comment nous pouvons utiliser le génie de spaCy pour faire de la tokenisation. nous utiliserons spacy.lang.fr qui prend en charge la langue anglaise.

Tokenisation des mots

Sortir : ['Fondé', 'dans', '2002', ',', 'EspaceX', ''s', 'mission', 'est', 'à', 'permettre', 
          'humains', 'à', 'devenir', 'une', "voyage dans l'espace", 'civilisation', 'et', 'une', 
          'multi', '-', 'planète', 'n', 'espèce', 'par', 'imeuble', 'une', 'soi', '-', 
          'soutenir', 'ville', 'au', 'Mars', '.', 'Dans', '2008', ',', 'EspaceX', ''s', 
          'Faucon', '1', 'devenu', 'les', 'premier', 'en privé', 'développé', 'n', 
          'liquide', '-', 'carburant', 'lancement', 'véhicule', 'à', 'orbite', 'les', 'Terre', '.']

Tokenisation de la déclaration

Sortir : ['Fondé en 2002, La mission de SpaceX est de permettre aux humains de devenir un astronaute
           civilisation et une espèce multiplanétaire en construisant une ville autosuffisante sur
           Mars.', 
          'Dans 2008, Le faucon de SpaceX 1 est devenu le premier carburant nliquide développé en privé
           lanceur pour orbiter autour de la Terre.]

spaCy est assez rapide par rapport à d'autres bibliothèques tout en effectuant des tâches NLP (Oui, même NLTK). Je vous encourage à écouter le podcast DataHack Radio suivant pour découvrir l'histoire de la création de spaCy et où vous pouvez l'utiliser.:

Et voici un tutoriel détaillé pour démarrer avec spaCy:

5. Tokenisation avec Keras

Dur! L'un des frameworks d'apprentissage en profondeur les plus populaires du secteur à l'heure actuelle. C'est une bibliothèque de réseau neuronal open source pour Python. Keras est très facile à utiliser et peut également être exécuté sur TensorFlow.

Dans le cadre de la PNL, nous pouvons utiliser Keras pour nettoyer les données textuelles non structurées que nous collectons normalement.

keras_tokenization-4173569

Vous pouvez installer Keras sur votre machine en utilisant une seule ligne de code:

pip installer dur

Mettons-nous au travail. Pour effectuer une tokenisation de mots à l'aide de Keras, nous utilisons le text_to_word_sequence méthode de keras.preprocessing.text classe.

Voyons Keras en action.

Tokenisation des mots

Sortir : ['fondé', 'dans', '2002', 'spacex', 'mission', 'est', 'à', 'permettre', 'humains', 
          'à', 'devenir', 'une', "voyage dans l'espace", 'civilisation', 'et', 'une', 'multi', 
          'planète', 'espèce', 'par', 'imeuble', 'une', 'soi', 'soutenir', 'ville', 'au', 
          'Mars', 'dans', '2008', 'spacex', 'faucon', '1', 'devenu', 'les', 'premier', 
          'en privé', 'développé', 'liquide', 'carburant', 'lancement', 'véhicule', 'à', 'orbite', 
          'les', 'Terre']

Keras réduit la boîte de tous les alphabets avant de les tokeniser. Cela nous fait gagner un peu de temps comme vous pouvez l'imaginer !!

6. Tokenisation avec Gensim

La dernière méthode de tokenisation que nous aborderons ici est l'utilisation de la bibliothèque Gensim. Il s'agit d'une bibliothèque open source pour la modélisation de sujets non supervisée et le traitement du langage naturel. et est conçu pour extraire automatiquement les thèmes sémantiques d'un document donné.

Voici comment installer Gensim:

pip installer gensim

Nous pouvons utiliser le gensim.utils classe pour importer le tokenizar méthode pour effectuer la tokenisation des mots.

Tokenisation des mots

Débit : ['Fondé', 'dans', 'EspaceX', 's', 'mission', 'est', 'à', 'permettre', 'humains', 'à', 
          'devenir', 'une', "voyage dans l'espace", 'civilisation', 'et', 'une', 'multi', 'planète', 
          'espèce', 'par', 'imeuble', 'une', 'soi', 'soutenir', 'ville', 'au', 'Mars', 
          'Dans', 'EspaceX', 's', 'Faucon', 'devenu', 'les', 'premier', 'en privé', 
          'développé', 'liquide', 'carburant', 'lancement', 'véhicule', 'à', 'orbite', 'les', 
          'Terre']

Tokenisation de la déclaration

Pour effectuer la tokenisation de la phrase, nous utilisons le split_sentences méthode de gensim.summerization.texttcleaner classe:

Sortir : ['Fondé en 2002, La mission de SpaceX est de permettre aux humains de devenir un astronaute
           civilisation et une multi-planète ', 
          « espèces en construisant une ville autonome sur Mars. », 
          'Dans 2008, Le faucon de SpaceX 1 est devenu le premier développé en privé ', 
          « un véhicule de lancement à carburant liquide en orbite autour de la Terre ».]

Vous avez peut-être remarqué que Gensim est assez strict sur la ponctuation. Se divise à chaque fois qu'un score est trouvé. Dans la division des phrases aussi, Gensim a tokenisé le texte en trouvant ” m” alors que d'autres bibliothèques l'ignoraient.

Remarques finales

La tokenisation est une étape critique dans le pipeline global de la PNL. Nous ne pouvons pas simplement passer à la partie construction du modèle sans d'abord nettoyer le texte.

Dans cet article, nous avons vu six méthodes différentes de tokenisation (mot et phrase) d'un texte donné. Il y a aussi d'autres moyens, mais ils sont assez bons pour vous aider à démarrer.

Je couvrirai d'autres étapes de nettoyage de texte comme la suppression des mots vides, marquer une partie du discours et reconnaître les entités nommées dans mes futurs messages. Jusque là, continue d'apprendre!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.