- PVSM.RU - https://www.pvsm.ru -

Пишем приложение для анализа твитов в real-time режиме за 30 минут

На самом деле, еще меньше. Основной инструмент для написания такого приложения — Node-RED в Bluemix

Пишем приложение для анализа твитов в real-time режиме за 30 минут - 1

Несколько лет назад наша компания разработала инструмент Node-RED [1]. Это open-source сервис, который помогает создавать приложения на модульной основе — нужно просто соединять готовые блоки. В качестве блоков выступают не только программные модули, но и различные устройства, веб-API и онлайн-службы. Для работы с Node-RED нужны базовые знания HTML, CSS и JavaScript. Конечно, чем глубже ваши знания, тем более совершенное приложение можно будет создать.

Сегодня в качестве примера мы покажем, как на основе Node-RED можно создать приложения для анализа твитов заданной тематики в режиме реального времени (первоисточник — англоязычная статья [2]). Тематика (ключевое слово) — не единственный критерий, искать можно и по автору или хэштегу. Но в примере используется именно поиск по ключевым словам. Кроме темы, приложение, которое мы напишем, будет способно оценивать эмоциональную окраску сообщения. Искать будем только негативные твиты определенной тематики. Нужные сообщения будут показываться в течение пары секунд после того, как их кто-то напишет.

Как все это будет выглядеть?

Ну, например, мы ищем отзывы о ресторане «Jim’s fries». Помним, искать будем только негативные отзывы. Например, такие:
«Jim’s fries это худший ресторан из тех, где я был! И карточкой расплатиться не дали! Никому не советую!»

Хочу такое приложение, как его написать?

Пишем приложение для анализа твитов в real-time режиме за 30 минут - 2

Итак, для того, чтобы создать подобный инструмент, нужно изначально открыть редактор Node-RED. Затем мы будем создавать приложение, перетаскивая нужные модули (это предварительно прописанные части кода, выполняющие желаемое действие) из панели слева в редакторе Node-RED в центральное поле редактора. Здесь и будем собирать наш алгоритм. Для того, чтобы соединять модули, нужно нажимать на точку выхода одного модуля, подтягивая ее к точке входа другого.

Каждый модуль должен получить определенные параметры. Для их назначения нажимаем на модуль дважды и заполняем появляющуюся форму.

Пишем приложение для анализа твитов в real-time режиме за 30 минут - 3

Совет: если параметров для поиска несколько, добавьте их через запятую и без пробелов. Запятая=ИЛИ, пробел=И. Программный интерфейс Твиттера не выдаст 100% всех твитов. Твиты тех, на кого вы подписаны будут включать их ретвиты и то, что добавлено в избранное.
Как только нужные действия выполнены, нужно нажать кнопку запуска приложения (Deploy). Кнопка размещается в правом верхнем углу редактора. Если все правильно, все начинает работать сразу, без «доводки».

А вот и приложение

Пишем приложение для анализа твитов в real-time режиме за 30 минут - 4
Искать твит –> Получить значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА –> Отладить значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА + Проанализировать уровень негатива –> Отправить сообщение по e-mail, если значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА меньше либо равно заданному

Написанное в качестве примера приложение Node-RED включает лишь пять модулей. Первый — анализирует Twitter на предмет твитов с нужными ключевыми словами (они задаются как раз в параметрах модуля). Для того, чтобы все это работало, нужно задать свои учетные данные для Twitter. В поле For добавляем имя пользователя сервиса микроблогов, чьи твиты будем искать, хэштеги, плюс ключевые слова. В текущем примере использовался хэштег #testnegative.

Покончив с первым модулем, переходим ко второму. Здесь мы добавляем анализ эмоциональной окраски твита, соединяя вход второго модуля с выходом первого. Как уже говорилось выше, мы будем искать только лишь твиты с негативной окраской. Но можно искать и положительные твиты, почему нет? Эмоциональность сообщения оценивается по шкале от -5 до 5, где -5 – это очень негативный твит, 0 – нейтральный и 5 – чрезвычайно положительный отзыв.

