我正在尝试在数据行中找到频率词,其中每一行都由多行字符串组成。
from nltk.tokenize import word_tokenize
from nltk.tokenize import sent_tokenize
tokens = [word for sent in nltk.sent_tokenize(df['file_data'].to_string()) for
word in nltk.word_tokenize(sent)]
在这里,(...)是最常见的单词,但实际上它不在任何行中。 默认情况下,笔记本在多行打印(...)表示连续。 但是,问题是nltk将(...)视为单词并以此结尾。 它跳过字符串中剩余的单词。 请先让我知道我想念的地方。
答案 0 :(得分:2)
在我看来,这并不是to_string()
的预期用途,据我所知,它意在用于控制台友好的输出(尽管我可能错了)。
怎么样:
from nltk.tokenize import word_tokenize
from nltk.tokenize import sent_tokenize
tokens = [word for row in df['file_data'].apply(nltk.sent_tokenize).values for sent in row for
word in nltk.word_tokenize(sent)]
如果您发布一小段我可以检查的数据样本,我不确定这是否会按预期工作。