Есть ли правильные шаги в предварительной обработке текста для линейной регрессии? - PullRequest
1 голос
/ 08 ноября 2019

Я объединил два разных набора данных, так что в одном столбце есть текст, а в другом столбце - оценка настроения (двоичный 0, 1)

Я пытаюсь создать модель линейной регрессии, которая предсказывает настроение на основеслова, используемые в тексте, поэтому для предварительной обработки текста я изменил текст на строчные для всех текстов.

Мне интересно, каким будет следующий шаг после этого? Я немного прочитал, но думаю, что у меня могут не быть шагов в правильном порядке.

1. lowercase                         1. lowercase
2. remove punctuation               2. tokenize
3.tokenize                          3. remove punctuation

, какой путь более правильный, если я сначала уберу пунктуацию, я могу потерять такие детали, какнет и не могу.

1 Ответ

0 голосов
/ 08 ноября 2019

Предварительная обработка текста для машинного обучения обычно состоит из двух этапов: (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/)

...