Blog Onyme
IntroductionNous allons nous intéresser à deux techniques largement employées dans le cadre de l’analyse sémantique : La lemmatisation et la racinisation parfois appelée stemmatisation. Nous verrons notamment quelques outils utiles dans le cas du Français. Si vous voulez en savoir plus sur ce qu’est l’analyse sémantique, vous pouvez consulter cet article du blog qui explicite ce terme et quelques autres. Les Flexions et le LemmeLes flexions sont les différentes formes fléchies d’un même mot. Les formes fléchies correspondent aux formes “conjuguées” ou “accordées” d’un mot de base non conjugué et non accordé : le Lemme. Par exemple, le mot “jouer” , verbe à l’infinitif ni accordé, ni conjugué est un lemme. Il possède différentes flexions qui correspondent à ses formes conjuguées à diverses personnes et temps : “il jouera” , “nous jouons” , “ils ont joué” , … Un autre exemple? Avec un nom cette fois. Le mot “garage” correspond à la forme non accordée et donc au lemme des flexions accordées “un garage” et “des garages” . Racine d’un motLa racine d’un mot correspond à la partie du mot restante une fois que l’on a supprimé son préfixe et son suffixe, à savoir son radical. Elle est aussi parfois connu sous le nom de stemme d’un mot. Contrairement au lemme qui correspond à un mot réel de la langue, la racine ou stemme ne correspond généralement pas à un mot réel. Par exemple, le mot “chercher” a pour radical ou stemme “cherch” qui ne correspond pas à un mot réel. Par contre dans l’exemple de “frontal“, le radical ou stemme est “front” qui lui l’est. Le problème des flexionsLes flexions sont un problème en TAL dans le sens où elles provoquent l’apparition de mots différents d’un point de vue graphique (différences d’accord) mais ayant un sens relativement proche à l’accord près. Par exemple, les mots “joue” et “jouons” apparaissent comme différents pour les traitements linguistiques qui ne feront alors pas le rapprochement alors qu’il s’agit bien du même mot conjugué à deux personnes différentes. Cela a principalement pour effet de provoquer une augmentation non désirée du nombre de mots différents dans le corpus de textes. Pour résoudre ce problème, il faut être capable de représenter les différentes flexions d’un même mot par un même terme afin que les traitements linguistiques puissent les voir sémantiquement équivalent de manière assez triviale. Pour cela, il est courant de représenter les différentes flexions soit par leur lemme, soit par leur racine ou stemme. LemmatisationLa lemmatisation est le nom du procédé en TAL qui consiste à transformer les flexions en leur lemme.
Parmi ces choix, TreeTagger se démarque pour deux raisons :
Lemmatisation en contexteCette famille de techniques de lemmatisation consiste à identifier la fonction grammaticale d’un mot fléchi pour pouvoir en déduire son lemme. Pour cela, il est indispensable pour le lemmatiseur de connaître la phrase (et donc le contexte) dans laquelle le mot fléchi a été employé. A partir du moment où la fonction grammaticale a pu être détectée, le lemmatiseur recherche dans sa base de connaissance la forme fléchie courante puis retourne le lemme associé à la fonction grammaticale détectée pour cette flexion. S’il échoue soit à identifier convenablement la fonction grammaticale, soit à trouver un lemme pour cette fonction, alors le lemmatiseur ne retournera aucun résultat. Lemmatisation hors contexteCette famille de techniques de lemmatisation n’a pas besoin du contexte pour fonctionner. A partir de la forme fléchie recherchée, le lemmatiseur retourne directement l’ensemble des lemmes possibles pour cette flexion dans chaque contexte grammaticale où elle peut être résolue. En d’autres termes, ce type de lemmatiseur ne renvoie pas un lemme unique mais une collection de lemmes possibles en fonction de la catégorie grammaticale du mot. Il est possible ensuite à postériori de départager les différents lemmes retournés soit en effectuant une analyse probabiliste sur les lemmes, soit en effectuant une analyse morpho-syntaxique de la phrase afin d’obtenir la fonction grammaticale du terme. Dans tous les cas, le lemmatiseur retournera une réponse dès lors que la forme fléchie présentée correspond à une forme fléchie existante pour la langue désignée. Comparaison des deux méthodesLes deux types de lemmatisation ont chacune leurs avantages et leurs inconvénients. La lemmatisation en contexte possède :
La lemmatisation hors contexte possède :
Racinisation / StemmatisationLa stemmatisation ou racinisation est le nom donné au procédé qui vise à transformer les flexions en leur radical ou stemme. Quelque soit l’outil retenu, la façon de procéder est toujours la même : le stemmatiseur recherche selon la forme du mot fléchi et la langue défini, le radical le plus probable pour ce mot. Contrairement à la lemmatisation qui repose donc sur une base de connaissance des formes fléchies de la langue auxquelles on associe les lemmes possibles (appelée lexique), la stemmatisation fonctionne uniquement avec une base de connaissance des règles syntaxiques et grammaticales de la langue. Cela provoque deux différences notables avec la lemmatisation :
Le projet Snowball, inclus dans “Lucene Contrib”, espace de travail du projet Apache Lucene, vise à fournir des stemmatiseurs pour de nombreuses langues dont le français. Il s’agit en fait de l’intégration dans le projet Lucene de stemmatiseurs pré compilés à partir du langage Snowball Stemmer écrit par Martin Porter pour la description de stemmatiseurs. PerspectivesDans un article ultérieur sur la lemmatisation et la racinisation, nous aborderons plus finement les cas de TreeTagger et du projet Snowball de Lucene. Nous y verrons notamment comment nous les avons étudiés afin d’en connaître leurs limites. Mots clefs : analyse sémantique, Apache Lucene, DELAF, Flexion, Flexion et mot, Inria, LEFFF, Lemmatisation, lemmatisation en contexte, lemmatisation hors contexte, Lemme, Lemme d'un mot, Lucene Contrib, Martin Porter, problème des flexions, Racine d'un mot, Racinisation, sémantique, Snowball Stemmer, Stemmatisation, Stemme, Stemme d'un mot, TAL, TreeTagger |
[...] par la même équipe en charge des projets WOLF et LEFFF (l’équipe ALPAGE), le MElt Tagger est un étiqueteur morpho-syntaxique qui se veut [...]
[...] connu et le plus utilisé, du fait de sa gratuité et de ses performances, est le TreeTagger. Un autre billet de ce blog a déjà été consacré à ce [...]
Où est développé l’article annoncé en perspectives ? Merci !
[...] (Note*) Pos detail : detailed label (ex: Ver:INF), Pos simple : harmonized label (ex Ver.INF –> Ver) (1) Micro-averaged values are calculated by constructing a global contingency table and then calculating precision and recall using these sums. In contrast macro-averaged scores are calculated by first calculating precision and recall for each category and then taking the average of these. (2) Comparison of Cora data tags and Revues.org tags (3) difference between lemmas and stemmes [...]
Merci @Benoit de ce post, nous voilà en 2016, et toujours très utile. Surtout les liens vers les téléchargements de données grammaticales, qui sont difficiles a trouver aujourd’hui.
Et le sujet du post tout aussi intérréssant ^^
Marc