Outils de corpus

Corpus — 7

clement.plancq@ens.psl.eu

« Lavez et séchez la margose. Coupez-la en deux et retirez les graines et la chair cotonneuse dans laquelle elles se trouvent à l’aide d’une cuillère à café. »

« Couper les margoses en 2 dans le sens de la longueur. Enlever les graines et les parties blanches. Couper les margoses en julienne et les laisser temper dans de l’eau vinaigrée et salée. »

« Le fruit, la margose, est préparée cuite en carry, crue en rougail et dans des salades pimentées. »

« La margose, melon amer ou momordique, est une plante potagère grimpante de la famille des Cucurbitaceae, cultivée dans les climats chauds ou tempérés en plante annuelle. Le terme margose désigne la plante et le fruit. » wikipedia

margose
margose

Word embeddings

« You shall know a word by the company it keeps »
Firth, J. R. 1957

Word embeddings

  • développements récents de la sémantique distributionnelle (word2vec (2013))
  • modèle de langage, apprentissage (machine learning)
  • les mots sont représentés par des vecteurs numériques (probabilités d’apparition du mot dans un contexte donné)
  • possibilité de faire du calcul algébrique sur les vecteurs
    queen ≈ king − man + woman

Word embeddings

  • approche non supervisée : pas besoin de données annotées
  • outils robustes et faciles à utiliser : Word2vec (T. Mikolov), GloVe (Stanford University), fastText (Facebook)
  • mise à disposition de modèles déjà entraînés sur wikipedia (90 langues disponibles)

Matrices termes-contextes

  • On connaît les matrices termes-documents (voir cours fouille de textes)
  • Pour les vecteurs de mots on utilise des matrices termes-contextes. Chaque cellule note le nombre de fois où le mot cible (ligne) et le mot en colonne apparaissent dans le même contexte.
  • Pour un vocabulaire de taille V, les matrices termes-contextes sont des matrices de dimension \[ |V| \times |V| \]
  • Ce sont des matrices creuses (sparse matrix) avec beaucoup de valeurs nulles

Matrices termes-contextes

Sur les têtes des statues, alternaient des couronnes de chêne et de laurier.
Sur la table du président il y avait une grosse sonnette, presque une cloche, un large encrier de cuivre, […]
Des têtes coupées, portées au bout d’une pique, se sont égouttées sur cette table.

alternaient avait bout coupées couronnes égouttées sont table
statues 1 0 0 0 1 0 0 0
têtes 1 0 0 1 1 1 1 1
président 0 1 0 0 0 0 0 1

word2vec

  • Recherches conduites par T. Mikolov et son équipe (Google), description dans deux papiers de 2013
  • Meilleurs résultats que les méthodes précédentes pour un temps d’apprentissage moindre
  • Mise à disposition du code associé
  • Deux algos disponibles : CBOW (continuous bag of words) et skip-gram
  • Les vecteurs de mots sont de dimension plus réduite (de 50 à 1000) et ils sont denses (peu de valeurs nulles)

word2vec

  • word2vec utilise des réseaux neuronaux à deux couches pour produire ses embeddings
  • L’intuition derrière word2vec est qu’au lieu de compter combien de fois un mot w apparaît dans le contexte de couronnes on va entraîner un classifieur sur une tâche de prédiction binaire : « est-ce que w a des chances d’apparaître dans le contexte de couronnes ? »
  • Peu importe le résultat, les word embeddings vont contenir les poids appris pendant l’entraînement du classifieur
  • Pour entraîner un tel classifieur il suffit d’avoir du texte brut

word2vec

Avec CBOW le modèle prédit le mot courant à partir des mots du contexte, l’ordre des mots n’influence pas la prédiction

cbow source : https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/

### word2vec

Avec Skip-gram le modèle utilise le mot courant pour prédire les mots du contexte. Ici l’ordre des mots a un impact.

skip-gram source : https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/

word2vec

Les paramètres utilisés pour l’entraînement sont déterminants .

  • subsampling Seuil de fréquence maximale au-dessus duquel les mots sont sous-échantillonés

  • dimension des vecteurs

  • taille de la fenêtre du contexte (5 à 10 mots en général)

word2vec

  • Le code de word2vec est écrit en C
  • Portage ou binding dans de nombreux langages
  • Pour Python : gensim
  • Spacy permet d’utiliser des modèles word2vec, voir doc
  • Modèles pour le français dispos ici ou ici par exemple

word embeddings

  • Word2vec donne pour chaque mot d’un corpus des mesures de similarité (cosinus)
  • la similarité ne qualifie pas la relation sémantique entre deux mots
  • antonymie, synonymie, hyperonymie, hyponymie
  • pas de prise en compte de l’ambiguïté dans Word2vec mais traitée dans les recherches récentes (OOV, subword level)

word embeddings

  • Les word embeddings ont permis de booster les applications de TAL qui utilisent une représentation du lexique (NER, tagging, traduction automatique, …)
  • Ils ont aussi été utilisés avec succés pour la sémantique historique (arxiv)
  • L’utilisation de word embeddings multilingues a permis d’améliorer le parsing de langues peu dotées (ref TAL)
  • word embeddings prenant en compte les dépendances syntaxiques (Levy & Colberg 2014)
  • En 2018 de nouveaux types de modèles de langage ont encore changé la donne en TAL. http://jalammar.github.io/illustrated-bert/