Tokénisation
Qu'est-ce que la tokenisation ?? En bref, il décompose les textes en mots ou en phrases…
Ici, nous aborderons différents tokenizers que nous pouvons utiliser en NLP ………
- Espace blanc
text = 'Earth was born around 4.54 billion years ago.'
print(text.split())
# output
# ['Earth', 'was', 'born', 'around', '4.54', 'billion', 'years', 'ago.']
2. Fractionnement spécifique
Identique à l'espace blanc mais ici nous donnons splitn'importe quel séparateur que nous voulons
text = 'Egypt, a country linking northeast Africa with the Middle East, dates to the time of the pharaohs.'
print(text.split(','))
# output
# ['Egypt', ' a country linking northeast Africa with the Middle East', ' dates to the time of the pharaohs.']
3. NLTK
NLTK est une plate-forme leader pour la création de programmes Python pour travailler avec des données de langage humain. Il y a beaucoup de tokenizers que nous pouvons utiliser
l) word_toknizer : Il résout le problème dans la fonction split :
ll) sent_tokenize : il utilise le texte fractionné comme modèles qu'il a entraînés auparavant.
lll) wordpunct_tokenize : Ici, il divise tous les mots et les ponctuations.
lV) TreebankWordTokenizer: Il divise le texte comme ces ponctuations ?!.,;, d'autre part, il s'agit d'une variété de règles communes pour les mots anglais.
V) TweetTokenizer : Il divise le texte comme ces ponctuations ?!.,;donc emojis
Vl) MWETokenizer : Ici, nous pouvons ajouter un jeton comme nous le souhaitons, car ce générateur de jetons add_mwenous permet de le faire
4. TextBlob
TextBlob est une bibliothèque Python (2 et 3) pour le traitement de données textuelles . Il fournit une API simple pour plonger dans les tâches courantes de traitement du langage naturel (NLP) telles que le balisage des parties du discours, l'extraction de phrases nominales, l'analyse des sentiments, la classification, la traduction, etc.
from textblob import TextBlob
text="""But I'm glad you'll see me as I am. Above all, I wouldn't want people to think that I want to
prove anything. I don't want to prove anything, I just want to live; to cause no evil to anyone but myself.
I have that right, haven't I? Leo Tolstoy """
blob_object= TextBlob(text) # Word tokenization of the text
text_words = blob_object.words # To see all tokens
print(text_words) # To count the number of tokens
print(len(text_words))
# output
# ['But', 'I', "'m", 'glad', 'you', "'ll", 'see', 'me', 'as', 'I', 'am', 'Above', 'all', 'I', 'would', "n't", 'want', 'people', 'to', 'think', 'that', 'I', 'want', 'to', 'prove', 'anything', 'I', 'do', "n't", 'want', 'to', 'prove', 'anything', 'I', 'just', 'want', 'to', 'live', 'to', 'cause', 'no', 'evil', 'to', 'anyone', 'but', 'myself', 'I', 'have', 'that', 'right', 'have', "n't", 'I', 'Leo', 'Tolstoy']
# 55
5. spacieux
spaCy est une bibliothèque open source gratuite pour le traitement du langage naturel en Python . Il comprend le NER, le marquage POS, l'analyse des dépendances, les vecteurs de mots et plus encore.
6. Génisim
Gensim : Il s'agit d'une bibliothèque open-source en python écrite par Radim Rehurek qui est utilisée dans la modélisation de sujet non supervisée et le traitement du langage naturel . Il est conçu pour extraire des sujets sémantiques à partir de documents. Il peut gérer de grandes collections de texte.
7. Kéras
Keras est une bibliothèque open source qui est l'un des frameworks d'apprentissage en profondeur les plus fiables. Pour effectuer la tokenisation, nous utilisons : la méthode text_to_word_sequence de la classe Class Keras.preprocessing.text. L'avantage de Keras est de convertir l'alphabet en minuscules avant de le symboliser, ce qui peut faire gagner beaucoup de temps.
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence
text = "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe. #Albert Einstein"
tokinzer = Tokenizer(num_words=20) # as recommended we put here the max text length we have
tokinzer.fit_on_texts(text)
tokens = text_to_word_sequence(text)
print(tokens)
# output
# ['two', 'things', 'are', 'infinite', 'the', 'universe', 'and', 'human', 'stupidity', 'and', "i'm", 'not', 'sure', 'about', 'the', 'universe', '', 'albert', 'einstein']
8. Tokénisation basée sur les sous-mots
Sa tokenisation populaire est la tokenisation basée sur les sous-mots qui est une solution entre la tokenisation basée sur les mots et les caractères. L'idée principale est de résoudre les problèmes rencontrés par la tokenisation basée sur les mots (taille de vocabulaire très importante, grand nombre de jetons OOV et significations différentes de mots très similaires) et la tokenisation basée sur les caractères (séquences très longues et jetons individuels moins significatifs).
Les algorithmes de tokenisation basés sur les sous-mots utilisent les principes suivants.
- Ne divisez pas les mots fréquemment utilisés en sous-mots plus petits.
- Divisez les mots rares en sous-mots significatifs plus petits.
Défis
Discutons des défis et des limites de la tâche de tokenisation.
En général, cette tâche est utilisée pour les corpus de texte rédigés en anglais ou en français où ces langues séparent les mots en utilisant des espaces blancs ou des signes de ponctuation pour définir la limite des phrases. Malheureusement, cette méthode ne peut pas s'appliquer à d'autres langues comme le chinois, le japonais, le coréen thaï, l'hindi, l'ourdou, le tamoul et autres. Ce problème crée le besoin de développer un outil commun de tokenisation qui combine toutes les langues.
Une autre limitation réside dans la tokenisation des textes arabes puisque l'arabe a une morphologie compliquée en tant que langue. Par exemple, un seul mot arabe peut contenir jusqu'à six jetons différents comme le mot « عقد » (eaqad).
Conclusion
Nous avons parlé de la tokenisation et de nombreuses techniques que nous pouvons utiliser car nous voyons qu'il existe de nombreux types de recherche dans ce domaine et qu'il grandit et qu'il y a de nombreux défis à relever en PNL, mais nous verrons à l'avenir que ces problèmes seront résolus.
vous pouvez voir le code dans ce lien
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































