Python错误:TypeError:应为类似字符串或字节的对象

Python错误:TypeError:应为类似字符串或字节的对象,python,nltk,typeerror,sentiment-analysis,nltokenizer,Python,Nltk,Typeerror,Sentiment Analysis,Nltokenizer,我目前正在使用python中的nltk进行情绪分析项目。我无法让脚本从csv中传入行文本以执行标记化。但是,如果我一次只通过一个条目传递文本,它就可以正常工作。当我尝试传递整个csv时,我得到了一个持久性错误:“TypeError:expected string或bytes like object”。 这是我正在使用的打印数据框和python代码。解决这个问题的任何帮助都将是巨大的 abstract 0 Allergic dise

我目前正在使用python中的nltk进行情绪分析项目。我无法让脚本从csv中传入行文本以执行标记化。但是,如果我一次只通过一个条目传递文本,它就可以正常工作。当我尝试传递整个csv时,我得到了一个持久性错误:“TypeError:expected string或bytes like object”。 这是我正在使用的打印数据框和python代码。解决这个问题的任何帮助都将是巨大的

                              abstract
0    Allergic diseases are often triggered by envir...
1    omal lymphopoietin (TSLP) has important roles ...
2    of atrial premature beats, and a TSLP was high...
3     deposition may play an important role in the ...
4    ted by TsPLP was higher than that mediated by ...
5    nal Stat5 transcription factor in that TSLP st...
附加的是完整堆栈跟踪错误。 编辑:打印语句

编辑:输出


tokens=[nltk.word\u tokenize(line)表示x中的行]

给出一个使用
nltk.word\u tokenize
的示例,您可能会注意到“句子”是
字符串

在您的情况下,
x
是一个数据帧
系列
(字符串),在将其传递给
nltk.word\u tokenize
之前,需要将其重建为字符串

处理这个问题的一种方法是从
x
创建
nltk
的“句子”:

x = data.loc[:, 'abstract']
sentence=' '.join(x)
tokens = nltk.word_tokenize(sentence)
编辑: 根据进一步的注释尝试此操作(请记住,这将是一系列相应访问的令牌):


哪一行给出了该错误?请使用完整的回溯消息更新您的问题。
tokens=nltk。word\u tokenize(x)
是错误的原因。这里x是一个df。您必须在
nltk.word\u tokenize()
函数中传递
String
。有一件事你可以做,你可以在x上迭代并在
nltk.word\u tokenize()
@0buz()中传递字符串的每一行。对不起,应该澄清这一行:tokens=nltk.word\u tokenize(x)@quamrana我已经更新了这个问题,并提供了指向完整堆栈跟踪错误的链接,谢谢这项工作!所以输入的文本是csv格式的,所以每个单元格一位文本,那么我如何确保输出的文本是按单元格打印的,而不仅仅是一块文本?我不明白。如果您编写了预期的输出,我可以看一看。csv文件中有多个条目,您建议的脚本将它们标记化,但是输出将打印为一块没有分隔符的文本。如果我能让csv中的每一个文本单元格都像这样返回,那将是非常有帮助的:“过敏”、“疾病”、“是”、“经常”、“触发”、“由”、“环境”、“过敏原”、“那”、“诱导”、“显性”、“类型”、“2”、“免疫”、“反应”、“特征”、“被”、“渗透”、“T辅助”、“类型”、“2”、“2”(“TH2”、“TH2”)“,”淋巴细胞“,”,”嗜酸性粒细胞“]然后是下一个条目,依此类推,并有明确的分隔。你可以按照@0buz的答案。将这些行连接到一个大文本中,然后标记我认为我建议的解决方案必须返回每个单元格内容,并进行分隔。例如,
[[第一个单元格标记],[第二个单元格标记],[第三信元令牌][…],,,,]
那么,您希望每个抽象单元格都有一组标记吗?在标记化后,是否有必要将其重新构造为一系列字符串?谢谢,那太完美了!请查看我的编辑并让我知道它是如何运行的。刚刚尝试了编辑,但奇怪的是,它只在文本的一半部分工作。对这些单元格的表型分析显示表明它们处于前B细胞分化阶段,并表达在IL-7中培养的前B细胞的细胞表面标记物。TSLP可以取代IL-7的活性,支持B淋巴细胞从非承诺性双电位前体的进展。在缺乏TSLP或IL-7的情况下,产生mat的细胞后代ure B淋巴细胞不能从这些双电位前体发育而来。[到,检查,作用,γ,c,in,]。。。
x = data.loc[:, 'abstract']
sentence=' '.join(x)
tokens = nltk.word_tokenize(sentence)
tokens=x.apply(lambda sentence: nltk.word_tokenize(sentence))