Обработка естественного языка (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 предоставляет стоп-слова на многих языках, таких как датский, немецкий, английский и т. Д. Некоторые из преимуществ удаления игнорируемых слов:
- При удалении стоп-слов размер набора данных уменьшается, а также уменьшается время обучения модели.
- Устранение стоп-слов теоретически поможет повысить производительность, поскольку остается меньше и только актуальных токенов. Таким образом, это может повысить точность классификации.
Лемматизация:
Это уменьшает количество изменяемых слов, должным образом гарантируя, что корневое слово принадлежит языку. Это помогает получить нужные и правильные слова. Nltk предоставляет WordNet Lemmatizer, который использует базу данных WordNet для поиска лемм слов.
После выполнения этих шагов текст будет в желаемом формате, который будет использоваться в качестве входных данных для модели ML.