同样在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