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

the*_*der 13 python string iterator

我正在尝试构建一个朴素的贝叶斯分类器,如此链接中所述. 参考这条线

X_new_tfidf = tfidf_transformer.transform(X_new_counts)
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

我该如何解决这个错误?我也提到了这个答案,其中人说这s是一个可迭代的,因为它被分配了一个字符串.我也碰到这个环节,其中一个TypeError: 'String' object is not iterable遇到.我在这里错过了什么吗?这些联系似乎相互矛盾.

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

the*_*der 26

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

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

input=[input]
Run Code Online (Sandbox Code Playgroud)

之前

X_new_counts = count_vect.transform(input.plot_movie)
Run Code Online (Sandbox Code Playgroud)