Here 's stary, ale istotny komentarz przez dev nltk. Wygląda najbardziej zaawansowanych stemmers w NLTK są specyficzne angielskie:
Moduł nltk.stem obecnie zawiera 3 stemmery: Porter stemmer The stemmer Lancaster i wyrażeń regularnych opiera Stemmer. Łodyga Portera i łodyga Lancastera są specyficzne dla języka angielskiego. Trzpień bazujący na wyrażeniu regularnym można dostosować do , używając dowolnego wyrażenia regularnego, które chcesz. Więc powinieneś być w stanie napisać prosty łodygę dla języków innych niż angielski za pomocą trzpienia regexp. Na przykład, na francuski:
from nltk import stem
stemmer = stem.Regexp('s$|es$|era$|erez$|ions$| <etc> ')
Ale trzeba by wymyślić języka specyficzne wyrażenia regularne samemu. W przypadku bardziej zaawansowanego trzpienia prawdopodobnie konieczne będzie dodanie , aby dodać nowy moduł. (Może to być dobrym uczniem projekt).
Aby uzyskać więcej informacji na temat Stemmer regexp:
http://nltk.org/doc/api/nltk.stem.regexp.Regexp-class.html
-Edward
Uwaga: link daje on jest martwy, patrz here dla bieżącej dokumentacji regexstemmer.
Bardziej ostatnio dodany snowball stemmer wydaje się być w stanie powstrzymać francuski. Zróbmy test:
>>> from nltk.stem.snowball import FrenchStemmer
>>> stemmer = FrenchStemmer()
>>> stemmer.stem('voudrais')
u'voudr'
>>> stemmer.stem('animaux')
u'animal'
>>> stemmer.stem('yeux')
u'yeux'
>>> stemmer.stem('dors')
u'dor'
>>> stemmer.stem('couvre')
u'couvr'
Jak widać, niektóre wyniki są nieco wątpliwe.
Nie do końca to, na co liczyliście, ale myślę, że to początek.
tak to rozczarowujące, nie ma rdzeni dla non-angielski językach. w rzeczywistości udało mi się tokenizować słowa dotyczące interpunkcji, a następnie usunąłem wszystkie pozostałe jednoliterowe artykuły (np. pozostałe l w "l'ensemble" na przykład). Następnie wykorzystałem listę słów i odpowiadające im lemmaty, w szczególności tę umieszczoną pod adresem http://www.limsi.fr/Individu/anne/OLDlexique.txt, do której odwoływały się liczne posty online. Trzpień do kuli śnieżnej wygląda, jakby działał, dzięki Junuxx. :) – yelsayed