Анализ настроений с помощью Laravel и Google Natural Language API

1656599418 analiz nastroenij s pomoshhyu laravel i google natural language api

автор Даррен Чоулз

Напишите собственную проверку настроений через 5 минут.

W-RZSezYMfrCrFNASW1qeHGAc8tHm8epzb9F

Анализ настроений – это процесс определения того, является ли фрагмент текста положительным, отрицательным или нейтральным.

Реальные программы для анализа настроений

Цель этой статьи – научить вас использовать API естественного языка Google с Laravel. Вы будете использовать этот API для анализа настроений в тексте.

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

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

Интерпретация значений анализа настроений

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

Настроения представлены числовыми оценка и величина ценности.

  • The оценка колеблется от -1,0 (отрицательный) до 1,0 (положительный).
  • The величина указывает на силу эмоций (как положительных, так и отрицательных). Диапазон включает от 0,0 до бесконечности. The величина не нормализуется, поэтому более длинные отрывки текста всегда будут иметь больший размер. величина.
okN8PYIoQbHRpiBvsV2A1QCDW3rlkUJMyk6H
Вышеприведенные значения являются только ориентировочными, и вам нужно будет настроить их в соответствии с вашей конкретной средой.

Настройка Google Cloud Platform

Первый шаг предполагает создание нового проекта в консоли Google Cloud Platform.

Выделите информационную панель и создайте новый проект.

z6371dAtV-MSOkaUJgZaEJvCvlB5pykD3OUq

После создания проекта оставьте файл Идентификатор проекта удобно.

ssGnt0a3bKIaNyCRIwJcbaSD7iaAuKrMUSGP
  • После создания проекта перейдите на страницу Создание ключа учетной записи службы.
  • Убедитесь, что ваш образец проекта выбран вверху.
  • под Сервисная учетная записьвыберите Новая сервисная учетная запись.
  • Введите название в Название сервисной учетной записи поле.
  • под Рольвыберите Демонстрировать > Ойнер.
  • Наконец, нажмите Создайте для автоматической загрузки файла учетных данных JSON.
IbX4pzWkQIl9XCtFFizscV2S4zRXvQCohCRP

Возможно, вам также понадобится включить Cloud Natural Language API через раздел Библиотека API.

ZSc4dpY-9xCA4MM7q7WrYcQV-mFqndbkFEiA

Настройка проекта Laravel

Следующим шагом является настройка нового проекта Laravel. Если у вас уже есть проект Laravel, вы можете упустить этот шаг.

Для этой статьи я использую Laravel 5.5 LTS. В командной строке выполните такую ​​команду Composer, чтобы создать новый проект (вы также можете использовать установщик Laravel):

composer create-project --prefer-dist laravel/laravel sample "5.5.*"

Если вы использовали Composer, переименуйте файл .env.example файл к .env а затем выполните такую ​​команду, чтобы установить ключ программы:

php artisan key:generate

Добавьте пакет облачного языка от Google

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

composer require google/cloud-language

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

Основное событие: добавление фактического кода в ваш проект

Я добавлю следующий маршрут к своему routes/web.php файл:

<?php 
Route::get('/', 'SampleController@sentiment');

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

Мы начнем с простого контроллера, добавив a use заявление о включении Google Cloud ServiceBuilder класс:

<?php
namespace App\Http\Controllers;
use Google\Cloud\Core\ServiceBuilder;
class SampleController extends Controller{    public function sentiment()    {        // Code will be added here    }}

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

$cloud = new ServiceBuilder([    'keyFilePath' => base_path('gc.json'),    'projectId' => 'sample-207012']);

Вы указываете расположение файла JSON с помощью keyFilePath вариант. Я использовал ассистент Laravel base_path() для ссылки на полный корневой путь программы.

Следующий вариант – это projectId. Это значение, которое вы получили при создании проекта на консоли GCP.

Далее мы создадим экземпляр LanguageClient класс. The ServiceBuilder class делает это легко, открывая различные заводские методы, предоставляющие доступ к службам в API.

$language = $cloud->language();

Теперь, когда у нас есть экземпляр класса, мы можем начать использовать API природного языка. Мы объявим переменную с некоторым текстом, проанализируем настроения и выведем результаты:

// The text to analyse$text="I hate this - why did they not make provisions?";
// Detect the sentiment of the text$annotation = $language->analyzeSentiment($text);$sentiment = $annotation->sentiment();
echo 'Sentiment Score: ' . $sentiment['score'] . ', Magnitude: ' . $sentiment['magnitude'];

И все это!

savaV9K6VqBmJIvC8kMz97tdvMFa4NpX7jRs
Вывод кода выше.

Вот окончательный код класса контроллера:

<?php
namespace App\Http\Controllers;
use Google\Cloud\Core\ServiceBuilder;
class SampleController extends Controller{    public function sentiment()    {        $cloud = new ServiceBuilder([            'keyFilePath' => base_path('gc.json'),            'projectId' => 'sample-207012'        ]);
        $language = $cloud->language();
        // The text to analyse        $text="I hate this - why did they not make provisions?";
        // Detect the sentiment of the text        $annotation = $language->analyzeSentiment($text);        $sentiment = $annotation->sentiment();
        echo 'Sentiment Score: ' . $sentiment['score'] . ', Magnitude: ' . $sentiment['magnitude'];    }}

Вывод

Мы только рассмотрели, что может предложить Google Natural Language API. Если вы справитесь с этим, я предлагаю проверить следующие дополнительные услуги, доступные в этом API:

  • Анализ сущности: анализировать такие объекты как памятные места и общественные деятели.
  • Классификация содержимого: анализировать текст и возвращать список категорий содержимого.

Если у вас возникли вопросы – пожалуйста, обращайтесь!

Первоначально опубликовано на www.chowles.com 13 июня 2018 года.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *