Adding support for French + more concise & generic NLTK stemmers import

Hi !

That's just a minor change to add French language support.
I also refactored a little bit sumy/nlp/stemmers/\_\_init\_\_.py

If you have any criticism about this patch, please tell me and I'll be happy to fix it.

Here is the testing I've done:

$ sumy edmundson --language=french --length=3% --url=http://fr.wikipedia.org/wiki/Trouble_du_d%C3%A9ficit_de_l%27attention
Pour les articles homonymes, voir TDA .
Sa détection et les soins à apporter font l'objet de nombreuses controverses.
Le TDA/H a un aspect héréditaire, impliquant notamment le rôle des transporteurs de dopamine .
Le trouble dit « du déficit de l'attention » semble pouvoir avoir une ou plusieurs causes environnementales :
Les corrélations statistiques issues d'observations épidémiologiques ne permettent pas d'affirmer avec certitude l'existence d'un lien de causalité ; d'autres facteurs non identifiés pouvant souvent intervenir pour expliquer les liens observés.
Le TDAH serait la cause, plutôt que l'effet [30]
Le médicament représente certes un aspect de la prise en charge du TDAH mais n’en constitue pas la totalité [59] : spécialistes et associations de patients s'accordent à promouvoir des prises en charges multimodales faisant appel à de nombreuses compétences [60] .
Depuis quelques années, on propose à certains patients une prise en charge en remédiation cognitive, notamment celles ciblant la mémoire de travail [64] .
(2006), Long-term effects of frequent cannabis use on working memory and attention: an fMRI study, Psychopharmacology, 185 (3), 358-368.

$ sumy lex-rank --length=10 --url=http://en.wikipedia.org/wiki/Automatic_summarization
Such a summary might contain words not explicitly present in the original.
Even though automating abstractive summarization is the goal of summarization research, most practical systems are based on some form of extractive summarization.
Furthermore, evaluation of extracted summaries can be automated, since it is essentially a classification task.
It consists in selecting a representative set of images from a larger set of images.
Beginning with the Turney paper [ citation needed ] , many researchers have approached keyphrase extraction as a supervised machine learning problem.
Design choices[ edit ] Designing a supervised keyphrase extraction system involves deciding on several choices (some of these apply to unsupervised, too):
What are the examples?
[ edit ] The first choice is exactly how to generate examples.
[ edit ] We also need to create features that describe the examples and are informative enough to allow a learning algorithm to discriminate keyphrases from non- keyphrases.
Furthermore, training on a specific domain tends to customize the extraction process to that domain, so the resulting classifier is not necessarily portable, as some of Turney's results demonstrate.

$ sumy luhn --language=czech --url=http://www.zdrojak.cz/clanky/automaticke-zabezpeceni/
Za cenu o něco složitějšího jádra bude veškerý kód, který ho používá, obvykle taky mnohem jednodušší.
Druhou úroveň představuje ruční ošetřování pomocí htmlspecialchars .
Třetí úroveň zdánlivě reprezentuje automatické ošetřování v šablonách, např. v Nette Latte .
Problém je v tom, že ošetření se dá obvykle snadno zakázat, např. v Latte pomocí {!$var} .
Druhou úroveň představuje ruční ošetřování pomocí mysql_real_escape_string nebo obdobné funkce.
Třetí úroveň zdánlivě reprezentuje vázání proměnných, např. v PDO .
Problém je v tom, že napsat $pdo->prepare("... WHERE id = $_GET[id]") je funkční a ještě jednodušší než $pdo->prepare("... WHERE id = ?
V některých případech to je dokonce jediné možné řešení, alternativu k $pdo->prepare("... ORDER BY $_GET[order]") vázání proměnných nenabízí.
Chybu pořád lze udělat, i když bezpečná verze je ve většině případů alespoň jednodušší: where("id", $_GET["id"]) je jednodušší než where("id = $_GET[id]") .
Další běžná chyba , kde je řešení druhé úrovně jednoduché: stačí místo WHERE id = ?
Pokud žádné ID uživatele uložené nemáme, dá se místo snadno uhodnutelného číselného ID použít dlouhé náhodné GUID.
Za cenu o něco složitějšího jádra bude veškerý kód, který ho používá, obvykle taky mnohem jednodušší.