gpt4 book ai didi

python - SVM - 将字符串传递给 Python 中的 CountVectorizer 向量化每个字符?

转载 作者:行者123 更新时间:2023-11-30 09:11:42 33 4
gpt4 key购买 nike

我有一个正在运行的 SVM,并且当 transform 函数的输入是字符串列表时,CountVectorizer 可以正常工作。但是,如果我只向其传递一个字符串,矢量化器会迭代字符串中的每个字符并对每个字符进行矢量化,即使我在构造时将 analyzer 参数设置为 word CountVectorizer

for x in range(0,3):
test=raw_input("Type a message to classify: ")
v=vectorizer.transform(test).toarray()
print(v)
print(len(v))
print(svm.predict(vectorizer.transform(test).toarray()))

我可以通过将上述代码中的第二行更改为:

来解决此问题
test=[raw_input("Type a message to classify: ")]

但是只有 1 项的列表似乎很奇怪。有没有更好的方法可以在不构建列表的情况下做到这一点?

最佳答案

它需要一个文档列表或数组,因此当您传入单个字符串时,它假定该字符串的每个元素都是一个文档(即:一个字符)。

尝试更改svm.predict(vectorizer.transform(test).toarray())svm.predict(vectorizer.transform([test]).toarray())

PS:toarray()当您使用现实世界的语料库时,该部分将无法很好地扩展。 sklearn 中的 SVM 可以在稀疏矩阵上运行,所以我会放弃这一部分。

关于python - SVM - 将字符串传递给 Python 中的 CountVectorizer 向量化每个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820009/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com