Предварительная обработка текста для машинного обучения обычно состоит из двух этапов: (I) очистка текста и (II) преобразование текста в число (он же встраивание). Выбор методов для этих двух шагов весьма зависит от задачи, и они связаны друг с другом.
(I) Очистка текста : обычно включает в себя (i) обработку случая текста, (ii) обработка знаков препинания, (iii) обработка стоп-слов
(i) обработка регистра текста : если ваш текст представляет собой корпус английского языка и выбранная техника встраивания предназначена для задачи, связанной с мерой сходства,тогда лучше конвертировать весь текст / корпус в нижний регистр. Однако, если ваши задачи (например, тегирование, машинный перевод и т. Д.) Используют вложение слов в качестве входного представления слов в модели последовательности, тогда может иметь значение регистр текста. Лучше преобразовать текст в нижний регистр перед внедрением для вашей задачи регрессии.
(ii) Обработка знаков препинания !"#$%&\'()*+,-./:;<=>?@[\\]^_
{|} ~ `: если выИспользуйте методы встраивания слов для задач, связанных с подобием, тогда вы можете очистить / исключить знаки препинания с подстановками (например, заменить на '') из вашего текстового корпуса. Вложение слова для этих задач может быть Bag of Words (BoW), Word2Vect и т. Д. Для вашей конкретной задачи здесь (регрессия), тогда хорошо убрать пунктуацию с заменой '' . Для некоторых приложений (например, многоязычный машинный перевод) пунктуация может быть важной.
(iii) обработка стоп-слов : Стоп-слово (например, i, he, ...) - это слово, появившееся с очень высокой частотой в корпусе. Стоп-слова обычно не дают полезной информации для контекста или истинного значения предложения. Общая библиотека NLP, такая как NTK, gensim, spaCy, sklearn, предоставила список стоп-слов для некоторых языков. Для задач, связанных с подобием, лучше удалить стоп-слова перед выполнением встраивания. Удаление стоп-слов применяется для вашей задачи (регрессия). Стоп-слова могут быть полезны и не должны быть удалены перед изучением встраивания в некоторые другие задачи (например, машинные переводы). Лучше удалить стоп-слова для вашей регрессионной задачи
(II) Преобразование текста в число (встраивание): Чтобы иметь возможность вписать текстовые данные в модель машинного обучения(например, ваша модель регрессии), вам нужно преобразовать текстовые данные в векторы числа. Tokenization
требуется перед этим процессом преобразования. В NLP / ML этот процесс преобразования называется embedding
. Существует много различных подходов для встраивания Word в NLP (например, частотный термин (BoW), статистика сопутствующих явлений (GloVe), вероятностная модель (LDA2Vec), нейронные сети (подходы на основе Word2Vec, FastText, BIRD, ...)),У каждой техники есть свои плюсы и минусы. Выбор метода встраивания слов очень зависит от вашего приложения / задачи. Здесь не хватит места, чтобы написать о каждом подходе / методе встраивания слов.
Ниже приведены некоторые онлайн-уроки по работе с текстом, которые могут помочь вам быстро пройти и применить к вашей проблеме:
1) Sklearn - работа с текстовыми данными (https://scikit -learn.org / stable / tutorial / text_analytics / working_with_text_data.html )
2) учебник NLTK (https://www.nltk.org/book/ch01.html)
3) Учебник Spacy - Языковые конвейеры обработки (https://spacy.io/usage/processing-pipelines)
4) Как очистить текст для машинного обучения с помощью Python (https://machinelearningmastery.com/clean-text-machine-learning-python/)