В данном документе демонстрируется принцип работы утилит для обработки текста,
которыми обрабатываются текста перед их дальнейшим использованием в построении моделей машинного обучения.
Вся предобратка текста полученных утилит собрана в одной функции preprocess_text: принимает на вход строку (может содержать несколько слов, разделенных пробелом) и возращает обработанный вариант этой же строки.
from textPreprocessing import preprocess_text
preprocess_text('Дети бежали скорее со ШКОЛЫ в 6 вечера.')
ребёнок бежать скорее с школа в вечер
Эта утилита включает в себе обработку следующих функций:
Лемматизация слова (приведение его к начальной форме).
Для лемматизации русских слов есть два основных инструмента: Pymorphy2 и MyStem. В данной статье сравнили качество и скорость их работы — Pymorphy2 выиграл по показателям скорости работы и времени. Поэтому используем его.
from text_utils import lemmatize_word
words = ['бежала', 'пятого', 'любимая', 'дети']
for not_initial_form_word in words:
print(not_initial_form_word, '===>', lemmatize_word(not_initial_form_word))
бежала ===> бежать
пятого ===> пятый
любимая ===> любимый
дети ===> ребёнок
from text_utils import remove_punctuation
remove_punctuation('string.!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ With. Punctuation?')
string With Punctuation
from text_utils import remove_numbers
remove_numbers('Дети бежали скорее со школы в 6 вечера')
Дети бежали скорее со школы в вечера
from text_utils import remove_redundant_whitespace_chars
remove_redundant_whitespace_chars(' Тут сейчас 2 места с лишними \n пробелами\n')
Тут сейчас 2 места с лишними пробелами