nltk 모듈을 사용하여 문장의 극성을 감지하기위한 사용자 정의 자료를 만들었습니다.NLTK에서 사용자 정의 만든 코퍼스를 읽는 동안 UnicodeDecodeError
극성
여기
---- polar_tweets.txt
--nonpolar
---- nonpolar_tweets.txt
그리고 어떻게 --polar입니다 다음은 신체의 계층 구조입니다 내 소스 코드에서 그 시체를 가져 오기 오전 :
polarity = LazyCorpusLoader('polar', CategorizedPlaintextCorpusReader, r'(?!\.).*\.txt', cat_pattern=r'(polar|nonpolar)/.*', encoding='utf-8')
corpus = polarity
print(corpus.words(fileids=['nonpolar/non-polar.txt']))
하지만 다음과 같은 오류 제기
01 파일polar_tweets.txt
및
nonpolar_tweets.txt
를 만드는 동안 23,516,
Traceback (most recent call last):
File "E:/Analytics Practice/Social Media Analytics/analyticsPlatform/DataAnalysis/SentimentAnalysis/data/training_testing_data.py", line 9, in <module>
print(corpus.words(fileids=['nonpolar/nonpolar_tweets.txt']))
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\util.py", line 765, in __repr__
for elt in self:
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\corpus\reader\util.py", line 291, in iterate_from
tokens = self.read_block(self._stream)
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\corpus\reader\plaintext.py", line 122, in _read_word_block
words.extend(self._word_tokenizer.tokenize(stream.readline()))
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\data.py", line 1135, in readline
new_chars = self._read(readsize)
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\data.py", line 1367, in _read
chars, bytes_decoded = self._incr_decode(bytes)
File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\data.py", line 1398, in _incr_decode
return self.decode(bytes, 'strict')
File "C:\Users\prabhjot.rai\AppData\Local\Continuum\Anaconda3\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 269: invalid continuation byte
, 나는 파일을 utf-8
-uncleaned_polar_tweets.txt
를 디코딩 한 다음 파일 polar_tweets.txt
로 쓰고 있어요.
with open(path_to_file, "rb") as file:
output_corpus = clean_text(file.read().decode('utf-8'))['cleaned_corpus']
output_file = open(output_path, "w")
output_file.write(output_corpus)
output_file.close()
output_file이이 polar_tweets.txt
및 nonpolar_tweets.txt
입니다 : 여기에 대한 코드입니다. 어디서 오류가 있습니까? 내가 처음 utf-8
에서 인코딩, 나는 encoding='latin-1'
하여 encoding='utf-8'
를 교체 할 경우, 행
polarity = LazyCorpusLoader('polar', CategorizedPlaintextCorpusReader, r'(?!\.).*\.txt', cat_pattern=r'(polar|nonpolar)/.*', encoding='utf-8')
에 의해 utf-8
도 읽고 있습니다 때문에, 코드가 완벽하게 작동합니다. 문제는 어디에 있습니까? 코퍼스를 생성하는 중에도 utf-8
에서 디코딩해야합니까?
용어가 해제되어 있습니다. 독서를 할 때, 당신은 * 무언가를 해독합니다. 이 오류는 코퍼스 (또는 일부)가 유효한 UTF-8이 아님을 나타냅니다. 기분 나쁜 데이터에 대한 액세스가 없으면 추측 할 수만 있습니다. 'LC_ALL = C grep -m 1 $ '\ xC2'nonpolar_tweets.txt'는 무엇을 생산합니까? (아마도'xxd' 또는 정확하게 바이트를보기 위해 파이프로). – tripleee
... 또는 파이썬에 상응하는 - 불쾌한 라인을 읽고, 그 다음에'repr()'을 확인하십시오 – tripleee