Parser du texte dans la langue française.

Parser du texte dans la langue française. - Algo - Programmation

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 :

  • l'apostrophe ou
  • la virgule + une espace ou
  • une espace ou
  • une espace + un point-virgule + un espace ou
  • un trait d'union

Et
2)Les mots peuvent être construits avec :

  • l'apostrophe ou
  • une espace ou
  • un trait d'union

Et
3)Les phrases commençantes par une majuscule.
Et
4)Les phrases terminent par :

  • un point ou
  • un point d'interrogation ou
  • un point d'exclamation

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 cité 1 fois
Message édité par Profil supprimé le 09-02-2011 à 16:32:04
Reply

Marsh Posté le 09-02-2011 à 16:15:53   

Reply

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!


Message édité par breizhbugs le 09-02-2011 à 20:32:10

---------------
Seul Google le sait...
Reply

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) ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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 ?

Reply

Marsh Posté le 11-02-2011 à 15:27:14    

Bonjour rufo. Merci rufo.

Reply

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...

Reply

Marsh Posté le 11-02-2011 à 17:16:49    

Les expressions régulières existent aussi en ADA ;)

Reply

Marsh 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 !

Reply

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


---------------
Seul Google le sait...
Reply

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.

Reply

Marsh Posté le 13-02-2011 à 14:49:05   

Reply

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.

Reply

Marsh Posté le 13-02-2011 à 20:11:35    

:hello:  
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  :sol:


---------------
Seul Google le sait...
Reply

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.

Reply

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 ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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.

Reply

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...) ;)


Message édité par rufo le 04-03-2011 à 17:29:31

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed