Основы НЛП

Я пишу информационный бюллетень для учащихся под названием Mighty Knowledge. Каждый новый выпуск содержит ссылки и основные уроки из самого лучшего контента, включая цитаты, книги, статьи, подкасты и видео. Каждый выбран специально для того, чтобы научиться жить более мудрой, счастливой и полной жизнью. Зарегистрируйтесь здесь.

Современные организации работают с огромными объемами данных. Эти данные могут поступать в самых разных формах, включая документы, электронные таблицы, аудиозаписи, электронные письма, JSON и многие, многие другие. Один из наиболее распространенных способов записи таких данных - текст. Этот текст обычно очень похож на естественный язык, который мы используем изо дня в день.

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

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

Это руководство научит вас основам НЛП при использовании в Data Science. Мы рассмотрим 7 наиболее распространенных методов, которые вы можете использовать для обработки ваших текстовых данных, включая примеры кода с NLTK и Scikit Learn.

(1) Токенизация

Токенизация - это обработка разбиения текста на предложения или слова. При этом мы также отбрасываем знаки препинания и лишние символы.

Это не так просто, как кажется. Например, слово «Нью-Йорк» в первом примере выше было разделено на два токена. Однако «Нью-Йорк» - местоимение, которое может быть весьма важным в нашем анализе - возможно, нам лучше сохранить его в одном знаке. Таким образом, на этом этапе необходимо соблюдать осторожность.

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

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

Естественный следующий шаг после токенизации - Удаление стоп-слов. Удаление стоп-слов преследует ту же цель, что и токенизация: преобразовать текстовые данные в более удобный для обработки формат. В этом случае при удалении стоп-слов удаляются общепринятые языковые предлоги, такие как и, the, a и т. Д. В английском языке. Таким образом, когда мы анализируем наши данные, мы сможем прорезать шум и сосредоточиться на словах, имеющих реальное значение в реальном мире.

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

(3) стебель

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

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

(4) Вложения слов

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

Вложения слов - это способ представления слов в виде чисел таким образом, что слова с одинаковым значением имеют аналогичное представление. Современные вложения слов представляют отдельные слова как векторы с действительными значениями в заранее заданном векторном пространстве.

Все векторы слов имеют одинаковую длину, но с разными значениями. Расстояние между двумя векторами слов показывает, насколько схожи значения этих двух слов. Например, векторы слов «готовить» и «запекать» будут довольно близкими, но векторы слов «футбол» и «запекать» будут совершенно разными.

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

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

  • Я люблю науку о данных.
  • Я люблю кодировать.
  • Я должен изучить НЛП.

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

Для реального набора данных матрица была бы намного, намного больше. Хорошо то, что слово «вложения» нужно вычислить только один раз для данных, а затем его можно сохранить на диск.

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

В уравнении X представляет значение из матрицы совместной встречаемости в позиции (i, j), а w ' - это слово векторы, которые нужно изучить. Таким образом, используя эту целевую функцию, GloVe минимизирует разницу между скалярным произведением векторов из двух слов и совместной встречаемостью, эффективно гарантируя, что изученные векторы коррелируют со значениями совместной встречаемости в матрице.

За последние несколько лет GloVe зарекомендовал себя как очень надежный и универсальный метод встраивания слов благодаря эффективному кодированию значений слов и их сходству. Для приложений Data Science это проверенный на практике метод преобразования слов в формат, который мы можем обрабатывать и анализировать.

Вот полное руководство о том, как использовать GloVe в Python!

(5) Частота термина - обратная документальная частота

Частота термина - обратная частота документа, более известная как TF-IDF, - это весовой коэффициент, часто используемый в таких приложениях, как поиск информации и интеллектуальный анализ текста. TF-IDF использует статистику, чтобы измерить, насколько важно слово для конкретного документа.

  • TF - Term Frequency: измеряет, как часто строка встречается в документе. Рассчитывается как общее количество вхождений в документе, разделенное на общую длину документа (для нормализации).
  • IDF - обратная частота документа: измеряет важность строки в документе. Например, некоторые строки, такие как «есть», «из» и «а», часто встречаются во многих документах, но на самом деле не имеют особого значения - они не являются прилагательными или глаголами. Поэтому IDF взвешивает каждую строку в соответствии с ее важностью, рассчитываемой как log () общего количества документов в наборе данных, деленное на количество документов, в которых встречается строка (+1 в знаменатель, чтобы избежать деления на ноль).
  • TF-IDF: Окончательный расчет TF-IDF - это просто умножение терминов TF и ​​IDF: TF * IDF.

TF-IDF идеально сбалансирован, учитывая как локальный, так и глобальный уровни статистики для целевого слова. Слова, которые чаще встречаются в документе, имеют больший вес, но только если они встречаются реже во всем документе.

Благодаря своей надежности методы TF-IDF часто используются поисковыми системами для оценки и ранжирования релевантности документа при вводе ключевого слова. В Data Science мы можем использовать его, чтобы понять, какие слова и связанная с ними информация являются наиболее важными в наших текстовых данных.

(6) Тематическое моделирование

Тематическое моделирование в контексте НЛП - это процесс извлечения основных тем из набора текстовых данных или документов. По сути, это форма уменьшения размерности, поскольку мы сокращаем большой объем текстовых данных до гораздо меньшего количества тем. Тематическое моделирование может быть полезно в ряде сценариев Data Science. Назвать несколько:

  • Анализ данных текста - Извлечение основных тенденций и основных компонентов данных
  • Классификация текста - аналогично тому, как уменьшение размерности помогает с классическими проблемами машинного обучения, здесь также помогает тематическое моделирование, поскольку мы сжимаем текст по ключевым функциям, в данном случае темам.
  • Создание рекомендательных систем - тематическое моделирование автоматически дает нам базовую группировку текстовых данных. Он даже может выступать в качестве дополнительной функции для построения и обучения модели.

Тематическое моделирование обычно выполняется с использованием техники, называемой Скрытое распределение Дирихле (LDA). С LDA каждый текстовый документ моделируется как полиномиальное распределение тем, а каждая тема моделируется как полиномиальное распределение слов (отдельные строки, которые мы можем получить из нашей комбинации токенизации, удаления стоп-слов и определения корней).

LDA предполагает, что документы создаются по сочетанию тем. Затем эти темы генерируют слова на основе их распределения вероятностей.

Мы начинаем с того, что сообщаем LDA, сколько тем должен иметь каждый документ, и из скольких слов состоит каждая тема. Учитывая набор данных документов, LDA пытается определить, какая комбинация и распределение тем может точно воссоздать эти документы и весь текст в них. Он может сказать, какая тема (темы) работает, путем создания фактических документов, где построение осуществляется путем выборки слов в соответствии с распределением вероятностей слов с учетом выбранной темы.

Как только LDA найдет распределение тем, которое может наиболее точно воссоздать все документы и их содержимое в наборе данных, это наши последние темы с соответствующими распределениями.

(7) Анализ настроений

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

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

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

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

С помощью методов глубокого обучения анализ настроений моделируется как проблема классификации. Текстовые данные кодируются во встраиваемое пространство (аналогично описанным выше вложениям Word) - это форма извлечения функций. Затем эти характеристики передаются в модель классификации, в которой классифицируется тональность текста.

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

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

Любите учиться?

Следуйте за мной в Twitter, где я публикую все о новейших и величайших ИИ, технологиях и науке! Оставайтесь со мной на связи и в LinkedIn!