1 回答

TA贡献1799条经验 获得超6个赞
让我们假设这个 dataframe
data = pd.DataFrame({'text':['some thing', 'word', 'some more text']})
然后当你运行你的脚本时,你应该得到一个错误,因为你传递的是一个系列而不是一个字符串......
text = data.loc[:, "text"]
tokenizer = word_tokenize(text)
print(tokenizer)
类型错误:预期的字符串或类似字节的对象
word_tokenize 将接受字符串,这就是为什么word_tokenize('some text')会起作用。所以你需要遍历你的系列:
text = data.loc[:, "text"]
tokenizer = [word_tokenize(text[i]) for i in range(len(text))]
print(tokenizer)
[['some', 'thing'], ['word'], ['some', 'more', 'text']]
如果您仍然遇到类型错误,那么很可能不是每个值data['text']都是字符串。现在让我们假设这个数据框:
data = pd.DataFrame({'text':['some thing', 'word', 'some more text', 1]})
这个数据帧进行列表解析会无法正常工作,因为你正在试图通过一个int在word_tokenize
但是,如果您将所有内容更改为字符串,它应该可以工作:
data = pd.DataFrame({'text':['some thing', 'word', 'some more text', 1]})
data['text'] = data['text'].astype(str)
text = data.loc[:, "text"]
tokenizer = [word_tokenize(text[i]) for i in range(len(text))]
print(tokenizer)
[['some', 'thing'], ['word'], ['some', 'more', 'text'], ['1']]
你检查你的类型 print([type(text[i]) for i in range(len(text))])
添加回答
举报