В этом руководстве мы рассмотрим сервис Watson Personality Insights. Я предполагаю, что у вас уже есть учетная запись IBM Cloud. Если нет, воспользуйтесь моим руководством Начало работы с IBM Watson, чтобы создать его. Это довольно просто.

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

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

Давайте запачкаем руки кодом. В этом руководстве мы создадим простое консольное приложение, которое принимает некоторый текст от пользователя и возвращает профиль личности.

Первый шаг — создать службу Personality Insights. Посетите IBM Cloud Catalog, выберите Personality Insights и создайте сервис. Затем создайте учетные данные службы, и мы готовы к работе! Если у вас возникли проблемы с созданием службы и созданием учетных данных, посетите мой учебник Начало работы с IBM Watson.

Чтобы начать использовать Node.js SDK для IBM Watson, откройте терминал (или командную строку), перейдите в папку проекта и запустите npm i watson-developer-cloud — save. Вы должны были добавить watson-developer-cloud в свой package.json файл.

Как только это будет сделано, вы можете написать следующий код в свой проект (сохранить файл как personalityInsights.js), чтобы использовать службу Personality Insights. Обратите внимание, что я загружаю свои учетные данные из файла .env и использую модуль dotenv. Вы можете запустить npm i dotenv --save, чтобы добавить это в свой файл package.json и иметь возможность использовать его в своем проекте. Теперь ваш код должен выглядеть так:

Теперь пришло время позвонить в сервис и отправить ему текст. Чтобы получить более подробную информацию о том, как вызвать сервис и какие опции у вас есть, вы можете посетить сервис Документация по API. Это лаконично.

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

теперь запустите node personalityInsights в своем терминале, чтобы запустить приложение. Вы должны увидеть что-то вроде этого:

Затем введите текст, который Watson должен проанализировать, и нажмите Enter. Обратите внимание, что Watson требуется достаточное количество входных данных (обычно не менее 100 слов), чтобы провести надлежащий анализ. Если вы не хотите печатать, вы можете скопировать/вставить часть одного из ваших сообщений в блоге. Более того, вы можете использовать следующий текст (это отрывок из дебатов президента Барака Обамы в 2012 году):

And for us to be able to make sure that they've got that opportunity and they can walk through that door, that is vitally important not just to those kids. It's how we're going to grow this economy over the long term. You've done a great job. Well, first of all, I think Governor Romney's going to have a busy first day, because he's also going to repeal Obamacare, which will not be very popular among Democrats as you're sitting down with them. But, look, my philosophy has been, I will take ideas from anybody, Democrat or Republican, as long as they're advancing the cause of making middle-class families stronger and giving ladders of opportunity to the middle class. That's how we cut taxes for middle- class families and small businesses. That's how we cut a trillion dollars of spending that wasn't advancing that cause. That's how we signed three trade deals into law that are helping us to double our exports and sell
more American products around the world. That's how we repealed "don't ask/don't tell." 

Вы должны получить такой ответ в формате JSON:

Не волнуйтесь, если мы не получим точно такие же результаты. Я не использовал текст. Ржу не могу.

Наш результат представляет собой комбинацию четырех основных частей:

  • Результаты Личность основаны на личностных чертах и ​​аспектах Большой пятерки.
  • Потребности, описывающие на высоком уровне те аспекты продукта, которые могут найти отклик у автора вводимого текста.
  • Ценности, которые описывают мотивирующие факторы, влияющие на принятие решений автором.
  • Потребительские предпочтения, указывающие на вероятность того, что автор отдаст предпочтение различным продуктам, услугам и видам деятельности.

Вы можете получить гораздо больше информации из официальной документации.

Помимо этого, есть модуль npm, который дает вам текстовый анализ всего этого ответа JSON от API Personality Insights. Давайте добавим это в наш проект.

Вернитесь к своему терминалу и запустите npm i personality-text-summary --save. Это должно добавить модуль в ваш файл package.json. Следующий шаг — обновить наш код, чтобы мы могли его использовать. После обновления у нас должно получиться следующее:

В строках 8–10 мы вызываем службу, которая делает текстовую сводку. Мы создали функцию в строке 40, которая принимает ответ JSON от Watson, а затем выдает в результате текстовую сводку. Затем мы вызвали эту функцию в строке 33.

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

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

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

Я буду работать над некоторыми базовыми приложениями в следующих постах, так что приготовьтесь к интересной поездке!

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

Ой! Пока я не забыл, вы можете получить доступ к исходному коду этого приложения на Github.

Также подписывайтесь на меня в Твиттере, если вы хотите отправить DM.