Collatinus  11.3
Connecteurs publics | Fonctions membres publiques | Fonctions membres publiques statiques | Attributs publics | Fonctions membres privées | Attributs privés | Liste de tous les membres
Référence de la classe LemCore

La classe LemCore est le noyau de lemmatisation. Plus de détails...

#include <lemCore.h>

Graphe de collaboration de LemCore:
Collaboration graph
[légende]

Connecteurs publics

void setExtension (bool e)
 Active ou désactive l'extension du lexique. Plus de détails...
 
void setMedieval (bool e)
 Gère les graphies médiévales. Plus de détails...
 

Fonctions membres publiques

 LemCore (QObject *parent=0, QString resDir="")
 Constructeur de la classe LemCore. Plus de détails...
 
bool estAbr (QString m)
 Teste si le mot est une abréviation. Plus de détails...
 
void ajDesinence (Desinence *d)
 ajoute la désinence d dans la map des désinences. Plus de détails...
 
void ajRadicaux (Lemme *l)
 Calcule tous les radicaux du lemme l, en se servant des modèles, les ajoute à ce lemme, et ensuite à la map * des radicaux de la classe Lemmat. Plus de détails...
 
QString assim (QString a)
 Cherche si la chaîne a peut subir une assimilation, et renvoie cette chaîne éventuellement assimilée. version sans quantités Plus de détails...
 
QString assimq (QString a)
 Cherche si la chaîne a peut subir une assimilation, et renvoie cette chaîne éventuellement assimilée. version avec quantités Plus de détails...
 
QMap< QString, QString > cibles ()
 Renvoie la map des langues cibles. Plus de détails...
 
QString desassim (QString a)
 Essaie de remplacer l'assimilation de a par sa forme non assimilée, et renvoie le résultat. Plus de détails...
 
QString desassimq (QString a)
 Essaie de remplacer l'assimilation de a par sa forme non assimilée, et renvoie le résultat. Plus de détails...
 
bool inv (Lemme *l, const MapLem ml)
 Renvoie true si le lemme l faisant partie de la MaplLem ml est invariable. Plus de détails...
 
MapLem lemmatise (QString f)
 Le cœur du lemmatiseur. Plus de détails...
 
MapLem lemmatiseM (QString f, bool debPhr=true, int etape=0)
 Renvoie dans une MapLem les lemmatisations de la forme f. Plus de détails...
 
Lemmelemme (QString l)
 cherche dans la liste des lemmes le lemme dont la clé est l, et retourne le résultat. Plus de détails...
 
int nbOcc (QString l)
 Le nombre d'occurrences du lemme dans le corpus du LASLA. Plus de détails...
 
QStringList lemmes (MapLem ml)
 renvoie la liste des graphies des lemmes de la MapLem lm sans signes diacritiques. Plus de détails...
 
QStringList lignesFichier (QString nf)
 Lit les lignes d'un fichier. Plus de détails...
 
Modelemodele (QString m)
 Renvoie l'objet de la classe Modele dont le nom est m. Plus de détails...
 
QString morpho (int m)
 explicite la morphologie dans la langue choisie Plus de détails...
 
QString variable (QString v)
 permet de remplacer la métavariable v par son contenu. Plus de détails...
 
void lireHyphen (QString fichierHyphen)
 Lit le fichier Hyphen. Plus de détails...
 
QString cas (int i)
 Accesseur du cas. Plus de détails...
 
QString genre (int i)
 Accesseur du genre. Plus de détails...
 
QString nombre (int i)
 Accesseur du nombre. Plus de détails...
 
QString temps (int i)
 Accesseur du temps. Plus de détails...
 
QString modes (int i)
 Accesseur du mode. Plus de détails...
 
QString voix (int i)
 Accesseur de la voix. Plus de détails...
 
QString motsClefs (int i)
 Accesseur des autres mots-clefs. Plus de détails...
 
void setCible (QString c)
 Permet de changer la langue cible. Plus de détails...
 
QString cible ()
 Renvoie la langue cible dans sa forme abrégée (fr, en, de, it, etc.). Plus de détails...
 
bool optExtension ()
 Accesseur de l'option extension, qui permet de charger l'extension. Plus de détails...
 
QString tag (Lemme *l, int m)
 Calcule le tag. Plus de détails...
 
int fraction (QString listTags)
 Évalue la probabilité conditionnelle de l'analyse connaissant le POS. Plus de détails...
 
