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

Обработка естественного языка (NLP) — это раздел науки о данных, который занимается текстовыми данными. Прежде чем использовать текстовые данные для анализа или прогнозирования, необходимо выполнить предварительную обработку. Это важный шаг в процессе построения модели в проектах НЛП.

При предварительной обработке мы должны выполнить следующее:

  1. Удалите дескрипторы и URL-адреса
  2. Разбить строку на слова
  3. Нижний кожух.
  4. Удалите стоп-слова, такие как «and, is, a, on и т. д.».
  5. Стемминг или преобразование каждого слова в его основу

В этой статье мы будем использовать набор данных Twitter «twitter_samples», чтобы понять шаги, связанные с предварительной обработкой текста.

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

Вы можете загрузить набор данных в свою рабочую область (или на локальный компьютер), выполнив следующие действия:

Мы можем загрузить текстовые поля положительных и отрицательных твитов, используя метод strings() модуля, например:

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

Output:
My beautiful sunflowers on a sunny Friday morning off :) #sunflowers #favourites #happy #Friday off… https://t.co/3tfYom0N1i

Предварительная обработка необработанного текста для анализа настроений

Прежде чем пройти этапы предварительной обработки, давайте сначала импортируем некоторые библиотеки, которые нам понадобятся в предстоящем процессе:

  1. Удалите дескрипторы и URL-адреса

Мы используем библиотеку «re» для удаления гиперссылок, твиттер-меток и стилей следующим образом:

На изображении выше показан результат после применения методов, импортированных через библиотеку «re» (синий твит представляет обновленный текст).

2. и 3. Токенизировать твиты и нижний регистр:

Токенизация означает разделение строк на отдельные слова без пробелов и табуляций. На этом же этапе мы также преобразуем каждое слово в строке в нижний регистр. Модуль tokenize от NLTK позволяет нам легко это сделать:

4.Удалить стоп-слова:

Стоп-слова — это часто используемые слова, которые удаляются из текста, поскольку они не добавляют никакой ценности для анализа. Эти слова имеют меньшее значение или вообще не имеют значения (например, "and, is, a, on и т. д.").

Теперь давайте очистим данные, используя приведенный выше список стоп-слов и знаков препинания:

Output: 
#Before: ['my', 'beautiful', 'sunflowers', 'on', 'a', 'sunny', 'friday', 'morning', 'off', ':)', 'sunflowers', 'favourites', 'happy', 'friday', 'off', '…']

#After: removed stop words and punctuation:
['beautiful', 'sunflowers', 'sunny', 'friday', 'morning', ':)', 'sunflowers', 'favourites', 'happy', 'friday', '…']

5.Вывод:

Stemming — это процесс преобразования слова в его наиболее общую форму или основу. Это помогает уменьшить размер нашего словарного запаса.

Рассмотрите слова:

  • узнать
  • обучение
  • выучил
  • учиться

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

  • счастлив
  • счастье
  • счастливее

Мы видим, что префикс happi используется чаще. Мы не можем выбрать happ, потому что это основа несвязанных слов, таких как happen.

Давайте посмотрим, как мы можем использовать его в ячейке ниже:

Output:
#Before: ['beautiful', 'sunflowers', 'sunny', 'friday', 'morning', ':)', 'sunflowers', 'favourites', 'happy', 'friday', '…']

#After: stemmed words:
['beauti', 'sunflow', 'sunni', 'friday', 'morn', ':)', 'sunflow', 'favourit', 'happi', 'friday', '…']

Примечания:

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

И вот оно. Спасибо за чтение.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.