2017-03-04 42 views
0

假设我有一个我想学习的文本。句子和段落的数量很重要,因为它们是保留的(点触发句子结束,换行触发新段落开始)。比方说,我需要先记号化我的文字:在保留换行符和段落结构的同时保留标记

>>> 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的标记器来做到这一点?我宁愿不诉诸不同的图书馆作为第一个解决方案。

回答

0

您可能要更改标记化合物。 nltk包含几种不同的版本。如果你想保留换行符的意义,那么可以尝试一个面向行的标记符,或者考虑自己在换行符上分割字符串,然后逐个提供一个部分。这应该使您能够以某种方式将新行混合回您的数据。 (例如,您可能只需跟踪每个换行符的标记化输出的len())。