Python stemmer проблема: неправильный ствол
Привет, я пытаюсь обуздать слова с помощью python, я попробовал Porter и Lancaster, но у них та же проблема. Они не могут использовать правильные слова, которые заканчиваются на "er" или "e".
например, они стволовые
computer --> comput
rotate --> rotat
это часть кода
line=line.lower()
line=re.sub(r'[^a-z0-9 ]',' ',line)
line=line.split()
line=[x for x in line if x not in stops]
line=[ porter.stem(word, 0, len(word)-1) for word in line]
# or 'line=[ st.stem(word) for word in line]'
return line
Любая идея, чтобы решить эту проблему?
1 ответ
Чтобы процитировать страницу в Википедии, In computational linguistics, a stem is the part of the word that never changes even when morphologically inflected, whilst a lemma is the base form of the word. For example, given the word "produced", its lemma (linguistics) is "produce", however the stem is "produc": this is because there are words such as production.
Таким образом, ваш код, вероятно, дает вам правильные результаты. Вы, кажется, ожидаете лемму, которая не является тем, что производит стеммер (кроме случаев, когда лемма оказывается равной стеблю)