【问题标题】:AttributeError: 'list' object has no attribute 'lower' in jupyter notebookAttributeError:'list' 对象在 jupyter notebook 中没有属性'lower'
【发布时间】:2021-12-30 08:05:27
【问题描述】:

我正在使用朴素贝叶斯和 SVM 进行文本分类。我的数据集来自提取的关于 COVID 的常见问题解答

我正在尝试将所有文​​本更改为小写。这是必需的,因为 python 对 'dog' 和 'DOG' 的解释不同: Corpus['Question'] = [entry.lower() for entry in Corpus['Question']]

我收到以下错误:

AttributeError Traceback(最近一次调用最后一次) 在 6 7 # Step - b : 将所有文本改为小写。这是必需的,因为 python 对“狗”和“狗”的解释不同 ----> 8 Corpus['Question'] = [entry.lower() for entry in Corpus['Question']] 9 10 # Step - c : Tokenization : 在这个语料库中的每个条目都将被分解成一组单词

在 (.0) 6 7 # Step - b : 将所有文本改为小写。这是必需的,因为 python 对“狗”和“狗”的解释不同 ----> 8 Corpus['Question'] = [entry.lower() for entry in Corpus['Question']] 9 10 # Step - c : Tokenization : 在这个语料库中的每个条目都将被分解成一组单词

AttributeError: 'list' 对象没有属性 'lower'

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: jupyter-notebook tokenize text-classification stemming lemmatization


【解决方案1】:

错误消息告诉您,您正在将函数lower() 应用于列表,但实际上它只能应用于字符串。

您显示的代码不完整,所以我只能猜测。假设 Corpus['Question'] 是一个 tokenized 句子的列表,即它是 一个字符串列表的列表,以下应该可以工作:

Corpus['Question'] = [[word.lower() for word in question] for question in Corpus['Question']]

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2020-08-21
    • 2019-01-01
    • 2019-11-06
    • 1970-01-01
    相关资源
    最近更新 更多