同樣在NLTK規範中,很多(子)任務都是使用純粹的python methods解決的。
a)將除去標點符號
text='She? Hm, why not!'
puncts='.?!'
for sym in puncts:
text= text.replace(sym,' ')
print text
>> 'She Hm why not '
Ç數字轉換成字
這裏所有字母到小寫或大寫
text='aiUOd'
print text.lower()
>> 'aiuod'
print text.upper()
>> 'AIUOD'
b))的,寫一篇文章可不是那麼簡單少數客戶,但是現在有很多已經存在的解決方案,如果你google的話。Code snippets,libraries等
d)去除重音符號和其他變音符號
查找點B),剛剛創建變音符號列表作爲puncts
五)擴大縮寫
創建縮寫詞典:
text='USA and GB are ...'
abbrevs={'USA':'United States','GB':'Great Britain'}
for abbrev in abbrevs:
text= text.replace(abbrev,abbrevs[abbrev])
print text
>> 'United States and Great Britain are ...'
f)移除停止詞或 「太常見的」 字
創建停用詞列表:
text='Mary had a little lamb'
temp_corpus=text.split(' ')
stops=['a','the','had']
corpus=[token for token in temp_corpus if token not in stops]
print corpus
>> ['Mary', 'little', 'lamb']
克)文本規範化(腫瘤=腫瘤,它是=它是)
用於腫瘤 - >腫瘤使用regex。
最後但並非最不重要的,請注意,上述所有示例通常都需要在真實的textes上進行校準,我將它們作爲發展的方向。
由於我認爲NLP工具包,它應該能夠執行所有可能涉及一些語言數據的處理操作。這意味着我認爲我仍然認爲nltk已經有了相同字詞的詞典,縮寫字典,規範化字典,轉換爲文本數字,**日期**,溫度,**貨幣等等......也許我們只是不太瞭解? – soshial 2012-02-13 16:41:16
我相信你不能只用'.lower()'和'.upper()'來解決一般情況下的casemapping。考慮土耳其語'I' ='ı','İ'='i';德語'ß'='SS';希臘語'Σ'='ς'和'σ'。 – hippietrail 2013-05-12 08:38:17
解析縮寫是有風險的。你怎麼知道'美國'代表'美國'? '你和我:美國!' - >'你和我:美國!' – 2015-10-09 17:37:58