在保留换行符和段落结构的同时进行标记

时间:2017-03-04 18:38:13

标签: python python-3.x nltk tokenize

假设我有一篇我想要学习的文章。句子和段落的数量很重要,因为它们是(点触发句子结尾,新行触发新段落的开始)。假设我需要先对我的文字进行标记:

>>> from nltk import word_tokenize as tokenize
>>> tokenize('How\'s life? Aren\'t you feeling good\n bro?')
['How', "'s", 'life', '?', 'Are', "n't", 'you', 'feeling', 'good', 'bro', '?']

如您所见,输出是一个忽略除单词之外的任何信息的列表。我可以尝试做类似的事情:

>>> s = ['How', "'s", 'life', '?', 'Are', "n't", 'you', 'feeling', 'good', 'bro', '?']
>>> " ".join(s)
"How 's life ? Are n't you feeling good bro ?"

但这还不够,因为段落结构已经丢失了。使用NLTK的标记器有一种简单的方法吗?我宁愿不使用不同的库作为第一个解决方案。

1 个答案:

答案 0 :(得分:1)

您可能想要更改 tokenizers 。 nltk中包含几个不同的。如果你想保留换行符的重要性,那么可以尝试一种面向行的标记化器,或者考虑自己在换行符上拆分字符串并一次一个地输入部分。这应该使您能够以某种方式将换行符重新混合到您的数据中。 (例如,您可能只是跟踪每个换行符处的标记化输出的len()。)