【问题标题】:UnicodeDecodeError unexpected end of data while stemming over datasetUnicodeDecodeError 在数据集上提取时数据意外结束
【发布时间】:2015-07-28 18:40:15
【问题描述】:

我是 python 新手,我正在尝试开发一小部分 Yelp! JSON 格式的数据集,但我使用 pandas 库和 NLTK 转换为 CSV。

在对数据进行预处理时,我首先尝试删除所有标点符号以及最常见的停用词。之后,我想应用 nltk.stem 中现成的 Porter Stemming 算法。

这是我的代码:

"""A method for removing the noise in the data and the most common stop.words (NLTK)."""
def stopWords(review):

    stopset = set(stopwords.words("english"))
    review = review.lower()
    review = review.replace(".","")
    review = review.replace("-"," ")
    review = review.replace(")","")
    review = review.replace("(","")
    review = review.replace("i'm"," ")
    review = review.replace("!","")
    review = re.sub("[$!@#*;:<+>~-]", '', review)
    row = review.split()

    tokens = ' '.join([word for word in row if word not in stopset])
    return tokens

我在这里使用标记来输入我写的词干提取方法:

"""A method for stemming the words to their roots using Porter Algorithm (NLTK)"""
def stemWords(impWords):
    stemmer = stem.PorterStemmer()
    tok = stopWords(impWords)
    ========================================================================
    stemmed = " ".join([stemmer.stem(str(word)) for word in tok.split(" ")])
    ========================================================================
    return stemmed

但我收到一个错误UnicodeDecodeError: 'utf8' codec can't decode byte 0xc2 in position 0: unexpected end of data。 '==' 内的行给了我错误。

我已尝试清理数据并删除所有特殊字符 !@#$^&* 和其他字符以使其正常工作。但是停用词工作正常。词干不工作。谁能告诉我哪里做错了?

如果我的数据不干净,或者 unicode 字符串在某处中断,我有什么方法可以清理它或修复它以使其不会给我这个错误?我想做词干,任何建议都会有所帮助。

【问题讨论】:

    标签: python unicode pandas nltk stemming


    【解决方案1】:

    阅读 python 中的 unicode 字符串处理。有str 类型,但也有unicode 类型。

    我建议:

    1. 读取后立即解码每一行,以缩小输入数据中的错误字符(真实数据包含错误)

    2. 在任何地方都可以使用 unicodeu" " 字符串。

    【讨论】:

      【解决方案2】:

      有一种简单的方法可以过滤掉这些烦人的错误。您可以使用

      对每条评论进行预处理
      review = review.encode('ascii', errors='ignore')
      

      删除所有无效字符。根据您的代码,ascii 字符是您想要的。

      【讨论】:

        猜你喜欢
        • 2013-08-23
        • 1970-01-01
        • 1970-01-01
        • 2014-05-13
        • 2019-04-04
        • 2019-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多