Вступление

Модель GPT-3 на данный момент стала горячей темой в области обработки естественного языка из-за ее производительности. Он имеет почти 175 миллиардов параметров по сравнению с GPT-2, у которого было около 1,5 миллиардов параметров. Это крупный прорыв в области НЛП. Но этапы предварительной обработки, которые требуются перед обучением любой модели, имеют первостепенное значение. Поэтому в этой статье я объясню все основные шаги, которые используются и требуются при предварительной обработке данных перед обучением любой модели НЛП.

Сначала я перечислю шаги предварительной обработки, а затем подробно объясню их:

  1. Удаление HTML-тегов
  2. Удаление игнорируемых слов
  3. Удаление лишних пробелов
  4. Преобразование чисел в их текстовые представления
  5. Нижний регистр текста
  6. Токенизация
  7. Стемминг
  8. Лемматизация
  9. Проверка орфографии

А теперь давайте начнем с их объяснения по порядку.

Удаление HTML-тегов

Иногда текстовые данные могут содержать теги HTML вместе с обычным текстом, если данные были извлечены из Интернета. Это можно удалить с помощью библиотеки Python BeautfulSoup, потому что эти теги не будут использоваться, или эти теги также можно удалить с помощью regex. Код поясняется ниже: -

Удаление стоп-слов

Часто данные содержат большое количество стоп-слов. Это может быть бесполезно, потому что не окажет существенного влияния на данные. Их можно удалить с помощью библиотеки nltk или spacy. Код показан ниже: -

Удаление лишних пробелов

Могут быть определенные ситуации, когда данные могут содержать лишние пробелы в предложениях. Их можно легко удалить с помощью функций Python split () и join ().

Преобразование чисел в их текстовые представления

Преобразование чисел в их текстовую форму также очень полезно на этапах предварительной обработки НЛП. Для этого можно использовать библиотеку num2words.

Нижний регистр текста

Преобразование всех слов в данных в нижний регистр - хорошая практика для устранения избыточности. Может существовать вероятность того, что слова могут встречаться в тексте более одного раза. Один в нижнем регистре, другой в верхнем регистре.

Токенизация

Токенизация включает преобразование предложений в токены. Под токенами я подразумеваю разбиение предложений на слова. Также полезно отделить знаки препинания от слов, потому что на уровне внедрения модели весьма вероятно, что в модели отсутствует вложение для этого слова. Например, «спасибо» - это слово с точкой. Токенизация будет разделена на ["спасибо", "."]. Код для этого представлен ниже с использованием word_toknize NLTK: -

Стемминг

Стемминг - это процесс преобразования любого слова в данных в его корневую форму. Например: - «сидя» будет преобразовано в «сидеть», «мышление» будет преобразовано в «думать» и т. Д. Для этой цели можно использовать PorterStemmer NLTK.

Лемматизация

Многие считают лемматизацию похожей на стемминг. Но на самом деле они разные. Лемматизация выполняет морфологический анализ слов, в отличие от корней. В NLTK есть реализация лемматизации (WordNetLemmatizer), которую можно использовать.

Проверка орфографии

Существует большая вероятность того, что используемые данные содержат орфографические ошибки. Здесь проверка орфографии становится важным этапом предварительной обработки НЛП. Для этой цели я буду использовать библиотеку TextBlob.

Хотя вышеупомянутая проверка орфографии может быть не идеальной, она все же будет полезна.

Все описанные выше методы являются одними из возможных доступных для выполнения этих шагов. Доступны и другие методы.

Я создал репозиторий Github, а также собрал все вышеперечисленные методы в одном файле. Вы можете проверить это, перейдя по ссылке ниже: -



На этот раз все с моей стороны. Продолжай читать. Если вы хотите узнать больше, вы можете обратиться к моим рассказам ниже: -