python笔记本中的Nltk Word令牌生成器

时间:2018-12-18 19:02:12

标签: python jupyter-notebook nltk google-colaboratory

我正在尝试在数据行中找到频率词,其中每一行都由多行字符串组成。

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)]

Most common word

在这里,(...)是最常见的单词,但实际上它不在任何行中。 默认情况下,笔记本在多行打印(...)表示连续。 但是,问题是nltk将(...)视为单词并以此结尾。 它跳过字符串中剩余的单词。 请先让我知道我想念的地方。

1 个答案:

答案 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)]

如果您发布一小段我可以检查的数据样本,我不确定这是否会按预期工作。