Я хочу рассчитать TF_IDF для набора документов (10). Для этого я использую Python Anaconda.Anaconda: UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0x92 в позиции 1412: недопустимый стартовый байт
import nltk
import string
import os
from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.stem.porter import PorterStemmer
path = '/opt/datacourse/data/parts'
token_dict = {}
stemmer = PorterStemmer()
def stem_tokens(tokens, stemmer):
stemmed = []
for item in tokens:
stemmed.append(stemmer.stem(item))
return stemmed
def tokenize(text):
tokens = nltk.word_tokenize(text)
stems = stem_tokens(tokens, stemmer)
return stems
for subdir, dirs, files in os.walk(path):
for file in files:
file_path = subdir + os.path.sep + file
shakes = open(file_path, 'r')
text = shakes.read()
lowers = text.lower()
no_punctuation = lowers.translate(None, string.punctuation)
token_dict[file] = no_punctuation
tfidf = TfidfVectorizer(tokenizer=tokenize, stop_words='english')
tfs = tfidf.fit_transform(token_dict.values())
Но после печати tfs = tfidf.fit_transform(token_dict.values())
я получаю следующее сообщение об ошибке.
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 1412: invalid start byte
Как исправить эту ошибку?
Попробуйте латинский-1, а не utf8 –
Как изменить код, чтобы попробовать латинский-1? – dave
tfs = tfs.decode ('latin-1') –