Введение

Homo Sapiens — высокоразвитые и наиболее развитые виды в мире. С тех пор, как мы сделали первый шаг, мы стали свидетелями технического прогресса на каждом жизненном этапе нашей человеческой жизни.

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

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

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

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

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

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

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

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

Неконтролируемые алгоритмы машинного обучения

Алгоритмы машинного обучения для обработки естественного языка подпадают под две категории, а именно, алгоритмы машинного обучения с учителем и другую, очевидно, алгоритмы машинного обучения без учителя.

Алгоритм машинного обучения без присмотра с точки зрения обработки естественного языка состоит из различных алгоритмов, и некоторые из них:

  • Лексикон АФИНН
  • Лексикон SentiWordNet
  • Лексикон ВАДЕР

Вышеупомянутые три алгоритма машинного обучения будут сравниваться друг с другом, чтобы определить лучший из них. Затем лучший алгоритм машинного обучения без учителя будет сравниваться с лучшим алгоритмом машинного обучения с учителем. Ориентиром для всех из них будет F1-score и точность результата.

Подождите, прежде чем двигаться дальше, позвольте мне объяснить значение слова «лексикон». Лексикон — это «набор слов, известных и узнаваемых всем людям, расположенных в алфавитном порядке, с их определением в контексте соответствующего языка…»

Алгоритмы контролируемого машинного обучения

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

  • Модель BOW (мешок слов)
  • Модель TF-IDF (частотно-обратная частота документа)
  • Логистическая регрессия для функции BOW (BOW-LR)
  • Логистическая регрессия для функции TF-IDF (TFIDF-LR)
  • Прогнозы SVM-BOW
  • Прогнозы SVM-TFIDF

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



dipanjanS/practical-machine-learning-with-python
«Данные — это новая нефть
— это высказывание, которое вы, должно быть, уже слышали вместе с огромным интересом, который растет вокруг Большого…github.com»



Чтобы иметь указанный выше репозиторий локально, т. е. на вашем компьютере, откройте терминал bash или cmd или что-то еще, что есть в вашей операционной системе, а затем введите следующее:

$git --version

Если у вас не установлен git, то в Linux запустите

$ sudo apt install -y git

Для Windows просто загрузите исполняемый файл с его веб-сайта,



и запустить его.

Git — это система контроля версий с открытым исходным кодом, которая может помочь программисту управлять файлами и репозиторием. Github — это место, где люди размещают свой код, чтобы показать его миру.

Теперь сделайте следующее,

$ mkdir ~./projects
$ cd projects
$ git clone https://github.com/dipanjanS/practical-machine-learning-with-python.git

И после этого,

$ cd practical-machine-learning-with-python

Тогда беги,

$ jupyter notebook

Подождите несколько секунд, и появится браузер по умолчанию с ноутбуком, работающим на локальном хосте: 8000.

Теперь перейдите в каталог с названием блокноты/«Ch07_Analyzing_Movie_Reviews_Sentiment» с помощью команды cd и убедитесь, что присутствуют следующие блокноты/файлы:

  • Анализ настроений — Unsupervised.ipynb
  • Анализ настроений — Supervised.ipynb
  • сокращения.py
  • model_evaluations_utils.py
  • text_normalizer.py
  • Набор данных: измените имя набора данных на movie_reviews.csv.

Нажмите на файл с именем «Анализ настроений — Unsupervised.ipynb», и он откроется в новой вкладке.

Перед дальнейшим выполнением обязательно прочитайте все ячейки и проверьте, все ли библиотеки установлены на вашем компьютере и обновлены. Используйте для этого команду pip или pip3 или команду conda. Например,

$ pip3 install numpy pandas scipy scapy

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

Словарь AFINN:-

Лексикон AFINN предположительно является одним из самых простых словарей, которые можно использовать для анализа настроений. Обновленная версия представляет собой текстовый файл с именем AFINN-en-165.txt в следующем репозитории Github:



Автор также создал функцию-оболочку для Python, которую мы будем здесь использовать. Теперь мы можем приступить к выполнению всех ячеек либо по одной, либо все вместе. Чтобы выполнить ячейку одну за другой, нажмите Ctrl-Enter и дождитесь завершения выполнения. Для запуска всех сразу перейдите в ячейку, затем нажмите «Выполнить все». Обратите внимание, что рядом с каждой ячейкой есть квадратная скобка, которая может отображать звездочку во время выполнения. После его выполнения он может принимать любое число.

Вывод:-

Лексикон ВЕЙДЕР:-

Термин VADER расшифровывается как Valance Aware Dictionary и sEntiment Reasoner. Это инструмент анализа настроений на основе лексики и правил, который специально настроен на настроения, выраженные в социальных сетях, и хорошо работает с текстами из других областей.

В обновленной версии он имеет временную сложность O(n), что значительно меньше O(n⁴).

Простой способ установить его — запустить следующее:

$ pip3 install vaderSentiment

Этот инструмент имеет возможность анализировать настроение данного предложения и назначать его как положительное, нейтральное или отрицательное предложение, а также присваивать ему значение.

Вывод:-

Лексикон SentiWordNet:-

SentiWordNet — это лексический ресурс для сбора мнений. SentiWordNet присваивает каждому синсету WordNet три оценки тональности: позитивность, негативность, объективность.

Репозиторий, в котором находится источник этого лексикона, можно найти по следующей ссылке:



Вывод:-

Те же файлы будут использоваться для «Анализ настроений — Supervised.ipynb».

ЛУК:-

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

Вывод:-

TF-IDF:-

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

Вывод:-

Сравнение всех алгоритмов машинного обучения

Из трех упомянутых алгоритмов машинного обучения без присмотра наиболее точным является AFINN, а алгоритмом с более высоким показателем F1 — VADER. Третий алгоритм машинного обучения без учителя имеет более низкие значения, чем два других, упомянутых выше.

Что касается контролируемых алгоритмов машинного обучения, BOW-LR лидирует с точностью 90,51% и таким же процентным показателем F1. TF-IDF с SVM был самым низким с точностью 89,76% с такой же оценкой F1.

В трех категориях неконтролируемого машинного обучения победителем должен быть тот, который использует простоту языка AFINN.

Вывод

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

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