int tagOcc (QString t)
 Renvoie le nombre d'occurrences du tag. Plus de détails...
 
int trigram (QString seq)
 Renvoie le nombre d'occurrences du trigramme. Plus de détails...
 

Fonctions membres publiques statiques

static bool estRomain (QString f)
 Teste si la chaine est un nombre en chiffres romains. Plus de détails...
 

Attributs publics

QMap< QString, QString > suffixes
 Association des suffixes sans et avec quantités. Plus de détails...
 

Fonctions membres privées

void ajAssims ()
 définit les débuts de mots non assimilés, et associe à chacun sa forme assimilée. Plus de détails...
 
void ajAbrev ()
 Lit le fichier d'abréviations. Plus de détails...
 
void ajContractions ()
 Établit une liste qui donne, pour chaque contraction, la forme non contracte qui lui correspond. Plus de détails...
 
int aRomano (QString f)
 Convertit une chaine en chiffres romains en un nombre. Plus de détails...
 
void lisIrreguliers ()
 Chargement des formes irrégulières du fichier data/irregs.la. Plus de détails...
 
void lisFichierLexique (QString filepath)
 Lecture des lemmes, synthèse et enregistrement de leurs radicaux. Plus de détails...
 
void lisLexique ()
 Lecture du fichier de lemmes de base. Plus de détails...
 
void lisExtension ()
 Lecture du fichier d'extension. Plus de détails...
 
void lisModeles ()
 Lecture des modèles, synthèse et enregistrement de leurs désinences. Plus de détails...
 
void lisMorphos (QString lang)
 Lecture des analyses morphologiques. Plus de détails...
 
void lisTraductions (bool base, bool extension)
 Lecture des fichiers de traductions trouvés dans data/, nommés lemmes, avec un suffixe corresponant à la langue cible qu'ils fournissent. Plus de détails...
 
QString decontracte (QString d)
 Essaie de remplacer la contractions de d par sa forme entière, et renvoie le résultat. Plus de détails...
 
void lisTransfMed ()
 Lecture des règles de transformation entre les graphies classique et médiévale enregistrées dans le fichier data/medieval.txt. Plus de détails...
 
QString transfMed (QString f, bool rad=false)
 Transforme un mot en sa forme médiévalisée. Plus de détails...
 
void lisTags (bool tout=false)
 Lit l'ensemble des tags. Plus de détails...
 

Attributs privés

QStringList abr
 Liste des abréviations, voir LemCore::ajAbr. Plus de détails...
 
QMap< QString, QString > assims
 Association des préfixes assimilés et non-assimilés sans quantité Plus de détails...
 
QMap< QString, QString > assimsq
 Association des préfixes assimilés et non-assimilés avec quantités. Plus de détails...
 
QMap< QString, QString > _contractions
 Association des formes contractées et non-contractées. Plus de détails...
 
QMultiMap< QString, Desinence * > _desinences
 Liste des désinences avec forme (clef) et pointeur (valeur) Plus de détails...
 
QMultiMap< QString, Irreg * > _irregs
 
QMap< QString, QString > _cibles
 Liste des langues cibles en forme abrégée (clef) et longue (valeur) Plus de détails...
 
QMap< QString, Lemme * > _lemmes
 Liste des lemmes avec forme (clef) et pointeur (valeur) Plus de détails...
 
QMap< QString, Modele * > _modeles
 Liste des modèles avec nom (clef) et pointeur (valeur) Plus de détails...
 
QMap< QString, QStringList > _morphos
 Liste des analyses morphologiques avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _cas
 Liste des cas avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _genres
 Liste des genres avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _nombres
 Liste des nombres avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _temps
 Liste des temps avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _modes
 Liste des modes avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _voix
 Liste des voix avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMap< QString, QStringList > _motsClefs
 Liste des autres mots-clefs avec langue (clef) et liste lisible (valeur) Plus de détails...
 
QMultiMap< QString, Radical * > _radicaux
 Liste des radicaux avec forme (clef) et pointeur (valeur) Plus de détails...
 
QMap< QString, QString > _variables
 Liste des méta-variables du fichier modeles.la avec nom (clef) et liste de désinences (valeur) Plus de détails...
 
QList< Reglep_reglesMed
 Liste de règles pour transformer les graphies classiques en graphies médiévales. Plus de détails...
 
