Collatinus  11.3
lemme.h
Aller à la documentation de ce fichier.
1 /* lemme.h
2  *
3  * This file is part of COLLATINUS.
4  *
5  * COLLATINUS is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * COLLATINVS is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with COLLATINUS; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * © Yves Ouvrard, 2009 - 2016
20  */
21 
22 #ifndef LEMME_H
23 #define LEMME_H
24 
25 #include <QMultiMap>
26 #include <QObject>
27 #include <QString>
28 #include <QDebug>
29 #include <QStringList>
30 
31 #include "irregs.h"
32 #include "lemCore.h"
33 #include "modele.h"
34 #include "ch.h"
35 
36 class Irreg;
37 class LemCore;
38 class Lemme;
39 class Modele;
40 
44 class Radical : public QObject
45 {
46  private:
47  QString _gr;
48  QString _grq;
50  int _numero;
51 
52  public:
53  Radical(QString g, int n, QObject* parent);
54  QString gr();
55  QString grq() const;
56  Lemme* lemme();
57  Modele* modele();
58  int numRad();
59 };
60 
64 class Lemme : public QObject
65 {
66  Q_OBJECT
67  private:
68  static LemCore* _lemCore;
69  QString _cle;
70  QString _gr;
71  QString _grd;
72  QString _grq;
73  QString _grModele;
74  QString _hyphen; // Pour les césures étymologies
75  QString _indMorph;
76  QList<Irreg*> _irregs;
78  int _nh;
79  QList<int> _morphosIrrExcl;
80  int _nbOcc; // Nombre d'occurrences du lemme dans les textes du LASLA
81  int _origin; // lemmes ou lem_ext
82  QString _pos;
83  QMap<int, QList<Radical*> > _radicaux;
84  QString _renvoi;
85  QMap<QString,QString> _traduction;
86 
87  public:
88  Lemme(const QString linea, const int origin, QObject* parent);
89  static void setLemCore(LemCore* l);
90  void ajIrreg(Irreg* irr);
91  void ajNombre(int n);
92  void ajRadical(int i, Radical* r);
93  void ajTrad(QString t, QString l);
94  QString ambrogio();
95  QString cle();
96  QList<int> clesR();
97  bool estIrregExcl(int nm);
98  QString genre();
99  QString getHyphen (); // Accesseurs pour les césures étymologiques
100  QString gr();
101  QString grq();
102  QString grModele();
103  QString humain(bool html = false, QString l = "fr", bool nbr = false);
104  QString indMorph();
105  QString irreg(int i, bool* excl);
106  Modele* modele();
107  int nbOcc() const; // Retourne le nombre d'occurrences du lemme
108  void clearOcc(); // Efface " " "
109  int nh();
110  int origin();
111  QString static oteNh(QString g, int& nh);
112  QString pos();
113  QList<Radical*> radical(int r);
114  bool renvoi();
115  void setHyphen (QString h);
116  QString traduction(QString l);
117  inline bool operator<(const Lemme &l) const;
118 };
119 
120 #endif
static void setLemCore(LemCore *l)
Definition: lemme.cpp:194
QMap< int, QList< Radical * > > _radicaux
Definition: lemme.h:83
void ajRadical(int i, Radical *r)
Ajoute le radical r de numéro i à la map des radicaux du lemme.
Definition: lemme.cpp:236
int origin()
Renvoie l'origine du lemme : 0 pour le lexique de base, 1 pour l'extension.
Definition: lemme.cpp:483
QString _hyphen
Definition: lemme.h:74
int _origin
Definition: lemme.h:81
QMap< QString, QString > _traduction
Definition: lemme.h:85
int _nbOcc
Definition: lemme.h:80
Lemme * lemme()
Le lemme auquel appartient le radical.
Definition: lemme.cpp:78
int nh()
Renvoie le numéro d'homonymie du lemme.
Definition: lemme.cpp:474
int nbOcc() const
Renvoie le nombre d'occurrences du lemme dans les textes du LASLA.
Definition: lemme.cpp:456
La classe Radical décrit les radicaux associés aux lemmes.
Definition: lemme.h:44
QString gr()
Renvoie la graphie du radical dépourvue de diacritiques.
Definition: lemme.cpp:58
QString _cle
Definition: lemme.h:69
void ajIrreg(Irreg *irr)
Ajoute au lemme l'obet irr, qui représente une forme irrégulière. Lorsque les formes irrégulières son...
Definition: lemme.cpp:209
QString ambrogio()
Renvoie dans une chaîne un résumé de la traduction du lemme dans toutes les langues cibles disponible...
Definition: lemme.cpp:259
QString indMorph()
Definition: lemme.cpp:420
QString pos()
Renvoie un caractère représentant la catégorie (part of speech, pars orationis) du lemme...
Definition: lemme.cpp:513
QString irreg(int i, bool *excl)
Renvoie la forme irrégulière de morpho i. excl devient true si elle est exclusive, false sinon.
Definition: lemme.cpp:430
void ajTrad(QString t, QString l)
ajoute la traduction t de langue l à la map des traductions du lemme.
Definition: lemme.cpp:246
void clearOcc()
Lemme::clearOcc Initialise le nombre d'occurrences.
Definition: lemme.cpp:465
QString grq() const
Renvoie la graphie du radical pourvue de ѕes diacritiques.
Definition: lemme.cpp:69
QString _grq
Definition: lemme.h:72
QList< int > clesR()
Retourne toutes les clés (formes non-ramistes sans diacritiques) de la map des radicaux du lemme...
Definition: lemme.cpp:292
int numRad()
Le numéro du radical.
Definition: lemme.cpp:88
QString _pos
Definition: lemme.h:82
Modele * modele()
Renvoie l'objet modèle du lemme.
Definition: lemme.cpp:447
QString _grq
Definition: lemme.h:48
Modele * modele()
Le modèle de flexion du radical.
Definition: lemme.cpp:83
Radical(QString g, int n, QObject *parent)
Créateur de la classe Radical. g est la forme canonique avec ses quantités, n est le numéro du radica...
Definition: lemme.cpp:45
QString humain(bool html=false, QString l="fr", bool nbr=false)
Retourne une chaîne donnant le lemme ramiste avec diacritiques, ses indications morphologiques et sa ...
Definition: lemme.cpp:375
QString grModele()
Retourne la graphie du modèle du lemme.
Definition: lemme.cpp:364
QString gr()
Retourne la graphie ramiste du lemme sans diacritiques.
Definition: lemme.cpp:346
La classe Lemme décrit les lemmes.
Definition: lemme.h:64
La classe Modele contient les désinences associées aux paradigmes de flexion.
Definition: modele.h:67
QString grq()
Retourne la graphie ramiste du lemme sans diacritiques.
Definition: lemme.cpp:355
bool estIrregExcl(int nm)
Renvoie vrai si la forme irrégulière avec le n° nm remplace celle construite sur le radical...
Definition: lemme.cpp:305
QString _indMorph
Definition: lemme.h:75
Lemme(const QString linea, const int origin, QObject *parent)
Constructeur de la classe Lemme à partir de la ligne linea. *parent est le noyau de lemmatisation (cl...
Definition: lemme.cpp:98
QString _gr
Definition: lemme.h:70
void ajNombre(int n)
Ajoute l'entier n au nombre d'occurrences du lemme.
Definition: lemme.cpp:224
QString cle()
Renvoie la clé sous laquel le lemme est enregistré dans le lemmatiseur parent.
Definition: lemme.cpp:282
QString _gr
Definition: lemme.h:47
QString _renvoi
Definition: lemme.h:84
QList< Irreg * > _irregs
Definition: lemme.h:76
bool operator<(const Lemme &l) const
vrai si la fréquence du lemme de gauche est inférieure à celle de celui de droite. commenté : vrai si la graphie du lemme de gauche précède celle de celui de droite dans l'ordre alphabétique.
Definition: lemme.cpp:574
QString _grModele
Definition: lemme.h:73
QString getHyphen()
Lemme::getHyphen.
Definition: lemme.cpp:595
static LemCore * _lemCore
Definition: lemme.h:68
La classe LemCore est le noyau de lemmatisation.
Definition: lemCore.h:118
static QString oteNh(QString g, int &nh)
Supprime le dernier caractère de g si c'est un nombre et revoie le résultat après avoir donné la vale...
Definition: lemme.cpp:494
Modele * _modele
Definition: lemme.h:77
QString genre()
Le genre du lemme.
Definition: lemme.cpp:321
QList< Radical * > radical(int r)
Renvoie le radical numéro r du lemme.
Definition: lemme.cpp:527
int _numero
Definition: lemme.h:50
int _nh
Definition: lemme.h:78
QString _grd
Definition: lemme.h:71
void setHyphen(QString h)
Lemme::setHyphen.
Definition: lemme.cpp:586
La classe Irreg décrit les formes irrégulières dans la flexion d'un lemme.
Definition: irregs.h:43
bool renvoi()
Renvoie true si le lemme est une forme alternative renvoyant à une autre entrée du lexique...
Definition: lemme.cpp:538
QString traduction(QString l)
Renvoie la traduction du lemme dans la langue cible l (2 caractères, éventuellement plus pour donner ...
Definition: lemme.cpp:547
QList< int > _morphosIrrExcl
Definition: lemme.h:79
Lemme * _lemme
Definition: lemme.h:49