Einfach zu reproduzieren:
>>> from nltk import PorterStemmer
>>> stemmer = PorterStemmer()
>>> stemmer.stem('oing')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/peterbe/virtualenvs/songsearch/lib/python3.5/site-packages/nltk/stem/porter.py", line 665, in stem
stem = self._step1b(stem)
File "/Users/peterbe/virtualenvs/songsearch/lib/python3.5/site-packages/nltk/stem/porter.py", line 376, in _step1b
lambda stem: (self._measure(stem) == 1 and
File "/Users/peterbe/virtualenvs/songsearch/lib/python3.5/site-packages/nltk/stem/porter.py", line 258, in _apply_rule_list
if suffix == '*d' and self._ends_double_consonant(word):
File "/Users/peterbe/virtualenvs/songsearch/lib/python3.5/site-packages/nltk/stem/porter.py", line 214, in _ends_double_consonant
word[-1] == word[-2] and
IndexError: string index out of range
>>> import nltk
>>> nltk.__version__
'3.2.2'
Ich habe diesen Fehler für das Wort "aed"
:
from nltk.stem.porter import PorterStemmer
from nltk.corpus import stopwords
stemmer = PorterStemmer()
stemmer.stem('aed')
Fehler ist:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/peter.hurford/.virtualenvs/rex/lib/python2.7/site-packages/nltk/stem/porter.py", line 665, in stem
stem = self._step1b(stem)
File "/Users/peter.hurford/.virtualenvs/rex/lib/python2.7/site-packages/nltk/stem/porter.py", line 376, in _step1b
lambda stem: (self._measure(stem) == 1 and
File "/Users/peter.hurford/.virtualenvs/rex/lib/python2.7/site-packages/nltk/stem/porter.py", line 258, in _apply_rule_list
if suffix == '*d' and self._ends_double_consonant(word):
File "/Users/peter.hurford/.virtualenvs/rex/lib/python2.7/site-packages/nltk/stem/porter.py", line 214, in _ends_double_consonant
word[-1] == word[-2] and
IndexError: string index out of range
Installiert mit:
pip install nltk
python -m nltk.downloader -d
Ausführung:
import nltk
nltk.__version__ # '3.2.2'
Duplikat von https://github.com/nltk/nltk/issues/1581. Mein Fehler; Es tut uns leid. :(
Der Fehler wurde in Version 3.2.2 eingeführt und ist auf dem Master behoben. Sie können entweder develop
oder Version 3.2.1 verwenden, um den Fehler zu beseitigen.
Als fest schließen?
Wurde das Problem behoben?
Dieses Problem sollte von # 1582 😉 behoben worden sein
>>> import nltk
>>> nltk.__version__
'3.2.5'
>>> from nltk import PorterStemmer
>>> porter = PorterStemmer()
>>> porter.stem('oing')
u'o'
Hilfreichster Kommentar
Wurde das Problem behoben?