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

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

Этот блог предназначен для понимания основного конвейера в NLP и преобразования его в желаемый формат, который предоставляется в качестве входных данных для любых алгоритмов машинного обучения или глубокого обучения.

Базовый трубопровод НЛП-

Как показано на рисунке выше, есть 5 основных шагов. Определенно есть много других, таких как тегирование Named-Entity Recognition (NER), разрешение кореференции и т. Д., Но на начальном этапе или в качестве новичка важно знать и понимать вышеупомянутые шаги. Эти шаги легко реализовать с помощью Python либо с помощью библиотек Nltk, либо Spacy. Я продемонстрирую здесь использование библиотеки nltk.

Токенизация:

Токенизация - это способ разделения фрагмента текста на более мелкие единицы, называемые токенами, на уровне предложения или слова. В следующем примере показана реализация слова tokenize.

Результат будет следующим:

['[',
 "'The",
 'Plateau',
 'coffee',
 'tables',
 ',',
 'designed',
 'by',
 'Büro',
 'Famos',
 ',',
 'comprises',
 'just',
 'two',
 'simple',
 'wooden',
 'components',
 'a',
 'top'

Очистка текста:

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

POS-теги:

Маркировка POS - это задача пометить каждое слово в предложении соответствующей частью речи. Части речи включают существительные, глагол, наречия, прилагательные, местоимения, союз и их подкатегории. Это поможет в качестве предварительного условия упростить множество различных проблем в НЛП.

Выходные данные для маркировки POS выглядят следующим образом:

[('You', 'PRP'),
 ('just', 'RB'),
 ('gave', 'VBD'),
 ('me', 'PRP'),
 ('a', 'DT'),
 ('scare', 'NN')]

Стоп-слова:

Эти слова не придают большого значения значению документа. Стоп-слова распространены в самом языке. Удаление игнорируемых слов должно производиться после токенизации. Nltk предоставляет стоп-слова на многих языках, таких как датский, немецкий, английский и т. Д. Некоторые из преимуществ удаления игнорируемых слов:

  1. При удалении стоп-слов размер набора данных уменьшается, а также уменьшается время обучения модели.
  2. Устранение стоп-слов теоретически поможет повысить производительность, поскольку остается меньше и только актуальных токенов. Таким образом, это может повысить точность классификации.

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

Это уменьшает количество изменяемых слов, должным образом гарантируя, что корневое слово принадлежит языку. Это помогает получить нужные и правильные слова. Nltk предоставляет WordNet Lemmatizer, который использует базу данных WordNet для поиска лемм слов.

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