Вступление

В этом руководстве мы будем использовать анализ настроений для анализа отзывов TheFork о ресторанах. Чтобы избежать сложностей с получением ключа API, а также избежать реализации HTTP-запросов (поскольку предметом этого руководства является сентиментальный анализ, а не HTTP-запросы), я предоставлю вам файл JSON для анализа. По сути, это ответ от конечной точки RapidAPI The Fork List Reviews без необходимости, как было сказано ранее, создания ключа API. Мы создадим небольшую веб-страницу, на которой будут отображаться некоторые отзывы из TheFork (на примере Architora Caffe Bistrot из Милана, Италия) и будем оценивать любые комментарии с помощью анализатора настроений.

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

Начни работать над этим

Начнем с базы. Во-первых, мы создадим сервер Express.js для обслуживания данных в формате JSON (как было сказано во введении, правильный способ сделать это - запросить RapidAPI TheFork, но в рамках учебника мы сосредоточимся только на Сторона анализа настроений)

Устанавливаем обычные исходные библиотеки:

npm install express body-parser - сохранить

Создайте index.js со следующим кодом. Нам нужны express и bodyParser, и мы создаем 2 метода, один для перенаправления на index.html (мы скоро его создадим) и data.json, который ниже:

const express = require ('express');
const bodyParser = require ('body-parser');
const app = express ();
app.use (bodyParser.urlencoded ({ расширенный: истина}));

var data = require («./ data.json»). data.collection;

app.get («/ data», (req, res) = ›{
return res.json (data);
});

app.get («/», функция (req, res) {
res.sendFile (__ dirname + «/index.html»);
});

app.listen (3000, function () {
console.log («Сервер в сети»);
});

Создайте data.json в том же каталоге:

И создайте уже пустой index.html.

Практическое руководство по Node.js: анализ настроений

Перед тем, как начать писать сумасшедший код, нам нужно импортировать несколько библиотек, которые помогут нам в процессе токенизации, который, короче говоря, извлекает чистые слова из фразы. Нам нужно будет пройти через такие фазы, как преобразование сокращений (например: я, он, они) в стандартный лексикон (я, он, они ), типографская коррекция, слова фильтра, которые мы не используем для этого анализа (дополнительные слова, такие как но, a , или, что).

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

Естественный: общее средство естественного языка для Node.js, которое включает не только модуль анализатора настроений, но также несколько инструментов для токенизации и стемминга (процесс нормализации слов в NLP, который используется для преобразования производных или слово, склоняющееся к их основной или корневой форме - например, давал, давал или давал их корневому слову: давать -).

Apos-to-lex-form: преобразует слова, соединяющие апостроф, в их стандартную лексическую форму.

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

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

npm установить стоп-слово корректора орфографии естественной апос-в-лексической форме - сохранить

Ниже var data =… импортируем только что добавленные библиотеки:

const aposToLexForm = require (‘apos-to-lex-form’);
const natural = require (‘natural’);

const SpellCorrector = require («корректор орфографии»);
const spellCorrector = new SpellCorrector ();
spellCorrector.loadDictionary ();

const SW = require («стоп-слово»);

Ниже мы добавляем раздел «Анализ настроений», который составляет основу этой статьи. А затем мы рассмотрим код, объясняющий строку за строкой:

Теперь поговорим об этой строке:

const analyzer = new SentimentAnalyzer («итальянский», PorterStemmerIt, «шаблон»);

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

  1. Язык и Stemmer
    В зависимости от используемого языка мы импортируем связанный модуль:
    Английский: PorterStemmer
    Голландский: PorterStemmerNl
    Французский: PorterStemmerFr
    Итальянский: PorterStemmerIt
    Испанский: PorterStemmerEs
  2. Словарь
    Устанавливает тип словаря (AFINN, Senticon, Pattern или Negations)
    Английский: AFINN, Senticon, Pattern, Отрицания
    Французский: Pattern
    Итальянский: Pattern
    Испанский: AFINN, Senticon, Negations
    Голландский: Pattern, Negations

Заканчивать…

Теперь нам нужно заполнить файл index.html, который мы называем нашим файлом JSON и отображаем результат.

Конечный результат

Заключение

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