在期望的原始文本文件中迭代,收到字符串对象

时间:2018-04-12 22:30:58

标签: python string iterator

我正在尝试构建this link.中提到的朴素贝叶斯分类器 参考该行

X_new_tfidf = tfidf_transformer.transform(X_new_counts)

Training the Classifier小标题下,我的代码中有一条类似的行X_new_counts = count_vect.transform(input.plot_movie),它应该将迭代作为转换函数的输入。 input是来自DataFrame的记录,类型为pd.Series,并包含以下条目,我发送input.plot_movie作为转换函数的输入:

enter image description here

但是,我收到以下错误:Iterable over raw text documents expected, string object received

如何修复此错误?我还提到this回答,其中该人说s是可迭代的,因为它被分配了一个字符串。我还遇到this link遇到TypeError: 'String' object is not iterable的地方。我在这里错过了什么吗?这些链接似乎相互矛盾。

修改 我刚刚意识到input.plot_movie的类型是unicode,并决定将其转换为字符串。我再次遇到同样的错误。

2 个答案:

答案 0 :(得分:13)

这个问题的解决方案是因为input只是一个String,但是需要的是一个包含单个元素的列表(或者一个可迭代的)(它本身就是String本身)。

可以通过添加以下行来删除错误:

input=[input]

之前

X_new_counts = count_vect.transform(input.plot_movie)

答案 1 :(得分:0)

输入应该在方括号中。

input = ["input"]

cv = CountVectorizer()

cv.fit(input)