Введение
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.
Вывод
Анализ настроений дает возможность понять отношения и мнения, выраженные в текстах. Мы можем использовать анализ настроений, чтобы понять, как эмоции меняются на протяжении текста или какие слова с содержанием мнений важны для конкретного текста.
В заключение этого блога мы увидели, как машины используют машинное обучение, чтобы использовать возможности математики и информатики, чтобы понять, как анализируются настроения.