gpt4 book ai didi

python - Anaconda:UnicodeDecodeError: 'utf8'编解码器无法解码位置1412中的字节0x92:无效的起始字节

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:22 25 4
gpt4 key购买 nike

我想计算一组文档 (10) 的 TF_IDF。我为此使用 Python Anaconda。

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

如何修复此错误?

最佳答案

我使用相同的引用进行数据预处理并得到了完全相同的错误。这些是我采取的几个步骤,并在 Ubuntu 14.04 机器上的 Pyhton 2.7 上获得了完美工作的代码,

1) 使用“codecs”打开文件并将“encoding”参数设置为ISO-8859-1。下面是具体操作方法

import codecs
with codecs.open(pathToYourFileWithFileName,"r",encoding = "ISO-8859-1") as file_handle:

2)当您执行第一步时,您在使用时遇到了第二个问题

no_punctuation = lowers.translate(None, string.punctuation)

这里有解释string.translate() with unicode data in python

解决方案如下

lowers = text.lower()
remove_punctuation_map = dict((ord(char), None) for char in string.punctuation)
no_punctuation = lowers.translate(remove_punctuation_map)

希望对您有所帮助。

关于python - Anaconda:UnicodeDecodeError: 'utf8'编解码器无法解码位置1412中的字节0x92:无效的起始字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33538882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com