bool _medieval
 Booléen pour traiter les graphies médiévales. Plus de détails...
 
QMap< QString, QString > _desMed
 Associe une graphie médiévale (clef) à une graphie classique (valeur) pour une désinence. Plus de détails...
 
QMap< QString, QString > _irrMed
 Associe une graphie médiévale (clef) à une graphie classique (valeur) pour un irrégulier. Plus de détails...
 
QMultiMap< QString, QString > _radMed
 Associe une graphie médiévale (clef) à une graphie classique (valeur) pour un radical. Plus de détails...
 
bool _extension
 Option indiquant le chargement de l'extension du lexique, voir LemCore::setExtension. Plus de détails...
 
QString _cible
 La langue choisie, voir LemCore::setCible. Plus de détails...
 
QMap< QString, int > _tagOcc
 Nombre d'occurrences du tag dans le corpus du LASLA. Plus de détails...
 
QMap< QString, int > _tagTot
 Nombre d'occurrences du POS (1er caractère du tag) dans le corpus du LASLA. Plus de détails...
 
QMap< QString, int > _trigram
 Nombre d'occurrences du trigramme dans le corpus du LASLA. Plus de détails...
 
QString _resDir
 Le nom du répertoire contenant les données. Plus de détails...
 
bool _extLoaded
 Booléen indiquant si l'extension du lexique a été chargée. Plus de détails...
 

Description détaillée

La classe LemCore est le noyau de lemmatisation.

Ce module est le cœur du programme : c'est lui qui va organiser les données et lemmatiser les formes. Il est donc appelé par les modules intermédiaires, Lemmatiseur, Scandeur et Tagueur. A priori, c'est plutôt aux classes intermédiaires que l'on s'adressera pour ré-utiliser ce code.

En lisant les fichiers de données, il va créer les collections d'objets dont il a besoin : Lemme, Modele, Desinence, Radical et Irreg. Les noms de ces classes sont assez explicites. Leur fonctionnement est détaillé dans les pages correspondantes.

La fonction importante dans cette classe est surtout LemCore::lemmatiseM qui lemmatise un mot en cherchant les diverses transformations qu'il a pu subir. Elle appelle LemCore::lemmatise qui lemmatise la forme sans transformation.

A faire:
Il manque un lexique personnel dans Collatinus 11. C'est en principe résolu (en grand) avec Collatinus 12.
A faire:
La gestion des formes non-reconnues est aussi un peu sommaire. Dans la lemmatisation d'un texte, les formes non-reconnues sont juste groupées à la fin de la liste (si l'option correspondante est validée). Dans la scansion, on marque la quantité des syllabes lorsqu'elle est déterminable par position. Dans le tagueur, les mots non-reconnus sont ignorés... Je ne sais pas au juste comment gérer ça. En particulier, on ne peut pas le faire sur une forme isolée. Dans un texte, si plusieurs mots ne sont pas reconnus qui commencent avec un même potentiel radical, on peut avoir une piste intéressante pour déterminer un paradigme et voir si toutes ces formes peuvent conduire à un lemme plausible (difficile pour la 3e déclinaison). Commencer par se faire une idée de la fréquence d'utilisation des diverses désinences ?

Documentation des constructeurs et destructeur

LemCore::LemCore ( QObject *  parent = 0,
QString  resDir = "" 
)

Constructeur de la classe LemCore.

Il définit quelques constantes, initialise les options à false, et appelle les fonctions de lecture des données : modèles, lexique, traductions et irréguliers.

Documentation des fonctions membres

void LemCore::ajAbrev ( )
private

Lit le fichier d'abréviations.

Peuple la liste d'abréviations avec le contenu du fichier "abreviations.la".

Voir aussi : LemCore::abr et LemCore::estAbr

void LemCore::ajAssims ( )
private

définit les débuts de mots non assimilés, et associe à chacun sa forme assimilée.

void LemCore::ajContractions ( )
private

Établit une liste qui donne, pour chaque contraction, la forme non contracte qui lui correspond.

void LemCore::ajDesinence ( Desinence d)

ajoute la désinence d dans la map des désinences.

void LemCore::ajRadicaux ( Lemme l)

Calcule tous les radicaux du lemme l, en se servant des modèles, les ajoute à ce lemme, et ensuite à la map * des radicaux de la classe Lemmat.

int LemCore::aRomano ( QString  f)
private

