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

- Отрывок из обзора IMDb для Shawshank Redemption

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

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

Другой пример - разбиение следующего предложения на синтаксические элементы.

Карна начинает всемирную военную кампанию, иначе называемую Дигвиджая Ятра.

Реальные приложения НЛП

Автоматическое суммирование. Представьте, что вы сотрудник Amazon. Ваша задача - создать короткое двухстрочное описание продукта из документа, описывающего продукт. Эта двухстрочная сводка будет видна клиентам, заходящим на сайт. Вы не можете сидеть и читать документы по каждому из миллионов продуктов, перечисленных на Amazon, и составлять сводку для каждого из них вручную, на это потребуются годы! Именно здесь НЛП становится актуальным благодаря автоматическому обобщению.

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

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

Распознавание именованных сущностей. Пометка каждого слова в тексте предопределенными категориями, такими как человек, местоположение, организация или что-то еще.

НЛП в действии - анализ настроений в обзоре фильмов

Давайте попробуем начать с очень простого подхода. Вести словарь положительных и отрицательных слов. Кроме того, сохранение веса (= важности) каждого слова в словаре. Затем подсчитываем количество положительных и отрицательных слов в отзыве. Думайте об этом как о взвешенной сумме. Большее количество отрицательных слов с большим весом означает отрицательный отзыв. Более позитивные слова с большим весом означают сказочный фильм. Для этого мы должны сначала применить очень простую технику НЛП - токенизацию.

Токенизация - это процесс разбиения текста на более мелкие части, например слова или фразы. Эти блоки, называемые токенами, предоставляют такую ​​информацию, как количество токенов, частота токенов и т. Д. Токены обеспечивают математический способ организации текста, и, следовательно, эти токены становятся важными функциями . Что это особенности? Взгляните на эту статью о Нейронных сетях. Когда у нас есть токены, мы можем анализировать статистику текущего текста.

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

Но решает ли токенизация все наши проблемы? Не совсем. Как я сказал ранее, человеческий язык сложен. Давайте разберемся с возможными ошибками анализа текста посредством ванильной токенизации.

Предположим, что в наш словарь положительных и отрицательных слов мы добавили положительное слово «хорошо», но, как видно, люди обычно используют «gud» вместо хорошего в тексте обзора. Чтобы избежать этой проблемы с v ариантами одного и того же слова , мы должны использовать второй наиболее распространенный метод - Нормализация слов.

Нормализация слов «выравнивает» похожие слова, написанные разными способами , например, вы хотите сопоставить

  • США → США (удалить специальные символы)
  • США → сша (преобразовать текст в нижний регистр),
  • Автомобиль, Машины, автомобили, автомобили »→« Автомобиль »(Лемматизация)

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

Все идет нормально. Но часто в тексте отзыва содержится несколько вариантов одного и того же слова. Мы должны уравнять эти вариации (например, прошедшее время) одного и того же слова в словаре, например, «волнующий», «взволнованный». Один из приемов НЛП, используемых для этого, называется Стемминг.

Stemming используется для извлечения основы из слова - automat (es), automat (ic), automat (ion) → automat

«Быть ​​или не быть - вот в чем вопрос». Ну, вопрос не в этом, но вы видите, как добавление отрицания или отрицательного модификатора перед словом или фразой изменяет его значение. Это снова проблема, которой предстоит заняться НЛП.

Использование положительных слов с отрицательным модификатором (или наоборот). Например, «Фильм не понравился» или «Трейлер был захватывающим, но фильм мне не понравился» меняет тональность отзыва. Это отрицательные комментарии, основанные на таких положительных словах, как «хорошо» и «захватывающе». В конечном итоге мы можем классифицировать их как «хорошие отзывы». Чтобы избежать этой проблемы, мы можем использовать наш третий метод - Анализ отрицания.

Анализ отрицания: исходя из ваших потребностей, вы можете создать свой собственный список отрицания, а затем применить описанный ниже метод.

