Vous êtes sur la page 1sur 3

Walid El Krouti

Le Traitement Automatique du Langage Naturel (TAL / NPL)

De nos jours, le traitement automatique du langage naturel (TALN) est l'un des domaines d'étude les
plus dynamiques de la science des données. C'est un domaine qui combine l'apprentissage automatique
et la linguistique. Tout comme DeepL, son objectif est d'extraire des informations et une signification
de la traduction de texte. Actuellement, la majorité des ressources sont disponibles en anglais, ce qui
signifie que la majorité des modèles pré-entraînés sont également capables de communiquer
uniquement en anglais. Le prétraitement, la première étape du traitement du langage naturel, vise à
standardiser le texte afin qu'il soit plus facile à traiter. Le processus de traitement naturel de la langue
(NLP) est généralement composé de deux ou trois étapes principales. La deuxième consiste à
vectoriser le texte. Cela peut être accompli à l'aide de techniques comme le sac de mots ou la
fréquence inverse des termes du document. L'apprentissage profond peut également être utilisé pour
apprendre des représentations vectorielles. Il est possible de trouver la phrase la plus similaire dans la
phase finale de la classification.

SpaCy

SpaCy est une librairie relativement récente qui a été introduite en 2015. Elle offre une large gamme
de modèles pré-entraînés pour différentes tâches de traitement du langage naturel (NLP), y compris la
reconnaissance des entités nommées. Elle est rapidement devenue une alternative populaire à NLTK,
la librairie historique de NLP pour Python. L'un des principaux avantages de SpaCy réside dans ses
nombreuses innovations et ses options de visualisation attrayantes. Pour commencer à utiliser SpaCy,
il faut installer la librairie en exécutant la commande 'pip install spacy', puis télécharger les modèles
linguistiques souhaités. Par exemple, pour travailler avec du texte en français, on peut télécharger le
modèle 'fr_core_news_sm', qui est entraîné sur de vastes ensembles de données en français,
comprenant notamment WikiNER et Sequoia. Ces ensembles de données représentent des volumes
importants de textes français, généralement de plusieurs dizaines de gigaoctets. Une fois le modèle
téléchargé, on peut le charger dans un environnement Python en utilisant le code 'import spacy', suivi
de 'nlp = spacy.load("fr_core_news_sm")'. Cela permet de tirer parti de la puissance de SpaCy pour
différentes tâches de NLP. Par exemple, on peut créer une phrase d'exemple comme "Bouygues a eu
une coupure de réseau à Marseille" pour illustrer les capacités de la librairie.

Tokenisation

La tokenisation est le processus de découpage d'un texte en tokens individuels, qui représentent
généralement des mots. Bien que cette tâche puisse sembler simple, elle devient plus complexe
lorsqu'il s'agit de certains exemples en français, tels que "J'ai froid", où le modèle doit considérer "J'"
comme un mot séparé. SpaCy, une librairie relativement récente introduite en 2015, offre une
fonctionnalité puissante de tokenisation grâce à la fonction nlp, qui est le point d'entrée vers diverses
fonctionnalités de SpaCy. En appliquant la tokenisation avec SpaCy, un texte peut être transformé en
une séquence de tokens. De plus, il est courant de supprimer les mots fréquents, appelés "mots vides",
qui apportent peu d'informations aux tâches ultérieures de traitement du langage. Ces mots vides
peuvent être obtenus à l'aide de bibliothèques comme NLTK, qui fournit des listes pour plusieurs
langues, dont le français. Après la tokenisation et la suppression des mots vides, les tokens obtenus
contiennent du contenu significatif pour une analyse plus approfondie. De plus, SpaCy permet la
tokenisation par phrases, qui identifie avec précision les limites des phrases en tenant compte du
contexte. Cela est particulièrement important dans les cas où la ponctuation seule ne suffit pas à
déterminer les séparations de phrases. La fonctionnalité de tokenisation par phrases de SpaCy permet
d'extraire les phrases individuelles d'un texte donné, facilitant ainsi une analyse ultérieure au niveau
des phrases.

Stemming

