[Это часть 100 Days of ML]

Алгоритму машинного обучения нужны данные в числовой форме, но данные обычно имеют смешанные функции, такие как числовые, текстовые, категориальные, порядковые. Вот почему нам нужно сначала обработать текст, прежде чем подавать его в модели машинного обучения. В этом посте я взял набор данных с kaggle, набор данных содержит текст и другие функции блогов с blogger.com. Проверьте набор данных:

Датасет: https://www.kaggle.com/rtatman/blog-authorship-corpus

Код можно найти в конце этого поста. Вот как выглядят данные:

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

  1. Нижний регистр – замените все слова строчными или прописными буквами, чтобы избежать дублирования. Потому что «Python» и «python» будут считаться двумя отдельными словами, если этот шаг не будет выполнен. Данные после нижнего регистра:

2. Удалить знаки препинания —Пунктуация – это такие символы, как ‘?’ , ‘,’ , ‘!’ и т. д., которые обеспечивают удобочитаемость и понятность английского языка. Однако они нам здесь не нужны, поэтому убираем их. Мы удалим все остальные символы и оставим только слова и пробелы. Этот шаг следует выполнить после извлечения функций, таких как хэштеги, пользовательские теги, подробности см. здесь.

3. Удалите стоп-слова— слова «the», «a», «in» и т. д. — это стоп-слова, которые не имеют существенного значения, которое мы можем извлечь из текста. Это также наиболее часто встречающиеся слова в тексте, и если их не обработать, они могут создать нерелевантную основу для наших моделей машинного обучения. Следовательно, лучше удалить их. Текст после стоп-слова отфильтрован:

4. Удалите часто встречающиеся слова.Помимо стоп-слов, в тексте также присутствуют некоторые другие слова, которые встречаются чаще других.

Интуиция здесь такова, что если некоторые слова встречаются во всех экземплярах текста, то они не способствуют нашей задаче классификации (если это то, что вы делаете). Если одно и то же присутствует во всех экземплярах, то его нельзя использовать для дифференциации между классами. Часто встречающееся слово можно увидеть слева.

Чтобы удалить эти слова, сначала мы возьмем весь текст и разделим его на слова, а затем рассчитаем их частоту. Затем мы можем выбрать, сколько слов мы хотим удалить, и отфильтровать их.

5. Удалить редко встречающиеся слова. Редко встречающиеся слова — это слова, которые встречаются всего несколько раз во всем наборе данных. Если мы вычисляем пакет слов или функции TF-IDF из текста для обучения модели, эти слова только сделают наш набор данных разреженным и замедлят производительность моделей. Так что отфильтруйте и эти слова. Вот краткий обзор некоторых слов, которые встречаются только один раз во всем наборе данных.

6. Удалить пробелы —удаление пробелов — это шаг очистки данных, который предназначен для удаления всех пробелов, присутствующих в тексте.

7. Удалить числовые —В зависимости от проблемы, которую вы хотите решить, числовые значения, присутствующие в данных, могут или не могут влиять на ваши модели. Так что будьте осторожны при выполнении этого шага. После удаления числовых функций:

Примечание.Вы также можете удалить «Нет/нет» или некоторые другие значения, которые не имеют отношения к вашей проблеме, аналогичными способами, указанными выше.

8. Орфографическая коррекция.Орфографические ошибки — одна из наиболее распространенных проблем, встречающихся в текстовых данных. Опечатки, ярлыки делают эту проблему еще хуже. Исправление орфографии может быть выполнено с помощью мощной библиотеки на основе Python TextBlob. Что также можно использовать для стемминга и лемматизации. Орфографическая коррекция также помогает устранить дублирование, вызванное такими орфографическими ошибками, как python, python, pythom и т. д. Ознакомьтесь с кодом для выполнения орфографической коррекции.

Внимание! этот шаг может занять слишком много времени (иногда часы, в зависимости от размера данных и производительности системы).

9.Лемматизация — предпочтительнее, чем поиск корней, поскольку позволяет найти корень слова и избежать дублирования в тексте. Текст после лемматизации:

Найди код здесь.