Parser du texte dans la langue française. - Algo - Programmation
Marsh Posté le 09-02-2011 à 20:24:57
Bonjour,
http://geai.univ-brest.fr/~cardot/ [...] ode52.html
la deuxième partie semble être assez intéressante (les grandes étapes...)
aussi en lisant http://alma.univ-nantes.fr/modules/S3IA070 tu trouveras quelque mot clé...
il me semble d'après mes vagues souvenirs de cours que l'on essayait d'abord de définir la grammaire d'une phrase et en lisant les mots on essayait de les caser dans différentes catégories (verbe, sujet complément...) (et ca permet d'écarter certains mots parasites pour ne garder que les mots clef!)
sinon au lieu de dire "les mots sont séparés par des (...)" ont peut aussi se dire que "les mots sont une suite de lettres". Plus facile pour les découper dans une phrase.
ensuite certains mots exceptions comme "aujourd'hui" peuvent être mis dans une base de données qui va nous servir a vérifier si le mot est correct.
enfin dans mes souvenirs, on utilisait aussi beaucoup des statistiques il me semble!
Marsh Posté le 11-02-2011 à 15:12:06
Pour info, y'a une base de donnée en GPL qui s'appelle Lexique.org. On y trouve plus de 120000 mots de la langue française avec des stats dessus, leur fonction grammaticale, lemme, phonétique (dans le bon sens et à l'envers)...
Je m'en sers pour un algo sémantique de calcul de proximité entre documents basé sur LSA (cf wikipedia)
Marsh Posté le 11-02-2011 à 15:18:51
bonjour breizhbugs, encore merci breizhbugs.
je m'attendait plutôt à un "tant que faire" ou un truc du genre pour commencer un dialogue.
En fait il me semble que tu me renvois à de la théorie sur la cognicité, alors que je veux juste une boucle pour effectuer d'autre opération, en vue d'un traitement connexioniste.
Qu'en penses tu ?
Marsh Posté le 11-02-2011 à 16:24:05
En fait, c'est tellement un problème pour moi, que je ne sais même pas, a priori, c'est pas possible, faire la différence entre une lettre et un autre caractère.
Je suis avec Ada...
Marsh Posté le 11-02-2011 à 17:16:49
ReplyMarsh Posté le 11-02-2011 à 18:57:24
antac a écrit : Les expressions régulières existent aussi en ADA |
Ah oui, pas mal comme idée, je vais étudier. Merci antac !
Marsh Posté le 11-02-2011 à 19:03:46
J'en pense pas grand chose dans la mesure ou quand tu dis "Je désire traiter des phrases de la langue française un peu réduite", le "traiter" est tellement abstrait que je ne savais pas vers quel direction t'envoyer, alors je me suis contenter de t'envoyer vers la présentation des cours que j'ai eu en maitrise (et dont je n'ai plus grands restes!)
Tout ce que je me souviens c'est que l'on cherchait a étiqueter chaque mot d'attribut(genre, nombre, fonction...) de façon a chercher à établir des relation entre les mots et que pour cela on essayais de trouver la grammaire du langage étudié (donc le francais).
le traitement connexioniste ne me disant rien, je ne peux t'aider plus!
http://www.persee.fr/web/revues/ho [...] _11_1_2294
Marsh Posté le 13-02-2011 à 14:49:05
bonjour breizhbugs,
Oui, je comprend que tu ai pu trouver l'expression abstraite.
C'est parce que je n'ai pas su dire quel type de traitement je désire faire.
Techniquement, je suis dans la cat algo, et je veux séparer les lettres des autres caractères, et encore, pas tout le temps ; Je doit ajouter les mots dans un dictionnaire et mettre les phrases avec la ponctuation dans une liste (la ponctuation étant préexistante dans le dictionnaire).
Je ne veux en aucun cas analyser la sémantique du texte ici.
Cependant, c'est vrai que vu le nouveau lexique de Lexique.org, je peux éliminer les constructeur.
Marsh Posté le 13-02-2011 à 16:40:54
En fait j'ai une fonction avec Ada, qui me dit si le caractère est une lettre ou pas.
Je croyais que cette fonction retournais faux pour les caractères accentués au-delà de 127.
Voila, alors, j'avais réduit l'alphabet en entrée.
Du coup je vois les chose en plus grand... Enfin, pas moi... La machine.
Marsh Posté le 13-02-2011 à 20:11:35
Mouais, si je te parlais de grammaire, c'est que je faisais l'analogie avec l'analyse d'un langage de programmation et que pour moi un mot en français s'analysait de la même façon qu'un identifiant en C par exemple, c'est à dire avec des règles précises. Et qu'analyser toute une phrase pouvait servir a différencier un nom d'un adjectif d'un verbe pour les mots dont ces formes sont identiques! (Mais peut être que cela ne t'es pas utile!)
Bref si tu es content avec ta fonction, c'est cool
Marsh Posté le 04-03-2011 à 13:00:30
Bonjour finalement, je me retrouve avec le problème initial.
j'ai cru que la base de donnée Lexique avait changée mais il n'en ai rien.
Je me retrouve à devoir vérifier l'orthographe du texte entré dans mon programme grace à un au Lexique mais celui-ci comprend des mot construit avec des séparateur.
Je me demande commen procéder.
Marsh Posté le 04-03-2011 à 14:24:05
Attends, faut pas bosser avec le fichier txt! Moi, j'ai fait un script en php pour importer dans une table Mysql le contenu (j'ai gardé les mêmes colonnes). Comme ça, c'est bien plus rapide pour retrouver un mot, son lemme ou effectuer tout autre traitement
Marsh Posté le 04-03-2011 à 15:12:45
J'ai fait un arbre binaire avec la première colonne du fichier Lexique3.txt.
Et je ne sais pas comment faire pour reconnaître, par exemple, le mot "a jeun".
Les Lemme et les graphèmes, j'y comprend rien, je sais même pas ce que c'est.
Marsh Posté le 04-03-2011 à 17:28:25
lemme = forme "initiale" du mot.
Pour les verbes, c'est la forme infinitive
Pour les noms communs, c'est le masculin singulier
Adjectif -> au masculin singulier
...
Si tu travailles sur le traitement naturel des langues, ça serait bien que tu te documentes sur les notions de base de la linguistique (taxonomie, sémantique, ontologie...)
Marsh Posté le 04-03-2011 à 19:48:16
Merci pour l'info rufo,
Donc, oui, je suis un peu hermétique en ce moment. Mais donc, en plus j'ai raison de prendre la première colonne, je veux le lemme accordé ou conjuguer. Tel qu'on l'écrit quoi. Et c'est ce qu'il faut que je reconnaisse.
Marsh Posté le 09-02-2011 à 16:15:53
Bonjour,
Je me suis casser les dents sur ce problème simple à plusieurs reprise.
Je fait appel à la communauté pour m'aider à traiter ce problème.
Je désire traiter des phrases de la langue française un peu réduite.
Selon les conditions suivantes, j'effectue diverses opérations :
1)Les mots son séparés par :
Et
2)Les mots peuvent être construits avec :
Et
3)Les phrases commençantes par une majuscule.
Et
4)Les phrases terminent par :
Et
5)Les groupes de mot commençants par une majuscule sont traiter spécialement.
Voilà, je souhaitais votre avis pour traiter ce problème.
Merci à tous.
Message édité par Profil supprimé le 09-02-2011 à 16:32:04