Следующим идет модуль «отладить» для записи присвоенных значений эмоциональной окраски твита в лог Node-RED. Если нет времени, можно и не использовать такой модуль, но в этом случае возможны определенного рода сбои. В качестве примера приведем следующие типы отзывов:

• Значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА 4: #testnegative Ресторан Jim’s fries потрясающий!
• Значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА -3: #testnegative Jim’s fries это худший ресторан из тех, где я был!
• Значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА -4: #testnegative Jim’s fries это худший ресторан из тех, где я был! И карточкой расплатиться не дали!
• Значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА -5: #testnegative Jim’s fries это худший ресторан из тех, где я был! И карточкой расплатиться не дали! Никому не советую!
• Значение ЭМОЦИОНАЛЬНАЯ ОКРАСКА -8: #testnegative Jim’s fries это худший ресторан из тех, где я был! И карточкой расплатиться не дали! Никому не советую! Ужасный сервис!

Уже после этого используем модуль выбора, где отсеиваются все отзывы с эмоциональной окраской выше или равной -5. Модуль получил название «Проанализировать уровень негатива».

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

Пишем приложение для анализа твитов в real-time режиме за 30 минут - 5

В качестве вывода

Среда Node-RED в Bluemix крайне проста и дружественна пользователю. Для создания приложения особые познания в программировании не нужны. Конечно, необходимы базовые знания и логика, но больше ничего не требуется. Кроме, разве что, задачи, которую требуется решить. Создаваемые приложения могут быть гораздо более сложными, чем наш пример. Вот еще один пример, где в Node-RED создается функциональное приложение для управления smart-устройствами дома:

Пишем приложение для анализа твитов в real-time режиме за 30 минут - 6

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

Отдельно стоит подчеркнуть, что вся работа по созданию приложения занимает считанные минуты. Модифицирование приложения занимает еще меньше времени – здесь счет уже на секунды.

Ну а для того, чтобы получить дополнительную информацию по среде Node-RED и Bluemix, предлагаем принять участие в вебинаре, который состоится уже 23 июня [3]. Приходите, будет интересно :)

Автор: IBM

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/twitter/135305

Ссылки в тексте:

[1] Node-RED: http://nodered.org/

[2] англоязычная статья: https://urldefense.proofpoint.com/v2/url?u=https-3A__developer.ibm.com_bluemix_2016_05_23_messaging-2Dbots-2Dare-2Dnext-2Dbig-2Dwave-2Din-2Dmobile_&d=CwIDaQ&c=4JOzdpIlQcN5fHQL_PMhCQ&r=dYQ1dN9JyaHbIx8b2LR8d9QB4zhyhlO3SYjqkVqAFFY&m=mMVEcrTB3mvpswXwccch331-0VnWbyU4JmWCM810Rmc&s=4rxl3IcPh4G6pehIhaxP2-i4dxIjWoFTpniNlg7NHU4&e=

[3] вебинаре, который состоится уже 23 июня: https://urldefense.proofpoint.com/v2/url?u=http-3A__pirit.biz_ibm-2Dbluemix-2Dwebinar_-3Futm-5Fsource-3Dhabr-26utm-5Fmedium-3Darticle1-26utm-5Fcampaign-3DBlueMix&d=CwIDaQ&c=4JOzdpIlQcN5fHQL_PMhCQ&r=dYQ1dN9JyaHbIx8b2LR8d9QB4zhyhlO3SYjqkVqAFFY&m=SLtfuTR9ZQyB4l0XwYMU8TDddtlw487RvexbuLd7ZT4&s=2MLxxRpA5be9nDfr-1fW0cIUGedB6G59OH4hHY9qyo8&e=

[4] Источник: https://habrahabr.ru/post/303442/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best