Ressources lexicales et linguistiques
Étude de cas : Ressources lexicales et linguistiques. Recherche parmi 300 000+ dissertationsPar sousra • 11 Février 2017 • Étude de cas • 4 288 Mots (18 Pages) • 688 Vues
[pic 1]
[pic 2]
Sommaire
Introduction………………………………………………………………………………………………………..1
I. Aperçu de l’application……………………………………………….……………………….2
- Objectif………………………………….………………………………………..……………………..2
- Choix technique .……….……………………………….…………..………………….…………3
II. Codage du dictionnaire ……………………………………………………………………….3
- Structure de données……………………………….………………………………………....4
- Algorithmes………………………………………………………………………………………………5
- Code source…………………………..…………………………………………….……………………6
III. Démonstratio de EnimDico………………………………………………………….12
Conclusion………………………………………………………………………..……………………………15
Introduction
Le problème des ressources lexicales et linguistiques s’est toujours posé. Néanmoins, l’avancée des techniques de l’informatisation l’a rendu plus accessible. Il nous faut maintenant pouvoir répondre à des besoins en termes de rapidité d’accès à l’information et sa fiabilité.
Nous nous sommes donc intéressées à la construction d’une application d’informatisation du dictionnaire contenant de nombreuses informations structurées pour faciliter l’apprentissage du vocabulaire de la langue française ainsi que sa traduction à la langue anglaise.
Ce projet répond à plusieurs motivations. D’une part, il permet de tester les structures de données dans la mémoire en les utilisant pour un dictionnaire mettant en œuvre la structure d’arbre n-aire. D’autre part, les informations contenues dans le dictionnaire présentent une richesse que l’on ne trouve dans autre dictionnaire non informatisé.
Aperçu de l’application
1.Objectif :
Ce projet vise la création d’une version informatisée du dictionnaire qui cherche le sens des mots ainsi que sa traduction en anglais. Ainsi il facilite la recherche d’un mot, l’ajout et aussi la suppression. Le dictionnaire est aussi capable de lister les mots qui commencent par un caractère du choix du l’utilisateur.
Cette version du rapport devra contenir l’ensemble des informations présentes sous une forme aussi structurée que possible.
2.Choix technique :
Le projet s’appuie sur les structures de données de base telle que :
- Les arbres n-aires.
- Les pointeurs.
Pour programmer cette application on a opté pour le langage C vu la puissance de ce langage et sa flexibilité de gestion de la mémoire. Il fait en outre un usage intensif des adresses mémoires avec la notion de pointeur. Il a une notion de type composé, qui sont les enregistrements.[pic 3]
1. Structure des données
Pour commencer, nous allons étudier la structure d'un nœud.
Le dictionnaire reçoit les minuscules et aussi les majuscules, mais il n’accepte pas les caractères spéciaux qui ne font pas part de la langue française, c'est pourquoi nous n'avons que 26 lettres possibles pour un nœud. Bien évidemment,
Chaque nœud contient une lettre, donc une variable de type char, et il doit contenir aussi un indicateur boolean utilisé pour indiquer si un mot est entier : par exemple, supposons qu'on code le mot "château" dans un arbre; l'arbre aura donc 7 niveaux. La dernière lettre du mot (le "u") aura son indicateur boolean positionné à true. Par contre, la lettre "a" n'aura pas son indicateur positionné, car le mot "cha" n'est pas un mot du dictionnaire. La lettre "t" aura son indicateur positionné, car le mot "chat" fait partie du dictionnaire de la langue française. Ainsi la mémoire sera bien gérée.
Un nœud possède donc:
- Les fils
- Les freres
- un pointeur vers la signification.
- un indicateur de fin de mot
Et cela a été présenté en C sous la forme suivante :
typedef struct element {
char val; //valeur du caractere
element fils; //les fils
element frere
int terminal; //inducateur du fin du mot
char *signification; //pointeur vers lsignification
} element ;
2.Algorithmes :
Le dictionnaire Dictionnaire apporte à l’utilisateur les fonctionnalités suivantes :
- Insertion d’un mot
- Affichage d’un mot
- Recherche d’un mot
- Suppression
- Sauvegarde dans un fichier
- Lister a partir d’un fichier
Code source :
La structure :
struct element
{
char caractere;
struct element *fils;
struct element *frere;
char signification[100];
int terminal;
};
typedef struct element *arbre;
La création :
[pic 4]arbre creation()
{ arbre nouveau;
nouveau=(arbre)malloc(sizeof(element));
nouveau->terminal=0;
nouveau->fils=NULL;
nouveau->frere=NULL;
return nouveau;
}
La fonction d'insertion :
[pic 5]
void Inserer(arbre R,char mot[])
...