【问题标题】:Python list and sklearn HashingVectorizerPython 列表和 sklearn HashingVectorizer
【发布时间】:2017-09-11 19:31:49
【问题描述】:

我有一个以下格式的嵌套 python 列表

npes = [['a','b'], ['d','e'],['f','g']]

我需要使用 HashingVectorizer() 对这个列表进行矢量化处理,但是我不明白应该如何使用 vectorizer.fit_transform 处理这个列表

vectorizer = HashingVectorizer()
Xc = vectorizer.fit_transform(npes)

上面给出了以下错误

  AttributeError: 'list' object has no attribute 'lower'

有人知道怎么做吗?

【问题讨论】:

  • 我不知道 sklearn HashingVectorizer,但函数 lower 将字符串开头的大写字母变成小写字母。这意味着您的脚本将npes 的元素解释为strings,但它们又是lists。也许您应该在矢量化之前展平列表?

标签: python scikit-learn


【解决方案1】:

npes 是列表列表,vectorizer 不将列表列表作为参数。所以展平列表并将其作为参数发送,即

npes = [['a','b'], ['d','e'],['f','g']]
vectorizer = HashingVectorizer()
Xc = vectorizer.fit_transform(sum(npes, []))

如果你使用的是 numpy,那么npes = np.ravel(npes)

【讨论】:

    猜你喜欢
    • 2019-10-10
    • 2017-12-21
    • 2019-05-15
    • 2014-10-09
    • 1970-01-01
    • 2018-03-20
    • 2017-12-14
    • 2020-05-31
    • 2016-04-08
    相关资源
    最近更新 更多