Outils de corpus – 2

M1 Plurital

clement.plancq@ens.psl.eu

Types / tokens / mots

  • type : forme unique d’un « mot », élément du vocabulaire d’un texte

  • token : séquence de caractères délimitée par des séparateurs (« mot graphique »)

Types / tokens / mots

plus il est facile d’utiliser Amazon et plus Amazon devient puissant et plus il est encore plus facile d’utiliser Amazon
source

22 tokens, 11 types

  • L’ensemble des types forme le vocabulaire (V) d’un texte ou d’un corpus.
  • Le nombre de tokens (N) donnera sa taille.
  • Type token ratio (TTR) : \(\frac{V}{N} \times 100\) (mesure à n’utiliser que sur des documents de taille comparable) 

Types / tokens / mots

  • Les séparateurs de mots varient selon les langues ; et pour une même langue ils peuvent être ambigus.
    • L’apostrophe en français peut être un séparateur (l’élève) ou non (aujourd’hui).
    • Pour résoudre l’ambiguïté on peut utiliser un lexique et/ou des régles comme l’apostrophe suivie d’une voyelle est un séparateur

Types / tokens / mots

  • Les séparateurs de mots ne sont pas uniquement utilisés en TAL :
    • sélection de mot avec un double clic
    • recherche de mot dans une page (« Mots entiers » dans Firefox par exemple)
    • correction automatique
  • Le consortium Unicode a défini ces séparateurs de mot dans l’annexe #29

Types / tokens / mots

tokens / mots

  • mot : unité linguistique, pas de définition unanime chez les linguistes

En TAL le mot est le résultat de la segmentation en mots, elle s’appuie sur des choix qui dépendront du type de corpus et de l’application visée.

Types / tokens / mots

tokens / mots

  • Un token peut contenir plus d’un mot
    zum (all.) -> zu + dem
    du (fr.) -> de + le

  • Un mot peut être formé de plusieurs tokens
    La Rochelle devra être reconnu comme tel par un outil de détection d’entités nommées (NER)
    chemin de fer quid des mots composés ?
    (voir traitement des mots composés dans le French Treebank (guide morpho-syntaxique) )

Types / tokens / mots

Algo de tokenisation de Spacy https://spacy.io/usage/linguistic-features#tokenization

  1.  Iterate over whitespace-separated substrings.
  2.  Check whether we have an explicitly defined rule for this substring. If we do, use it.
  3.  Otherwise, try to consume one prefix. If we consumed a prefix, go back to #2, so that special cases always get priority.
  4.  If we didn’t consume a prefix, try to consume a suffix and then go back to #2.
  5.  If we can’t consume a prefix or a suffix, look for a special case.
  6.  Next, look for a token match.
  7.  Look for “infixes” — stuff like hyphens etc. and split the substring into tokens on all infixes.
  8.  Once we can’t consume any more of the string, handle it as a single token.

Types / tokens / mots

La tokenisation opérée par Spacy est dite non destructive, c-a-d qu’il est possible de restituer le texte dans sa forme originale après l’opération de tokenisation.

Dans les corpus UD on trouve le texte original en commentaire

# sent_id = annodis.er_00190
# text = "Verdun, ville de lumière !"
1   "   "   PUNCT   _   _   2   punct   _   SpaceAfter=No
2   Verdun  Verdun  PROPN   _   Gender=Masc|Number=Sing 0   root    _   SpaceAfter=No
3   ,   ,   PUNCT   _   _   2   punct   _   _
4   ville   ville   NOUN    _   Gender=Fem|Number=Sing  2   appos   _   _
5   de  de  ADP _   _   6   case    _   _
6   lumière lumière NOUN    _   Gender=Fem|Number=Sing  4   nmod    _   _
7   !   !   PUNCT   _   _   2   punct   _   SpaceAfter=No
8   "   "   PUNCT   _   _   2   punct   _   _

source

Types / tokens / mots

subtoken tokenization

Les derniers développements en machine learning utilisent une tokenisation au niveau des « sous-tokens » (subtoken)

Un des objectifs de cette approche est de limiter la taille du vocabulaire (V) des très gros corpus.

low    -> low
lower  -> low #er
lowest -> low #est

Voir ce notebook Hugging Face : https://github.com/huggingface/transformers/blob/master/notebooks/01-training-tokenizers.ipynb

Types / tokens / mots

Normalisation Unicode

La tokenisation est souvent précédée d’une étape de normalisation des caractères

Voir https://docs.python.org/3/library/unicodedata.html#unicodedata.normalize et https://unicode.org/reports/tr15/#Norm_Forms

Morphologie

La morphologie est l’étude de la formation des mots et de leurs variations. Les outils de TAL s’intéressent essentiellement à l’analyse morphologique.

