AttributeError при токенизации предложения - PullRequest
0 голосов
/ 26 декабря 2018

Когда я попробовал следующий код:

tok_corp= [nltk.word_tokenize(sent.decode('utf-8')) for sent in corpus] 

я получаю AttributeError:

У объекта 'float' нет атрибута 'decode'

1 Ответ

0 голосов
/ 28 декабря 2018

Прежде чем объединить все в одну строку, попробуйте проверить типы объектов, например,

for sent in corpus:
    print(type(sent), sent)

. Вы должны увидеть, что там что-то есть float.

Далее str.decode('utf8') опасно.Если вы в Python3, то по умолчанию должен использоваться utf8, поэтому нет необходимости, если в Python2, где-то в вашем коде, должен быть open() вместо использования по умолчанию open() в Python2, для конкретной кодировки используйтеio.open(), например

import io

with io.open('somefile.txt', 'r', encoding='utf8') as fin:
    corpus = fin.read().split('\n')

Таким образом, все, считываемое как объект fin, будет по умолчанию иметь тип str / unicode, поэтому `.decode ('utf8') isnне нужно.

...