Отрицательное слово (модификатор) + положительное слово - ›Увеличить отрицательное значение тональности
Отрицательное слово (модификатор) + отрицательное слово -› Увеличить положительное значение тональности

Этот метод в основном специфичен для анализа настроений.

Еще один полезный метод НЛП для удаления часто встречающихся слов - Удаление стоп-слова

Удаление стоп-слов удаляет часто встречающиеся слова, такие как «the», «a», «there», «in». Обычно они не носят с собой слишком много информации.

Как мы видели, сами слова - очень важные особенности НЛП. Используемая здесь методика на основе словаря использует множество методов для очистки и обработки текста, а затем выполняет базовое взвешивание и подсчет положительных и отрицательных слов. Обратите внимание, что здесь нет алгоритма обучения.

Есть несколько других способов, с помощью которых мы можем проводить анализ настроений, используя возможности машинного обучения. Большинство алгоритмов машинного обучения требуют извлечения функций из данных. Давайте рассмотрим наиболее распространенный метод преобразования слов в функции в НЛП - TF-IDF.

Что такое TF-IDF?

TF-IDF расшифровывается как термин "частота-обратная частота документа". Это функция веса, назначаемая каждому слову, чтобы оценить, насколько важно слово для документа в коллекции. Важность увеличивается пропорционально тому, сколько раз слово появляется в документе, но компенсируется частотой появления слова в корпусе (коллекции документов).

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

Давайте посмотрим на tf-idf более подробно.

Вычисление TF-IDF

Частота термина (TF) измеряет, как часто термин встречается в документе. Поскольку все документы различаются по длине, возможно, что термин будет появляться в длинных документах гораздо чаще, чем в более коротких. Таким образом, термин "частота" часто делится на длину документа. Длина документа здесь означает общее количество слов в этом документе.
Математически -

Например, рассмотрим документ, содержащий 100 слов, в котором слово кошка встречается 3 раза. Тогда TF для cat будет (3/100) = 0,03. Документ из 300 слов, содержащий слово cat 9 раз, по-прежнему будет иметь тот же TF.

Inverse Document Frequency (IDF) измеряет важность термина. При вычислении TF все термины считаются одинаково важными. Однако известно, что некоторые термины, такие как «есть», «из» и «то», могут встречаться много раз, но не имеют большого значения. И более важными должны быть такие редкие слова, как «интернет», «крикет», «дональд Трамп». Таким образом, нам нужно уменьшить частые термины и увеличить редкие, вычислив следующее:

Теперь предположим, что у нас есть 10 миллионов документов, и слово cat встречается в одной тысяче из них. Затем обратная частота документа (т.е. idf) вычисляется как log (10,000,000 / 1,000) = 4. Таким образом, вес tf-idf является произведением этих величин: 0,03 * 4 = 0,12.

Вместо этого, если мы посмотрим на важность слова the. Это будет присутствовать во всех 10 млн документов. Таким образом, его IDF = log (10M / 10M) = 0. Таким образом, его вес tf-idf также становится нулевым. Следовательно, не имеет значения.

Используя эти функции tf-idf, мы можем использовать любые алгоритмы классификации машинного обучения, такие как логистическая регрессия или обучение нейронной сети, чтобы классифицировать отзыв как положительный, отрицательный или нейтральный.

НЛП, ML и DL

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

Глубокое обучение - один из методов в области машинного обучения; существует несколько других методов, таких как регрессия, K-среднее значение и т. Д. Глубокое обучение довольно широко используется для классификации на основе зрения (например, для различения изображений самолетов от изображений собак). Глубокое обучение также можно использовать для задач НЛП.

Однако так же, как НЛП не является эксклюзивным для машинного обучения, важно отметить, что алгоритмы глубокого обучения не работают исключительно с текстом.

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



Как только компьютеры начнут понимать наши языки, возможно, мы наконец сможем лучше общаться!

Ресурсы:







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

Спасибо за чтение!