Ответ 1
Также в спецификации NLTK множество (под) задач решаются с использованием чисто python methods.
a) преобразование всех букв в нижний или верхний регистр
text='aiUOd'
print text.lower()
>> 'aiuod'
print text.upper()
>> 'AIUOD'
b) удаление пунктуации
text='She? Hm, why not!'
puncts='.?!'
for sym in puncts:
text= text.replace(sym,' ')
print text
>> 'She Hm why not '
c) преобразование чисел в слова
Здесь было бы не то, что wasy написать несколькоliner, но есть много уже существующих решений, если вы google это. фрагменты кода, библиотеки и т.д.
d) удаление меток и других диакритических знаков
искать точку b), просто создайте список с диакритикой как puncts
e) расширение аббревиатур
Создайте словарь с сокращениями:
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']
g) канонизация текста (опухоль = опухоль, это = она)
для использования опухоли → опухоль regex.
Наконец, но не в последнюю очередь, обратите внимание, что все приведенные выше примеры обычно требуют калибровки на реальных текстах, я написал их как направление.