Convertit une chaine en chiffres romains en un nombre.

Paramètres
f: la chaine à convertir
Renvoie
l'entier que la chaine représentait
QString LemCore::assim ( QString  a)

Cherche si la chaîne a peut subir une assimilation, et renvoie cette chaîne éventuellement assimilée. version sans quantités

QString LemCore::assimq ( QString  a)

Cherche si la chaîne a peut subir une assimilation, et renvoie cette chaîne éventuellement assimilée. version avec quantités

QString LemCore::cas ( int  i)

Accesseur du cas.

Paramètres
i: un entier entre 0 et 6
Renvoie
Une chaine avec le cas dans la langue choisie (voir LemCore::_cible et LemCore::setCible).
QString LemCore::cible ( )

Renvoie la langue cible dans sa forme abrégée (fr, en, de, it, etc.).

QMap< QString, QString > LemCore::cibles ( )

Renvoie la map des langues cibles.

QString LemCore::decontracte ( QString  d)
private

Essaie de remplacer la contractions de d par sa forme entière, et renvoie le résultat.

QString LemCore::desassim ( QString  a)

Essaie de remplacer l'assimilation de a par sa forme non assimilée, et renvoie le résultat.

QString LemCore::desassimq ( QString  a)

Essaie de remplacer l'assimilation de a par sa forme non assimilée, et renvoie le résultat.

bool LemCore::estAbr ( QString  m)

Teste si le mot est une abréviation.

Paramètres
m: un mot
Renvoie
un booléen, vrai si c'est une abréviation, faux sinon.

Voir aussi : LemCore::abr et LemCore::ajAbr

bool LemCore::estRomain ( QString  f)
static

Teste si la chaine est un nombre en chiffres romains.

Paramètres
f: la forme déramisée (attention les V sont devenus U)
Renvoie
un booléen.
int LemCore::fraction ( QString  listTags)

Évalue la probabilité conditionnelle de l'analyse connaissant le POS.

Paramètres
listTags: le tag ou une liste de tag
Renvoie
Cette probabilité est un entier, exprimé en 1/1024e

On va chercher le nombre d'occurrences associé à ce tag (ou ces tags). On le divise par le nombre d'occurrences associé au même POS.

Un tag est toujours composé de trois caractères, éventuellement des espaces. Pour passer une liste de tags, on séparera chaque tag (groupe de trois caractères) par un espace (en réalité, ce séparateur est ingnoré). Si la fonction reçoit une liste de tags, elle retourne la plus grande fraction.

QString LemCore::genre ( int  i)

Accesseur du genre.

Paramètres
i: un entier entre 0 et 2
Renvoie
Une chaine avec le genre dans la langue choisie (voir LemCore::_cible et LemCore::setCible).
bool LemCore::inv ( Lemme l,
const MapLem  ml 
)

Renvoie true si le lemme l faisant partie de la MaplLem ml est invariable.

MapLem LemCore::lemmatise ( QString  f)

Le cœur du lemmatiseur.

Paramètres
f: la forme à lemmatiser
Renvoie
une MapLem avec toutes les analyses possibles

Cette fonction cherche à décomposer la forme en radical + désinence, de toutes les façons possibles en vérifiant évidemment que tout deux correspondent au même paradigme (Modele). Le radical (de la classe Radical) permet de remonter au lemme (dans la classe Lemme) et la désinence (de la classe Desinence) donne la morpho.

Note
Yves a fait remarquer que la recherche de la désinence dans la liste générale de toutes les désinences était inutile. Ça pourrait éliminer la nécessité de conserver une telle liste. Mais ce n'est pas sûr car une telle liste pourrait servir à "deviner" la lemmatisation des formes inconnues. C'est une extension à laquelle je réfléchis, mais qui n'a pas encore vu le jour. Cela dit, la suppression de la double recherche est a priori indépendante de la conservation ou non de la liste. Il ne faut pas oublier la contraction de ii en ī qui nécessite d'élargir la recherche.
La MapLem permet de regrouper les différentes analyses pour un même lemme. Cela simplifie la lecture des résultats.
Bogue:
Je fais le test de l'extension du lexique ici, alors qu'il serait plus logique de le faire à la fin de LemCore::lemmatiseM. En effet, lorsque l'extension du lexique est chargée mais désactivée, je ne veux afficher les solutions qui en viennent que si toutes les solutions en viennent. Or toutes veut dire a priori que je dois tenir compte des assimilations, contractions ou enclitique. Ce qui est du ressort de LemCore::lemmatiseM.
MapLem LemCore::lemmatiseM ( QString  f,
bool  debPhr = true,
int  etape = 0 
)

