UnicodeDecodeError: код «ascii» c не может декодировать байт 0xc3 в позиции 11: порядковый номер не в диапазоне (128) - PullRequest
0 голосов
/ 21 марта 2020

Используя библиотеку nltk, мне нужно увидеть, какая из них самая длинная, а какая - самая короткая фраза корпуса. Я думаю, что алгоритм, который я использовал, является функциональным:

# -*- coding: utf-8 -*-

import sys
import codecs
import nltk

def findLongestShortest(x):
longestPhrase = ""
shortestPhrase = ""
tmpmin = 99999
tmpmax = 0
for element in x:
    if len(element) < tmpmin:
        tmpmin = len(element)
        shortestFrase = element
    if len(element) > tmpmax:
        tmpmax = len(element)
        longestPhrase = element
return longestPhrase, shortestFrase

fileName = sys.argv[1]
    fileInput = codecs.open(fileName, "r", "utf-8")
    fileString = fileInput.read()
    phrasesList = sent_tokenizer.tokenize(fileString)
    longest, shortest = findLongestShortest(phrasesList)

Хотя, вывод:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 11: ordinal not in range(128)

Я понятия не имею, что это значит и как его решить. Я знаю, что мой входной файл представляет собой обычный текст UTF-8. Любые идеи?

...