2017-03-04 43 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())。