Renvoie dans une MapLem les lemmatisations de la forme f.

Paramètres
f: la forme qui s'agit de lemmatiser.
debPhr: booléen qui indique que l'on est en début de phrase
etape: initialement 0, permet de suivre un protocole d'étapes
Renvoie
une MapLem avec toutes les lemmatisations de la forme f.

Cette routine est récursive et son but est de lemmatiser la forme f en tenant compte des modifications possibles. Les transformations de la forme peuvent être :

  • la contraction amavisse ——> amasse
  • l'assimilation du préfixe ads- ——> ass-
  • la majuscule initiale en début de phrase ou de vers
  • l'ajout d'un (ou plusieurs) suffixe(s) ou enclitique
  • la disparition erronée d'une majuscule à un nom propre.

Bien que certaines combinaisons ne soient pas attestées, nous n'avons pas voulu les exclure. La structure récursive avec un appel direct à l'étape suivante et un autre appel éventuel après transformation de la forme permet d'explorer toutes les possibilités. Essayées une fois et une seule.

Cette routine est a priori sensible à la casse. Ainsi, à l'intérieur d'une phrase (i.e. lorsque debPhr est false), elle distinguera Aeneas (Énée) et aeneas (de bronze). En début de phrase (i.e. lorsque debPhr est true), la majuscule perd cette caractéristique distinctive et Aeneas sera lemmatisé avec ses deux solutions, Énée et d'airain.

Dans la constitution du lexique, nous n'avons pas adopté un parti pris pour l'assimilation des préfixes. D'ailleurs, les différents dictionnaires ont des conventions différentes. Ainsi, le Gaffiot fait le renvoi aff ——> adf (p. 83 de l'edition de 1934) : le préfixe n'étant pas assimilé, il faudra chercher adfaber. En revanche, le Lewis & Short pratique l'assimilation et donnera affaber. Cette ambiguité de la forme canonique nous a conduit à essayer l'assimilation (adf ——> aff) et la "déassimilation" (aff ——> adf) de façon systématique sur toutes les formes. Cela mène à quelques fausses lemmatisations. Par exemple, la forme assum peut être un rôti ou la forme assimilée du verbe adsum. En revanche, adsum ne semble pas pouvoir être un rôti.

La recherche d'un suffixe (ou enclitique) n'a lieu que si la forme complète n'a pas pu être lemmatisée. Cela évite une lemmatisation hasardeuse et improbable de "mentione" en "mentio"+"ne".

Lemme * LemCore::lemme ( QString  l)

cherche dans la liste des lemmes le lemme dont la clé est l, et retourne le résultat.

QStringList LemCore::lemmes ( MapLem  ml)

renvoie la liste des graphies des lemmes de la MapLem lm sans signes diacritiques.

QStringList LemCore::lignesFichier ( QString  nf)

Lit les lignes d'un fichier.

Paramètres
nf: nom du fichier
Renvoie
l'ensemble de lignes du fichier qui ne sont ni vides ni commentées.

Les fichiers de Collatinus ont adopté le point d'exclamation en début de ligne pour introduire un commentaire. Ces lignes doivent être ignorées par le programme.

void LemCore::lireHyphen ( QString  fichierHyphen)

Lit le fichier Hyphen.

Paramètres
fichierHyphen: nom du fichier (avec le chemin absolu)

Stocke pour tous les lemmes contenus dans le fichier l'information sur la césure étymologique (non-phonétique).

Le fichier Hyphen permet de couper les syllabes correctement lorsque la césure est déplacée pour des raisons étymologiques. En effet, on ne va jamais couper un préfixe, ce qui peut conduire à des résultats surprenants. Par exemple, la forme abscidi donnera abs·cí·di (áb·sci·di), la première solution étant le parfait de abs-cido, alors que la seconde est le parfait de ab-scindo.

Ce fichier est dû à la patience de Frère Romain, de l'Abbaye de Flavigny.

void LemCore::lisExtension ( )
private

Lecture du fichier d'extension.

void LemCore::lisFichierLexique ( QString  filepath)
private

