Ouverture de session

Commentaires récents

Syndication
Flux XML

Algorithme de Stemming ou "racination"

Algorithme de Stemming ou "racination"
Posté par vriffier le Lundi, 1 Février, 2010 - 7:56pm. Développement

Bonjour,

Je souhaite utiliser l'algorithme de Porter afin de faire du stemming sur des articles d'une base de connaissance.

A ce jour, j'ai trouvé les gems ruby-stemmer et stemmer4r mais dont les implementations pour la langue française ne semblent pas fonctionner.
Exemple
pétrolifère => pétrolifer alors que je m'attends à trouver petrol

Est ce que qqqn a utilisé un algo de stemming open source ruby pour la langue francaise?

Vincent



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Stemming
Auteur: 
jasperiel
Date: 
Mer, 10/02/2010 - 00:26

Bonjour,

désolé d'avoir laissé passer tant de temps, je voulais retrouver mon code (projet de moteur de recherche à l'école) ou faire une réponse détaillée mais tant pis.

J'ai déjà fait un algo très basique de stemming en français, et les résultats sont extrêmement satisfaisants pour une approche très naïve : en mettant les préfixes, suffixes, féminins, pluriels et conjugaisons usuelles du français, on construit assez facilement une bonne grosse regexp [1] qui trouve les racines des mots français.
Ça a dû me prendre une ou deux heures à tout casser, et un peu de tests pour ajuster l'ordre de ces "blocs de construction" [2].

Hormis de rares cas particuliers, souvent sur des mots courts ou si la racine du mot est elle-même un préfixe connu (typiquement, une racine grecque), j'avais plus de 2Go de texte pur et ça ressortait très bien.

On avait déjà des heuristiques à l'étape de recherche en cas de mot trop court, bien sûr, mais je ne me rappelle de rien de trop sorcier.
Je pense qu'une simple gestion des cas limites à l'indexation suffit [3].

Bref : n'hésite pas avec une approche naïve, ça marche vraiment bien !
Bon courage et n'hésite pas à nous en dire plus sur ton avancement.

[1] 200 à 400 caractères tout au plus, c'est pas énorme, surtout que tu la construits en morceaux qui font rarement plus de 50 caractères

[2] je pense que l'ordre que je donne ici est bon, notons juste que (féminin et pluriel) et (verbe conjugué) sont mutuellement exclusifs

[3] si le stemming a tout mangé et retourne vide, relancer un stemming moins gourmand, par exemple avec une regexp avec un peu moins de "blocs" (féminins + pluriels + conjugaisons, sans les préfixes et suffixes courants)


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Je suis resté sur une
Auteur: 
vriffier
Date: 
Mar, 16/02/2010 - 16:34

Je suis resté sur une grosse regex pour le moment.
Ce n'est pas optimisé pour le moment mais fonctionne correctement.
On verra pour des optimisations plus tard.


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Qui est en ligne
Il y a actuellement 1 utilisateur et 43 invités en ligne.

Membres en ligne :

  • jeezs

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Propulsé par Drupal ]