Также в спецификации NLTK многие (под) задачи решаются с использованием чисто python методов .
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) преобразование чисел в слова
Здесь это будетНе стоит тратить время на то, чтобы написать несколько лайнеров, но есть много уже существующих решений, если вы воспользуетесь им. Фрагменты кода , библиотеки и т. Д.
d) удаление знаков ударения и других диакритических знаков
точка поиска b) , просто создайте список с диакритическими знаками в виде знаков препинания
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) канонизация текста(опухоль = опухоль, это = это так)
для опухоли-> использование опухоли регулярное выражение .
Последнее, но не менее важное, обратите внимание, что всевышеприведенные примеры обычно требуют калибровки на реальных текстах, я написал их как направление движения.