Lecture des lemmes, synthèse et enregistrement de leurs radicaux.

void LemCore::lisIrreguliers ( )
private

Chargement des formes irrégulières du fichier data/irregs.la.

void LemCore::lisLexique ( )
private

Lecture du fichier de lemmes de base.

void LemCore::lisModeles ( )
private

Lecture des modèles, synthèse et enregistrement de leurs désinences.

void LemCore::lisMorphos ( QString  lang)
private

Lecture des analyses morphologiques.

Paramètres
lang: langue pour les morphologies. Cette langue est donnée par deux caractères "fr", "en" ou "es", pour l'instant.

Cette routine lit le fichier morphos.* qui donne les analyses morphologiques en français, anglais ou espagnol. Les utilisateurs peuvent ajouter toutes les langues qu'ils maîtrisent. En interne, les analyses morphologiques sont repérées par des entiers. Au moment de les communiquer à l'utilisateur, il faut donc les traduire.

Des mots clefs essentiels sont aussi ajoutés après les 416 morphos possibles.

void LemCore::lisTags ( bool  tout = false)
private

Lit l'ensemble des tags.

Paramètres
tout: choisit si on lit seulement les tags ou aussi les trigrammes

Lorsque le booléen tout est false, on ne lit que les nombres d'occurrences des tags.

Lorsque le booléen tout est true, on lit tout le fichier, donc aussi les dénombrements des séquences de trois tags.

Cette routine lit le fichier tags.la. Ce fichier a été tiré du traitement des textes lemmatisés du LASLA. C'est un csv, avec la virgule comme séparateur.

La première partie du fichier donne le nombre d'occurrences de chaque tag que j'ai introduit pour traiter les textes du LASLA. Elle établit aussi la correspondance avec les tags de Collatinus.

La deuxième partie donne les séquences de trois tags (LASLA) et le nombre d'occurrences mesuré.

void LemCore::lisTraductions ( bool  base,
bool  extension 
)
private

Lecture des fichiers de traductions trouvés dans data/, nommés lemmes, avec un suffixe corresponant à la langue cible qu'ils fournissent.

void LemCore::lisTransfMed ( )
private

Lecture des règles de transformation entre les graphies classique et médiévale enregistrées dans le fichier data/medieval.txt.

Modele * LemCore::modele ( QString  m)

Renvoie l'objet de la classe Modele dont le nom est m.

QString LemCore::modes ( int  i)

Accesseur du mode.

Paramètres
i: un entier entre 0 et 5
Renvoie
Une chaine avec le mode dans la langue choisie (voir LemCore::_cible et LemCore::setCible).
QString LemCore::morpho ( int  m)

explicite la morphologie dans la langue choisie

Paramètres
m: le rang dans la liste des morphologies
Renvoie
Renvoie la chaîne de rang m dans la liste des morphologies

La morphologie est donnée en interne par un entier (entre 0 et 416). Pour communiquer avec l'utilisateur, il faut donc l'expliciter dans la langue choisie. Les listes de morphologies sont données pour chaque langue par un fichier data/morphos.xxxx est le code en deux caractères pour la langue.

(voir LemCore::_cible et LemCore::setCible).

QString LemCore::motsClefs ( int  i)

Accesseur des autres mots-clefs.

Paramètres
i: un entier entre 0 et 4
Renvoie
Une chaine avec le mot-clef dans la langue choisie (voir LemCore::_cible et LemCore::setCible).
int LemCore::nbOcc ( QString  l)

Le nombre d'occurrences du lemme dans le corpus du LASLA.

Paramètres
l: le lemme
Renvoie
un entier avec le nombre d'occurrences du lemme dans le corpus du LASLA (0 si le lemme n'existe pas dans la liste LemCore::_lemmes)
QString LemCore::nombre ( int  i)

Accesseur du nombre.

Paramètres
i: un entier 0 ou 1
Renvoie
Une chaine avec le nombre dans la langue choisie (voir LemCore::_cible et LemCore::setCible).
bool LemCore::optExtension ( )

Accesseur de l'option extension, qui permet de charger l'extension.

void LemCore::setCible ( QString  c)

Permet de changer la langue cible.

Paramètres
c: la chaine donnant la langue cible en deux caractères ou plus.

