Преобразование генератора в список, но с ошибкой: объект «_io.TextIOWrapper» не имеет атрибута «декодировать» (python 3.6.4) - PullRequest
0 голосов
/ 03 июня 2018

Я работаю с текстом в utf-8 .Я хочу токенизировать его, а затем преобразовать в список.Однако я получаю следующую ошибку.

import nltk, jieba, re, os

with open('file.txt') as f:
    tokenized_text = jieba.cut(f,cut_all=True)

type(tokenized_text)
generator

word_list = list(tokenized_text)
---------------------------------------------------------------------------
 AttributeError                            Traceback (most recent call last)
<ipython-input-5-16b25477c71d> in <module>()
----> 1 list(new)

~/anaconda3/lib/python3.6/site-packages/jieba/__init__.py in cut(self, sentence, cut_all, HMM)
280             - HMM: Whether to use the Hidden Markov Model.
281         '''
--> 282         sentence = strdecode(sentence)
283 
284         if cut_all:

~/anaconda3/lib/python3.6/site-packages/jieba/_compat.py in strdecode(sentence)
 35     if not isinstance(sentence, text_type):
 36         try:
---> 37             sentence = sentence.decode('utf-8')
 38         except UnicodeDecodeError:
 39             sentence = sentence.decode('gbk', 'ignore')

AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'

Я понимаю, что проблема лежит где-то в пакете jieba.Я также пытался изменить код на

with open('file.txt') as f:
new = jieba.cut(f,cut_all=False)

, но получил тот же результат.

1 Ответ

0 голосов
/ 03 июня 2018

jieba.cut принимает строку, а не файл.Это объясняется в readme .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...