我如何确定语料库中的哪些文本包含Python中的NLTK套件生成的错误?

问题描述 投票:0回答:1

我正在尝试使用Python进行一些基本的语料库分析。我收到以下错误消息:

追踪(最近通话):文件“”,第2行,在打印(len(poems.words(f)),f)len中的文件“ C:\ Python38-32 \ lib \ site-packages \ nltk \ corpus \ reader \ util.py”,第240行用于self.iterate_from(self._toknum [-1])中的tok:文件“ C:\ Python38-32 \ lib \ site-packages \ nltk \ corpus \ reader \ util.py”,行306,位于iterate_from令牌= self.read_block(self._stream)文件“ C:\ Python38-32 \ lib \ site-packages \ nltk \ corpus \ reader \ plaintext.py”,行134,在_read_word_block中words.extend(self._word_tokenizer.tokenize(stream.readline()))阅读行中的文件“ C:\ Python38-32 \ lib \ site-packages \ nltk \ data.py”,行1220new_chars = self._read(readsize)_read中的文件“ C:\ Python38-32 \ lib \ site-packages \ nltk \ data.py”,行1458字符,bytes_decoded = self._incr_decode(字节)_incr_decode中的文件“ C:\ Python38-32 \ lib \ site-packages \ nltk \ data.py”,行1489返回self.decode(bytes,'strict')解码中的文件“ C:\ Python38-32 \ lib \ encodings \ utf_8.py”,第16行返回codecs.utf_8_decode(input,errors,True)UnicodeDecodeError:“ utf-8”编解码器无法解码位置12的字节0x97:无效的起始字节

我的假设是,我正在查看的202个文本文件之一存在UTF错误。我的问题是,从错误消息中可以分辨出哪个文件或哪些文件有问题吗?

谢谢,

Michael

python error-handling nltk corpus
1个回答
0
投票

假设您知道文件ID(语料库文件的路径),则可以使用encoding="utf-8"打开所有文件ID>

如果您不知道路径,假设您使用的是nltk语料库加载器,则可以使用以下方法获取它们:

poems.fileids()

此后,对于文件列表中的每个文件(例如fileids),您都可以尝试:

for file_ in fileids:
    try:
        with open(file_, encoding="utf-8") a f_i:
            f_i.readlines()
    except:
        print("You got problems with the file: ", file_)

无论如何,加载程序还具有一个名为“ encoding”的参数,可用于对主体进行正确的编码。默认情况下设置为“ utf-8”

此处有更多详细信息:nltk corpus loader

© www.soinside.com 2019 - 2024. All rights reserved.