J'écris un code pour arrêter un tweet, mais j'ai des problèmes avec l'encodage. Quand j'ai essayé d'appliquer le stemmer de porteur il montre l'erreur. Peut-être je ne peux pas tokenize correctement.UnicodeDecodeError: le codec 'utf8' ne peut pas décoder l'octet 0xc3 en position 0: fin inattendue des données
Mon code est le suivant ...
import sys
import pandas as pd
import nltk
import scipy as sp
from nltk.classify import NaiveBayesClassifier
from nltk.stem import PorterStemmer
reload(sys)
sys.setdefaultencoding('utf8')
stemmer=nltk.stem.PorterStemmer()
p_test = pd.read_csv('TestSA.csv')
train = pd.read_csv('TrainSA.csv')
def word_feats(words):
return dict([(word, True) for word in words])
for i in range(len(train)-1):
t = []
#train.SentimentText[i] = " ".join(t)
for word in nltk.word_tokenize(train.SentimentText[i]):
t.append(stemmer.stem(word))
train.SentimentText[i] = ' '.join(t)
Lorsque je tente de l'exécuter renvoie l'erreur:
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-10-5aa856d0307f> in <module>()
23 #train.SentimentText[i] = " ".join(t)
24 for word in nltk.word_tokenize(train.SentimentText[i]):
---> 25 t.append(stemmer.stem(word))
26 train.SentimentText[i] = ' '.join(t)
27
/usr/lib/python2.7/site-packages/nltk/stem/porter.pyc in stem(self, word)
631 def stem(self, word):
632 stem = self.stem_word(word.lower(), 0, len(word) - 1)
--> 633 return self._adjust_case(word, stem)
634
635 ## --NLTK--
/usr/lib/python2.7/site-packages/nltk/stem/porter.pyc in _adjust_case(self, word, stem)
602 for x in range(len(stem)):
603 if lower[x] == stem[x]:
--> 604 ret += word[x]
605 else:
606 ret += stem[x]
/usr/lib64/python2.7/encodings/utf_8.pyc in decode(input, errors)
14
15 def decode(input, errors='strict'):
---> 16 return codecs.utf_8_decode(input, errors, True)
17
18 class IncrementalEncoder(codecs.IncrementalEncoder):
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 0: unexpected end of data
quelqu'un a la moindre idée, wat ne va pas avec mon code .Je suis coincé avec cette erreur. Toutes les suggestions ..?
Utiliser 'python3', voir https://www.youtube.com/watch?v=sgHbC6udIqc – alvas
Copie possible de [UnicodeDecodeError: le codec 'utf8' ne peut pas décoder l'octet 0x9c] (http://stackoverflow.com/questions/12468179/unicodedecodeerror-utf8-codec-cant-décode-byte-0x9c) – alvas
Connexe: http://stackoverflow.com/questions/19699367/unicodedecodeerror-utf-8-codec-cant-decode-byte et http: //stackoverflow.com/questions/12468179/unicodedecodeerror-utf8-codec-cant-decode-byte-0x9c – alvas