Le processus de réduction d'un mot à sa forme racine est appelé stemming. Le but de la stemming est
de rassembler toutes les variantes d'un mot en un seul mot. Par exemple, lorsque vous utilisez la
stemming sur les mots "Chiens" ou "Chiens", le mot qui sort est le même. Cela permet d'utiliser des
méthodes telles que le sac de mots ou Tf-IdF pour réduire la taille du vocabulaire. Le Snowball
Stemmer, disponible en français, est l'un des stemmers les plus connus. Nous pouvons importer
SnowballStemmer de nltk.stem.snowball et créer une instance pour la langue française pour l'utiliser.
Ensuite, nous pouvons créer une fonction qui prend une phrase, la tokenise avec la fonction nlp et
renvoie la version racine de chaque token avec le stemmer. En appliquant ce stemmer à notre phrase
exemple, nous obtenons des tokens racinisés comme "bouygu", "coupur", "réseau", etc.

Reconnaissance d’entités nommées (NER)

En traitement automatique du langage, la reconnaissance d'entités nommées (NER) vise à trouver des
entités telles que des personnes, des organisations ou des lieux dans un texte. SpaCy facilite le
processus. Nous pouvons créer une fonction qui prend une phrase, la tokenise avec nlp et renvoie le
texte et l'étiquette pour chaque entité détectée. Nous utilisons cette fonction pour identifier les entités
"Bouygues" (une organisation) et "Marseille" (un lieu). De plus, SpaCy offre des visualiseurs qui nous
permettent d'afficher les entités et leurs étiquettes reconnues. Nous pouvons visualiser les entités mises
en évidence dans le texte en utilisant displacy. Render et en passant le document, le style et les
options.

L’étiquetage morpho-syntaxique

Chaque mot d'une phrase reçoit une étiquette, indiquant sa fonction grammaticale (par exemple, nom
propre, adjectif, déterminant), selon l'étiquetage morpho-syntaxique, également appelé marquage
morpho-syntaxique. La phrase peut être tokenisée à l'aide de la fonction nlp de SpaCy, qui nous
permet ensuite d'obtenir les étiquettes morpho-syntaxiques pour chaque token. Nous pouvons obtenir
les étiquettes morpho-syntaxiques pour des mots tels que "Bouygues" (étiqueté comme un adjectif),
"a" (étiqueté comme un verbe auxiliaire), "eu" (étiqueté comme un verbe) et ainsi de suite en
appliquant cette fonction à notre phrase exemple. De plus, SpaCy propose une option de visualisation
pour montrer les étiquettes et leurs dépendances.

Embedding par mot

En utilisant un modèle pré-entraîné en français, SpaCy nous permet de récupérer facilement la


représentation vectorielle de chaque mot. Cela nous permet d'utiliser un vecteur de taille 96 pour
représenter chaque mot. Nous pouvons obtenir les embeddings de mots pour la phrase exemple en
définissant une fonction qui prend une phrase, la tokenise à l'aide de nlp et renvoie le vecteur associé à
chaque token.

Similarité entre phrases

Une méthode simple pour déterminer la similitude entre deux phrases est de calculer la distance
euclidienne entre leurs embellissements de mots moyens. Nous pouvons calculer la distance
euclidienne entre différentes phrases en définissant une fonction qui prend une phrase, la tokenise à
l'aide de nlp et renvoie le vecteur moyen des embeddings de mots. Dans cet exemple, nous examinons
les similitudes et les différences entre la phrase d'exemple et d'autres phrases. La phrase euclidienne
avec la plus petite distance est considérée comme la plus proche.

Transformers

Les transformers sont des modèles de traitement automatique du langage naturel de pointe qui
apprennent des représentations vectorielles de textes en entrée. Ils sont excellents dans des tâches
telles que la génération de texte, l'apprentissage des représentations vectorielles, la prédiction si une
phrase suit une autre et les questions/réponses. L'installation de PyTorch et de Transformers est
nécessaire pour utiliser des transformers avec SpaCy. Nous avons la possibilité de charger un
tokenizer et un modèle pré-entraîné. Nous pouvons déterminer si la deuxième phrase suit la première
en passant au modèle une séquence de texte tokenisée et les limites des phrases. Si l'élément de
prédiction en position 0 est plus grand que l'élément de prédiction en position 1, cela indique que la
deuxième phrase suit la première ; sinon, cela indique le début d'une discussion nouvelle phrase.

Vous aimerez peut-être aussi