Morphologie

On distingue deux familles de procédés morphologiques :

  1. la flexion : forme canonique (lemme), formes fléchies

    porter, portes, porteras, …
    journal, journeaux
    grand, grande, grands, grandes, …

  2. la dérivation : base + affixe -> dérivé

    réaliser / V + able -> réalisable / A
    ir + réalisable / A -> irréalisable / A
    ∃ d’autres procédés de dérivation
    (conversion, troncation, composition, …)

stemming (racinisation)

La racinisation consiste à supprimmer d’un mot les suffixes et/ou préfixes pour obtenir son radical ou sa racine.

La racine produite n’est pas une unité du lexique

Le stemming est principalement utilisé en recherche d’information (inclus dans Lucene, Elastisearch). C’est un traitement rapide qui permet d’améliorer le rappel

Voir la démo de Snowball

stemming (racinisation)

∃ différents algorithmes de stemming.

Ils fonctionnent à l’aide de succession de règles de désuffixation à base d’alternances C V et d’une liste de suffixes propres à chaque langue.

La longueur du suffixe peut déterminer quelle est la règle à appliquer.

Pour le français les algos incluent des règles de recodage des terminaisons de suffixe

abandonneras -> abandonn (2b) -> abandon (step5)

Voir l’algo de Snowball pour le français

Lemmatisation

Trouve le lemme à partir d’une forme fléchie accompagnée ou non de sa catégorie grammaticale

Lemmatiseur avec base de données lexicales / lemmatiseur par règles

  • Les premiers utilisent des lexiques de formes fléchies (lefff, DELAF).

  • Les seconds incluent une analyse morphologique. Ils ont l’avantage de pouvoir prendre en compte les néologismes.
    Pour le français : Flemm de F. Namer

Flemm

(Repris de P. Zweigenbaum)

  • Étant donné un mot et sa catégorie syntaxique mot + CAT
    (formats : TreeTagger/fr ou Brill/INaLF)

  • Calcule le lemme de ce mot (et raffine la catégorie) mot + CAT:tt + lemme curieuse ADJ -> curieuse ADJ:A-fs- curieux

  • Fonctionne sur des mots inconnus :
    schtroumpfiennes ADJ -> schtroumpfiennes ADJ:A-fp- schtroumpfien

Flemm

Analyse linguistique : le cas de -èrent

  1. en général, -èrent marque les verbes du 3ème groupe au passé simple : céd-èrent

  2. quelquefois, la terminaison est plus courte et -èrent marque le présent : légifèr-ent

  3. très rarement,terminaison ambiguë : lac-èrent et lacèr-ent

Flemm

Règles et exceptions : le cas de -èrent

  1. les partitions ambiguës sont lexicalisées car rares

  2. la règle étant le désuffixage sur le suffixe le plus long, les verbes correspondant au suffixe -ent tels que légifèr- sont lexicalisés

  3. autres cas (e.g. céd- ) : désuffixage régulier sur -èrent.

Flemm

Réduction des allomorphes

Principe : réduction à une racine unique
cèd- -> céd-
jett- -> jet-

Règles et exceptions : le cas de tt-

  1. 26 lemmes ont leur racine qui se termine par tt-
    guetter

  2. pour les autres, la consonne géminée est simplifiée
    jeter

Analyseur dérivationnel : DériF

(Repris de P. Zweigenbaum)

  • Étant donné un lemme et sa catégorie syntaxique sympathique/ADJ

  • Analyse la construction de ce lemme
    [ [sympathie NOM] ique ADJ] (sympathique/ADJ, sympathie/NOM) “En rapport avec le(s) sympathie”

  • Analyse récursive, produit l’arbre de construction du mot

Analyseur dérivationnel : DériF

(Repris de P. Zweigenbaum)

Example (impensable/ADJ)

ADJ/in/pre/ADJ + pensable/ADJ, VERBE/able/suf/ADJ + penser/VERBE “Non pensable”

A besoin en général de connaître la base du mot (sympathie/NOM, penser/VERBE)

Analyseur dérivationnel : DériF

Règles de formation de mots

déXiser V [dé [X’ N] + iser V]
Xable A [[X’ (er) V] + able A]
inX A [in[X’ A]A]

  • Gère l’ordre de décomposition impensable/ADJ = in + pensable/ADJ
    décomposable/ADJ = décomposer/VERBE + able/ADJ

  • Gère les analyses ambiguës
    implantable/ADJ = implanter/VERBE + able/ADJ ou bien im + plantable/ADJ

  • Produit une « glose »
    (Prep lequel - Que l’) on peut implanter // Non

DériF

Outil créé par Fiammetta Namer

Version en ligne