Кажется, PorterStemmer не работает
Я новичок в python и практикуюсь с примерами из книги.
Может ли кто-нибудь объяснить, почему, когда я пытаюсь запустить какой-то пример с этим кодом, ничего не меняется?
>>> from nltk.stem import PorterStemmer
>>> stemmer=PorterStemmer()
>>> stemmer.stem('numpang wifi stop gadget shopping')
'numpang wifi stop gadget shopping'
но когда я это делаю он работает
>>> stemmer.stem('shopping')
'shop'
3 ответов
попробуйте это:
res = ",".join([ stemmer.stem(kw) for kw in 'numpang wifi stop gadget shopping'.split(" ")])
проблема в том, что, вероятно, этот стеммер работает на отдельных словах. в вашей строке нет слова "root", а единственное слово" shopping "имеет корень"shop". таким образом, вам придется вычислить stemming отдельно
edit:
из их исходный код ->
Stemming algorithms attempt to automatically remove suffixes (and in some
cases prefixes) in order to find the "root word" or stem of a given word. This
is useful in various natural language processing scenarios, such as search.
поэтому, я думаю, вы действительно вынуждены разделить свою строку самостоятельно
Stemming-это процесс сокращения данного слова до его базовой или измененной формы, Здесь вы пытаетесь создать целое предложение,
выполните следующие действия :
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer
sentence = "numpang wifi stop gadget shopping"
tokens = word_tokenize(sentence)
stemmer=PorterStemmer()
Output=[stemmer.stem(word) for word in tokens]
попробуйте это:
from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenize
stemmer = PorterStemmer()
some_text = "numpang wifi stop gadget shopping"
words = word_tokenize(some_text)
for word in words:
print(stemmer.stem(word))