Часть 2. Прогнозирование настроений с помощью AutoML из Google Таблиц

В моем последнем сообщении в блоге я провел небольшую демонстрацию, показывающую, почему и как вы можете создать свою собственную модель для анализа тональности текста. Предварительно обученная модель для анализа настроений Google Cloud работает хорошо во многих случаях, но ее необязательно обучать анализировать настроения, когда фразы содержат терминологию, специфичную для предметной области. К счастью, AutoML Natural Language позволяет настраивать модель настроений без необходимости иметь опыт машинного обучения или опыт разработки; хорошие новости для такого специалиста по анализу данных, как я!

К концу публикации настраиваемая модель была запущена и работала, и вы могли прогнозировать оценки для новых твитов, связанных с авиакомпаниями, прямо в веб-интерфейсе AutoML. Но поскольку многие данные попадают или хранятся в таблицах, я собираюсь показать вам, как получить доступ к пользовательской модели AutoML, чтобы предсказать тональность текста прямо из Google Таблиц.

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

  • Соберите данные для прогнозов в таблице Google
  • Напишите функцию для вызова AutoML API
  • Настройте OAuth и сервисную учетную запись для доступа к вашей модели AutoML
  • Автоматизируйте свою таблицу Google, чтобы прогнозировать настроения для новых твитов, и
  • Настройте триггер для обработки больших наборов данных

Соберите данные для прогнозов в таблице Google

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

  1. Создайте новый лист Google: sheet.new
  2. Переименуйте вкладку в «Данные твита».
  3. Добавьте заголовок в строку 1 со столбцом A как «tweet_text» и столбцом B как «automl_sentiment_output».
  4. Добавьте несколько примеров твитов. Я взял свой из исходного набора данных, но в идеале вы должны создать несколько новых твитов!

Напишите функцию для вызова AutoML API

Пришло время подключить Google Таблицы и AutoML, а для этого вам понадобится Apps Script. Если вы не использовали его раньше, Apps Script - это язык на основе JavaScript с улучшениями, которые упрощают настройку и автоматизацию в G Suite. Вы начнете с написания функции скрипта приложений, которая принимает строку текста в качестве входных данных, передает этот текст в службу AutoML и получает ответ от AutoML, содержащий прогнозируемую оценку настроения на основе пользовательской модели.

  1. В своей электронной таблице откройте Редактор скриптов из меню Инструменты.
  2. Скопируйте и вставьте следующий код в файл code.gs.

3. Замените YOUR_PROJECT_ID и YOUR_MODEL_ID в строках 2 и 3 на свой уникальный идентификатор проекта и идентификатор модели. Вы можете найти их на вкладке Прогноз в Пользовательском интерфейсе AutoML Natural Language, прокрутив страницу вниз до раздела Использовать собственную модель и выбрав REST API. URL-адрес, указанный в блоке кода, содержит оба элемента в следующем формате: https://automl.googleapis.com/v1beta1/projects/ YOUR_PROJECT_ID / locations / us-central1 / models / YOUR_MODEL_ID: прогнозировать .

Настройте OAuth и сервисный аккаунт для доступа к вашей модели AutoML

Для доступа к нашей пользовательской модели из скрипта приложений требуется учетная запись службы. Это набор учетных данных, которые вы создаете в своем проекте Google Cloud Platform, чтобы AutoML мог гарантировать, что только авторизованные пользователи имеют доступ к модели. Эти учетные данные включены в ваш код скрипта приложений.

  1. В Облачной консоли перейдите к API и службам, а затем к Учетным данным. В разделе Создать учетные данные выберите Ключ служебного аккаунта.
  2. Создайте новую учетную запись службы, укажите имя (например, «automl-sheet») и выберите роль AutoML Predictor. Нажмите Создать. Файл автоматически загрузится на ваш компьютер.
  3. Откройте редактор сценариев в Google Таблицах и создайте новый файл, выбрав в меню Файл → Новый → Файл сценария. Назовите новый файл auth.gs.
  4. Скопируйте и вставьте следующий код в файл auth.gs.

5. Откройте файл, загруженный при создании учетной записи службы. Найдите «client_email». Скопируйте и вставьте это, чтобы заменить YOUR_SVCACCT_EMAIL в строке 8 auth.gs. Сохраняйте одинарные кавычки.

6. Теперь найдите и скопируйте текст рядом с «private_key», который начинается с «- - -BEGIN PRIVATE KEY». Это очень длинный ключ, и вам нужно обязательно скопировать его полностью. Вставьте это, чтобы заменить YOUR_PRIVATE_KEY в строке 6 auth.gs. Сохраняйте одинарные кавычки.

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

  1. Щелкните пункт меню «Ресурсы› Библиотеки… ».
  2. В текстовом поле «Найти библиотеку» введите идентификатор сценария 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF и нажмите кнопку «Выбрать».
  3. Выберите версию в раскрывающемся списке (обычно лучше выбрать последнюю версию).
  4. Нажмите кнопку «Сохранить».

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

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

  1. Скопируйте и вставьте следующий код в файл code.gs, вставив его над уже существующим кодом.

2. Сохраните код в редакторе, а затем вернитесь к таблице Google.

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

3. Перезагрузите Google Sheet в браузере. Вы увидите новое меню под названием Инструменты AutoML рядом с меню Справка.

4. В меню Инструменты AutoML нажмите Пометить настраиваемое тональность.

5. Разрешите запуск кода, нажав Продолжить во всплывающем диалоговом окне, войдя в свою учетную запись Google и нажав Дополнительно в нижней части сообщения Это приложение не работает. t проверено »и, наконец, просмотрите разрешения и нажмите Разрешить. Вы можете увидеть очень похожий поток на этой гифке из блога Бена Коллинза.

6. После авторизации код начнет работать, и вы увидите, что оценки настроений отображаются в столбце automl_sentiment_output.

Настройте триггер для обработки больших наборов данных

Чтобы безопасно придерживаться квоты использования 600 запросов прогнозов в минуту на проект, код настроен на обработку до 400 строк твитов. Если вы хотите обработать более 400 твитов, вы можете настроить триггер для запуска кода каждую минуту, и скрипт будет автоматически обрабатывать 400 дополнительных твитов при каждом запуске. Вот как настроить этот триггер:

  1. Откройте редактор скриптов и нажмите Изменить → Триггеры текущего проекта. Откроется страница настройки триггера для этого конкретного скрипта в Центре разработчиков G Suite.
  2. Нажмите + Добавить триггер в правом нижнем углу.
  3. Выполните следующие действия, чтобы создать управляемый по времени триггер для функции markSentiment:

4. После того, как вы нажмете «Сохранить», ваш скрипт будет запускаться раз в минуту, обрабатывая до 400 твитов при каждом выполнении.

5. ВАЖНО. После того, как прогнозы будут выполнены для всего набора данных, вам необходимо удалить триггер. Вы можете сделать это, нажав на три точки рядом с триггером в Центре разработчиков G Suite и выбрав Удалить.

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

Дальнейшие действия

Я так взволнован возможностями, которые строительные блоки Google Cloud AI (включая предварительно обученные API машинного обучения и продукты AutoML) предоставляют пользователям Таблиц! Если вы не пытались следовать этому руководству, я рекомендую вам попробовать. Весь код, который вам нужен, указан в этом посте.

Поделитесь своим опытом и идеями о других способах использования машинного обучения из Таблиц, написав в Twitter @presactlyalicia или в разделе комментариев ниже.