Обработка естественного языка (NLP) — это раздел науки о данных, который занимается текстовыми данными. Помимо числовых данных, в значительной степени доступны текстовые данные, которые используются для анализа и решения бизнес-задач. Но прежде чем использовать данные для анализа или прогнозирования, важно обработать данные. Чтобы подготовить текстовые данные для построения модели, мы выполняем предварительную обработку текста.
В этом тексте предварительная обработка в НЛП с помощью Python — я собираюсь обсудить некоторые этапы предварительной обработки.
- Текст в нижнем регистре, 2. Удалить цифры, 3. Удалить знаки препинания, 4. Удалить пробелы, 5. Удалить стоп-слова по умолчанию, 6. Выделение корней, 7. Лемматизация
Импортируйте необходимые библиотеки
import nltk
import string
import re
Текст в нижнем регистре:
Мы используем нижний регистр текста, чтобы уменьшить размер словаря наших текстовых данных.
Удалить номера:
Мы можем либо удалить числа, либо преобразовать числа в их текстовое представление. Мы можем использовать регулярные выражения для удаления чисел.
Мы также можем преобразовать числа в слова. Это можно сделать с помощью библиотеки inflect.
Удалить знаки препинания:
Мы удаляем знаки препинания, чтобы не было разных форм одного и того же слова. Если не убрать знаки препинания, то было. был, был! будут рассматриваться отдельно.
Удалить пробелы:
Мы можем использовать функцию объединения и разделения, чтобы удалить все пробелы в строке.
Удалить стоп-слова по умолчанию:
Стоп-слова – это слова, не влияющие на смысл предложения. Следовательно, их можно безопасно удалить, не вызывая никакого изменения смысла предложения. В библиотеке NLTK есть набор стоп-слов, и мы можем использовать их, чтобы удалить стоп-слова из нашего текста и вернуть список токенов слов.
Список английских стоп-слов в NLTK
Стемминг:
Стемминг – это процесс получения корневой формы слова. Основа или корень — это часть, к которой добавляются флективные аффиксы (-ed, -ize, -de, -s и т. д.). Основа слова создается путем удаления префикса или суффикса слова. Таким образом, определение основы слова может не привести к фактическим словам.
книги — -› книга
посмотрел — -› посмотрел
отказано — -› отказано
мухи — -› летать
Если текст не в токенах, нам нужно преобразовать его в токены. После того, как мы преобразовали строки текста в токены, мы можем преобразовать токены слов в их корневую форму. В основном существует три алгоритма стемминга. Это Porter Stemmer, Snowball Stemmer и Lancaster Stemmer. Портер Стеммер — самый распространенный среди них.
Лемматизация:
Как и определение основы, лемматизация также преобразует слово в его корневую форму. Единственное отличие состоит в том, что лемматизация гарантирует, что корневое слово принадлежит языку. Мы получим допустимые слова, если воспользуемся лемматизацией. В NLTK мы используем WordNetLemmatizer для получения лемм слов. Нам также необходимо предоставить контекст для лемматизации. Итак, мы добавляем часть речи в качестве параметра.
(Файл Предварительная обработка текста в Python (NLP)-I) Ipynb — Github