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

Friday, October 8, 2010

JavaScript Stemmer for French Language

About a month ago, I wrote a JavaScript port for the Porter French Stemming Algorithm in Snowball. Algorithm was pretty clear so, that was just a day of work :) I did this port for a requirement of the Google Summer of Code DocBook Webhelp Project which I worked on in the last few months.

If you are not familiar with what a Stemmer is, here's a brief introduction :). What a Stemmer basically does is extracting the root form of a given verb. Stemmers are very useful for Search engines such that users can enter search query in any variety, but view the content for the root word, which the users probably meant. ( Google does this ;) ) Following example shows what a stem is:
Playing     =
Played      ====> Play
Plays       =
Play        =
-----  

As the human languages are very complex, it is really difficuly to devise an algorithm to extract the exact root. Therefore, for some words, the extracted word may not be the exact root, but slightly different one. But for computations purposes and usages in applications, it is sufficient.  :) This issue is not just related to French, and is common for all the stemmers in other languages.

This is the Stemmer for French. The stemmer is now added to the Porter's Snowball site who wrote the algorithms along with other contributors maintains them. Download the Stemmer from:
http://snowball.tartarus.org/otherlangs/index.html
The Stemmer: http://snowball.tartarus.org/otherlangs/french_javascript.txt
To invoke the stemmer, call the stemmer function with the relevant word string.
stemmer(word);
ex: var stem = stemmer("foobar"); 
I ran the given test-cases to verify the accuracy of the implementation. It correctly stemmed nearly 19,500 words out of 21,000 words. The accuracy is more than 90%.

English Stemmer is already available on the Porter site. You can view all the existing Stemmer implementations at Snowball Site. Lot of implementation of Java and C++ are available, but lacks JavaScript port. That was the main reason for me to write this. Hope you all find this useful! Should write a french version of this post too.... :)