2017-03-27 59 views
0

我得到如下的輸入字符串。當我使用nltk.word_tokenize時,它給了我一個單詞'gotta'到'got'和'ta'的分割。我不希望發生這種情況,我想將它標記爲單個標記「必須」自己。我不確定它爲什麼會發生。避免這種情況的任何幫助或建議,爲什麼會發生這種情況?測試代碼如下。不希望NLTK單詞標記化將單個單詞'gotta'標記爲'got'和'ta'

test = "Sorry times up I gotta split" 
output = nltk.word_tokenize(test) 
print output 
In [22]: ['Sorry', 'times', 'up', 'I', 'got', 'ta', 'split'] 

在我正在處理的程序中,經過預處理後,我的單詞對索引將它們視爲單個單詞。但是,當標記整個句子時,情況就不同了。因此後來面臨錯誤。

回答

1

嘗試預處理gotta - >got-ta

>>> from nltk import word_tokenize 
>>> sent = "Sorry times up I gotta split" 
>>> word_tokenize(sent) 
['Sorry', 'times', 'up', 'I', 'got', 'ta', 'split'] 
>>> sent = "Sorry times up I got-ta split" 
>>> word_tokenize(sent) 
['Sorry', 'times', 'up', 'I', 'got-ta', 'split'] 

此外,您還可以使用其他斷詞,例如toktok:

>>> from nltk.tokenize.toktok import ToktokTokenizer 
>>> toktok = ToktokTokenizer() 
>>> sent = "Sorry times up I gotta split" 
>>> toktok.tokenize(sent) 
[u'Sorry', u'times', u'up', u'I', u'gotta', u'split'] 

或摩西:

>>> from nltk.tokenize.moses import MosesTokenizer 
>>> moses = MosesTokenizer() 
>>> moses.tokenize(sent) 
[u'Sorry', u'times', u'up', u'I', u'gotta', u'split'] 
+0

其他斷詞是美妙的。謝謝。 –

相關問題