【发布时间】:2016-01-13 09:06:56
【问题描述】:
我正在使用 NLTK 的 PUNKT 句子标记器将文件拆分为句子列表,并希望保留文件中的空行:
from nltk import data
tokenizer = data.load('tokenizers/punkt/english.pickle')
s = "That was a very loud beep.\n\n I don't even know\n if this is working. Mark?\n\n Mark are you there?\n\n\n"
sentences = tokenizer.tokenize(s)
print sentences
我想打印这个:
['That was a very loud beep.\n\n', "I don't even know\n if this is working.", 'Mark?\n\n', 'Mark are you there?\n\n\n']
但实际打印出来的内容显示,第一、三句后面的空行已经被去掉了:
['That was a very loud beep.', "I don't even know\n if this is working.", 'Mark?', 'Mark are you there?\n\n\n']
Other tokenizers 在 NLTK 中有一个 blanklines='keep' 参数,但在 Punkt 标记器的情况下我没有看到任何这样的选项。我很可能错过了一些简单的东西。有没有办法使用 Punkt 句子标记器重新训练这些尾随空行?如果其他人可以提供任何见解,我将不胜感激!
【问题讨论】:
-
无论使用何种 NLTK,您都可以在换行符(多个换行符)上预先分割文本,然后在生成的块上使用 NLTK
-
@VsevolodDyomkin 有趣的想法;在那种情况下,如何处理分布在多行的句子?
-
对于这种情况,它只是不起作用:(
-
您是否特别需要保留换行符,或者您只是对表示段落边界的空行感兴趣? (因为如果是这样,有一个更简单的解决方案)。
-
好吧,因为一首诗可能需要在一个节之后的可变数量的换行符(可能有一个、两个、... n 个换行符),我们希望保留所表示的空格数量在诗中。也就是说,我很想知道你在想什么@alexis...
标签: python nlp newline nltk line-breaks