trouver les termes liés dans un texte [PHP... ou autres] - PHP - Programmation
Marsh Posté le 06-09-2006 à 20:09:08
je travaille sur un scrip equivalent
Merci pour l'idée !
=> Le passage au tableau me semble obligatoire
=> normalement avec une fonction recursive passé à un array_map c'est ok
=> la voie brutale me parait etre la plus rapide pour des petits tableaux
Problème difficile
Marsh Posté le 07-09-2006 à 12:03:17
A première vue, c'est un pur problème d'algorithmique. Essayez de fouiller vers les algorithmes de compression à dictionnaires notamment LZW ça pourrait vous donner des idées sur la façon de créer le dictionnaire au fur et à mesure de la lecture du texte.
Marsh Posté le 07-09-2006 à 13:22:46
Ouais la compression est un atout et évite relativement souvent d'avoir des problèmes en input.
Code :
|
Marsh Posté le 07-09-2006 à 16:33:10
on s'oriente alors, dans l'esprit du lzw vers :
explode => tableau
selection de l'element n et n+1 (avec raffinement sur les elts syntaxiques)
tableau['elt1 elt2']++;
et ensuite on regarde les grosses valeurs du tableau.
A tester !
Marsh Posté le 07-09-2006 à 16:50:53
tu peux aussi jeter un coup d'oeil sur l'algo "suffix tree" ( ou "Ukkonen's algorithm" )
Marsh Posté le 06-09-2006 à 16:41:09
Bonjour,
Je cherche à écrire/adapter un script qui permet, dans un texte / contenu textuel de :
trouver les termes liés deux à deux ou trois à trois.
Par exemple dans :
"la confédération paysanne a déclaré que le prix du porc ne devait pas passer sous la barre des 5 EUR. Mais face à eux, le Ministère de l'Agriculture maintient sa volonté de baisse du prix du porc. La confédération paysanne prépare un mouvement de contestation le 5 septembre."
le script doit trouver que "confédération paysanne" est une expression signifiante, puisqu'on la retrouve deux fois. Idem pour "prix du porc".
Il y a bien sur la voie brutale de faire des explode des termes deux à deux "la confédération", "confédération paysanne", "paysanne a", "a déclaré", "déclaré que", "que le", etc... et d'analyser la fréquence d'occurence de chaque doublette.
Et idem pour les triplettes, etc.
Mais il y a peut être des choses existantes / des voies plus intelligentes de faire la meme chose... qu'en pensez vous ?