Tuesday, October 12, 2010

Français: Vote JavaScript pour la langue française

Ceci est la version (google) traduit de l'anglais blog-post "Stemmer JavaScript pour la langue française". Je demande pardon s'il ya des erreurs présentes dans la version traduite. Il ya un mois, j'ai écrit un port JavaScript pour l'algorithme de Porter français Issu dans le web-site Snowball. Algorithme a été assez claire de sorte que le codage a été juste une journée de travail:) Je n'ai ce port pour une exigence de la Google Summer of Code projet DocBook Webhelp qui j'ai travaillé dans les derniers mois.
Voici une brève introduction au sujet de formes dérivées, si vous n'êtes pas familier avec ce qu'est un Stemmer est. :) Qu'est-ce qu'un Stemmer fait essentiellement consiste à extraire la racine d'un mot donné. Formes dérivées sont très utiles pour moteurs de recherche tels que les utilisateurs peuvent entrer requête de recherche dans n'importe quelle variété, mais afficher le contenu de la racine du mot. C'est ce que les utilisateurs a probablement voulu dire. (Google ne présente;)) L'exemple suivant montre ce qu'est une stem est:
 

contractait     =
contracter
      ====> contract
contractés
      =
-----  
 
Comme les langues de l'homme sont très complexes, il est vraiment Difficuly de mettre au point un algorithme pour extraire la racine exacte. Par conséquent, pour certains mots, le mot ne peut être extraite de la racine exacte, mais légèrement différentes les unes. Mais à des fins de calculs et les usages dans les applications, c'est suffisant. :) Ce problème ne concerne pas seulement le français, et est commune à toutes les formes dérivées dans d'autres langues. 

Il s'agit de la Stemmer pour le français. L'égrappoir est maintenant ajouté au site de l'Porter Snowball qui a écrit les algorithmes ainsi que d'autres contributeurs les maintient. Télécharger le Stemmer à partir de:


http://snowball.tartarus.org/otherlangs/index.html
Le Stemmerhttp://snowball.tartarus.org/otherlangs/french_javascript.txt
Pour appeler l'égrappoir, appelez l'égrappoir fonction avec la chaîne de mots pertinents.
stemmer(word);
ex: var stem = stemmer("foobar"); 
J'ai couru la donnée de test cas pour vérifier l'exactitude de la mise en œuvre. Il découle de près de 19.500 correctement mots de 21.000 mots. La précision est de plus de 90%.
Stemmer anglais est déjà disponible sur le site Porter. Vous pouvez consulter toutes les implémentations existantes Stemmer au Snowball site. Lot de mise en œuvre de Java et C + + sont disponibles, mais manque de JavaScript port. Cela a été la principale raison pour moi d'écrire ça. J'espère que vous avez trouver cela utile! Si écrire une version française de ce post trop .... :)