La langue cible est rangée dans la variable LemCore::_cible a priori sous la forme de deux caractères "fr", "en", "de" etc. C'est la langue dans laquelle seront données les traductions. Lorsque la langue cible n'est ni l'anglais, ni le français, il est prudent d'indiquer une seconde langue de substitution parmi ces deux dernières. En effet, l'extension du lexique ne donne ses traductions que dans ces deux langues. De plus, la langue de substitution sera utilisée pour donner les indications morphologiques si ces dernières n'ont pas été traduites.

void LemCore::setExtension ( bool  e)
slot

Active ou désactive l'extension du lexique.

Paramètres
e: bool

Cette routine gère l'extension du lexique. Si le paramètre e est true, l'extension du lexique est active. S'il n'a pas encore été chargé, il l'est.

Lorsque l'extension du lexique a été chargée et qu'elle est ensuite désactivée, l'extension reste en mémoire et sert de réservoir. Si une forme est lemmatisée et qu'une des solutions vient du lexique principal, alors les éventuelles solutions issues de l'extension sont supprimées. Les solutions issues de l'extension ne sont donc affichées que si toutes les solutions en viennent.

Lors de la lecture des préférences (à l'initialisation), cette routine est appelée. Attention, lors de la sauvegarde des préférences, l'histoire liée à l'extension est oubliée. Si on avait activé puis désactivé l'extension, au prochain démarrage l'extension sera inactive et ne sera pas chargée. Le comportement du programme sera donc différent après le redémarrage.

Voir aussi LemCore::optExtension et LemCore::_extension

void LemCore::setMedieval ( bool  e)
slot

Gère les graphies médiévales.

Paramètres
e: bool

Cette routine gère la lecture de graphies médiévales. Si le paramètre e est true, la graphie médiévale est active. Si le fichier de transformation n'a pas encore été chargé, il l'est.

Lors de la lecture des préférences (à l'initialisation), cette routine est appelée.

Voir aussi : LemCore::_medieval

QString LemCore::tag ( Lemme l,
int  m 
)

Calcule le tag.

Paramètres
l: le pointeur vers le lemme
m: entier représentant l'analyse morphologique
Renvoie
le tag pour Collatinus

Cette routine calcule le tag correspondant à l'analyse morphologique donnée, m, pour le lemme, l. Ce tag est toujours sur trois caractères.

Ce tag est obtenu avec le POS du lemme, suivi des cas (1-6 ou 7) et nombre (1, 2) pour les formes déclinées. Pour les verbes conjugués, on donne le mode (1-4) et un 1 si c'est un présent ou un espace sinon. Les supins ont été joints aux impératifs autres que le présent (groupes trop peu nombreux). Les formes verbales déclinées ont un "w" en tête (à la place du "v" pour verbe). Pour les invariables, le POS est complété avec deux espaces.

int LemCore::tagOcc ( QString  t)

Renvoie le nombre d'occurrences du tag.

Paramètres
t: tag
Renvoie
Le nombre d'occurrences du tag t

Ce nombre d'occurrences a été relevé dans le corpus des textes lemmatisés au LASLA.

QString LemCore::temps ( int  i)

Accesseur du temps.

Paramètres
i: un entier entre 0 et 5
Renvoie
Une chaine avec le temps dans la langue choisie (voir LemCore::_cible et LemCore::setCible).
QString LemCore::transfMed ( QString  f,
bool  rad = false 
)
private

Transforme un mot en sa forme médiévalisée.

Paramètres
f: QString donnant la forme
rad: bool pour le cas particulier des radicaux
Renvoie
Une QString avec la forme médiévalisée.

Comme pour l'accentuation par position, j'ai des règles de substitutions pour "médiévaliser" une forme. Par exemple, je ne sais pas si un auteur (ou copiste ou éditeur) a écrit "tertius" ou "tercius". La stratégie que j'ai adoptée consiste à "normaliser" au plus simple les graphies. Je peux alors comparer la forme du texte avec les décompositions radical+désinence où les deux composants ont subi la même "normalisation".

int LemCore::trigram ( QString  seq)

Renvoie le nombre d'occurrences du trigramme.

Paramètres
seq: une QString contenant le trigramme (séquence de trois tags)
Renvoie
Le nombre d'occurrences du trigram seq

Ce nombre d'occurrences a été relevé dans le corpus des textes lemmatisés au LASLA.

QString LemCore::variable ( QString  v)

permet de remplacer la métavariable v par son contenu.

Paramètres
v: le nom de la métavariable

Ces métavariables sont utilisées par le fichier modeles.la, pour éviter de répéter des suites de désinences. Elles sont repérées comme en PHP, par leur premier caractère $.

QString LemCore::voix ( int  i)

Accesseur de la voix.

Paramètres
i: un entier 0 ou 1
Renvoie
Une chaine avec la voix dans la langue choisie (voir LemCore::_cible et LemCore::setCible).

Documentation des données membres

QMap<QString,QStringList> LemCore::_cas
private

Liste des cas avec langue (clef) et liste lisible (valeur)

QString LemCore::_cible
private

La langue choisie, voir LemCore::setCible.

QMap<QString, QString> LemCore::_cibles
private

Liste des langues cibles en forme abrégée (clef) et longue (valeur)

QMap<QString, QString> LemCore::_contractions
private

Association des formes contractées et non-contractées.

QMultiMap<QString, Desinence *> LemCore::_desinences
private

Liste des désinences avec forme (clef) et pointeur (valeur)

QMap<QString, QString> LemCore::_desMed
private

Associe une graphie médiévale (clef) à une graphie classique (valeur) pour une désinence.

bool LemCore::_extension
private

Option indiquant le chargement de l'extension du lexique, voir LemCore::setExtension.

bool LemCore::_extLoaded
private

Booléen indiquant si l'extension du lexique a été chargée.

QMap<QString,QStringList> LemCore::_genres
private

Liste des genres avec langue (clef) et liste lisible (valeur)

QMultiMap<QString, Irreg *> LemCore::_irregs
private
QMap<QString, QString> LemCore::_irrMed
private

Associe une graphie médiévale (clef) à une graphie classique (valeur) pour un irrégulier.

QMap<QString, Lemme *> LemCore::_lemmes
private

Liste des lemmes avec forme (clef) et pointeur (valeur)

bool LemCore::_medieval
private

Booléen pour traiter les graphies médiévales.

QMap<QString, Modele *> LemCore::_modeles
private

Liste des modèles avec nom (clef) et pointeur (valeur)

QMap<QString,QStringList> LemCore::_modes
private

Liste des modes avec langue (clef) et liste lisible (valeur)

QMap<QString,QStringList> LemCore::_morphos
private

Liste des analyses morphologiques avec langue (clef) et liste lisible (valeur)

QMap<QString,QStringList> LemCore::_motsClefs
private

Liste des autres mots-clefs avec langue (clef) et liste lisible (valeur)

QMap<QString,QStringList> LemCore::_nombres
private

Liste des nombres avec langue (clef) et liste lisible (valeur)

QMultiMap<QString, Radical *> LemCore::_radicaux
private

Liste des radicaux avec forme (clef) et pointeur (valeur)

QMultiMap<QString, QString> LemCore::_radMed
private

Associe une graphie médiévale (clef) à une graphie classique (valeur) pour un radical.

QList<Reglep> LemCore::_reglesMed
private

Liste de règles pour transformer les graphies classiques en graphies médiévales.

QString LemCore::_resDir
private

Le nom du répertoire contenant les données.

QMap<QString, int> LemCore::_tagOcc
private

Nombre d'occurrences du tag dans le corpus du LASLA.

QMap<QString, int> LemCore::_tagTot
private

Nombre d'occurrences du POS (1er caractère du tag) dans le corpus du LASLA.

QMap<QString,QStringList> LemCore::_temps
private

Liste des temps avec langue (clef) et liste lisible (valeur)

QMap<QString, int> LemCore::_trigram
private

Nombre d'occurrences du trigramme dans le corpus du LASLA.

QMap<QString, QString> LemCore::_variables
private

Liste des méta-variables du fichier modeles.la avec nom (clef) et liste de désinences (valeur)

QMap<QString,QStringList> LemCore::_voix
private

Liste des voix avec langue (clef) et liste lisible (valeur)

QStringList LemCore::abr
private

Liste des abréviations, voir LemCore::ajAbr.

QMap<QString, QString> LemCore::assims
private

Association des préfixes assimilés et non-assimilés sans quantité

QMap<QString, QString> LemCore::assimsq
private

Association des préfixes assimilés et non-assimilés avec quantités.

QMap<QString, QString> LemCore::suffixes

Association des suffixes sans et avec quantités.


La documentation de cette classe a été générée à partir des fichiers suivants :