我正在尝试使用NLTK和Pandas进行一些文本处理。
我有DataFrame列'text'。我想添加列'text_tokenized',它将存储为嵌套列表。
我的文字标记代码是:
def sent_word_tokenize(text):
text = unicode(text, errors='replace')
sents = sent_tokenize(text)
tokens = map(word_tokenize, sents)
return tokens
目前,我正在尝试将此功能应用如下:
df['text_tokenized'] = df.apply(lambda row: sent_word_tokenize(row.text), axis=1)
这给了我错误:
ValueError: Shape of passed values is (100, 3), indices imply (100, 21)
不确定如何修复它以及这里有什么问题。
答案 0 :(得分:2)
使用不同的轴解决了我自己的问题:
而不是:
df['text_tokenized'] = df.apply(lambda row: sent_word_tokenize(row.text), axis=1)
我用过:
df['text_tokenized'] = df.text.apply(lambda text: sent_word_tokenize(text))
虽然我不确定它为什么会起作用,如果有人能向我解释,我真的很感激。