Cognitive Services в Power BI

Tags: Power BI, machine learning, ИИ

Microsoft Cognitive services - это коллекции API и сервисов, которые помогают разработчикам создавать более интеллектуальные приложения и отчеты. Используя Cognitive services, разработчики могут добавлять в свои приложения такие интеллектуальные функции, как распознавание лиц, распознавание эмоций, текстовая аналитика и т. д.

Обзор Cognitive services

Существуют различные когнитивные услуги, которые можно использовать, получая URL-адрес веб-службы и ключ. Чтобы проверить доступные службы, вам необходимо перейти на этот сайт. Существует пять основных категорий для решения бизнес-задач: видение (Vision), знание (Knowledge), язык (Language), речь (Speech,) и поиск (Search).

.

 

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

Другие службы в категории Language - это перевод текста, определение основных намерений, объектов в диалогах и текстах. Существует возможность комбинировать эти функции. Например, есть возможность интегрировать службу Language Understanding с сервисом Speech для мгновенной речевой обработки Intent и, наконец, с помощью приложения Bot для разработки сложного приложения.

В этом посте мы посмотрим, как мы можем выполнять текстовую аналитику с целью выявления ключевого слова в отзывах клиентов, насколько положительная обратная связь и определение языка в Power BI с помощью служб текстовой аналитики. Текстовая аналитика является одной из служб в категории Language

Во-первых, нам нужно настроить среду для использования когнитивных услуг. Чтобы использовать когнитивные услуги, вы можете использовать подписку для бесплатной пробной версии. Пробные услуги бесплатны в течение семи дней и не нуждаются в кредитной карте. Другой способ заключается в использовании бесплатной учетной записи Azure в течение месяца, которая является бесплатной и предоставляет кредит на Azure на 280 долларов, и все данные и настройка будут сохранены. И последний подход заключается в использовании учетной записи Azure.

Чтобы настроить когнитивные услуги в Azure, вам необходимо войти в свою учетную запись Azure и выполнить поиск необходимых услуг.

 

После входа в Azure Portal вам необходимо создать службы аналитики текста. Чтобы создать службу Text Analytics, вам необходимо создать новую услугу в Azure, щелкнув левую верхнюю часть страницы. На новой странице будут показаны основные категории услуг. AI и машинное обучение являются одной из основных услуг в Azure, нажмите на AI + Machine Learning, чтобы увидеть доступные сервисы. Как вы можете видеть на рисунке ниже, компьютерное зрение (Computer vision), распознавание лиц (Face recognition), текстовая аналитика (Text Analytics), понимание языка (Language Understanding), речь переводчика (Translator Speech), поиск Bing (Bing Search) и поиск Azure ( Azure Search) - основные службы для обучения AI и Machine.

.

Не все собранные данные относятся к числам и структурированным данным. Чтобы получить более целостную перспективу относительно клиента, продуктов и т. д., сбор и анализ текста может повысить производительность компании. Text Analytics - это процесс преобразования неструктурированных текстовых данных в значимые данные для понимания потребностей клиентов и обратной связи. Первый шаг - настроить службу текстовой аналитики на Azure Portal.

Для этой услуги существует различный уровень цен. Первый - это бесплатный уровень, который позволяет пользователям применять услугу Text Analytics по 5 тыс. строк данных за месяц.

После создания службы Text Analytics нам нужно получить URL-адрес API и доступ к ключам из созданной службы.

После создания сервиса на Azure Portal нам нужно вызвать его на рабочем столе Power BI и применить его к имеющимся там данным.

Набор данных

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

Первым шагом является открытие рабочего стола Power BI и загрузка набора данных в виде файла Text/CSV в Power BI. Затем вместо того, чтобы загружать данные, нажмите Edit, чтобы перейти к среде Power Query для преобразования данных.

Сначала мы собираемся объединить столбцы Subject и Comment в Power Query с помощью Merge Column во вкладке Add Column.

После создания нового столбца нам нужно переименовать его в Customer Feedback.

Создание функции текстовой аналитики

Существует возможность создать функцию в Power Query, которая применяет Text Analytics к определенному столбцу в Power Query. Чтобы создать функцию, нам нужно щелкнуть по пробелу в запросе в левой части главной страницы и выбрать опцию Blank Query.



Переименуйте созданный запрос в Sentiment Analytics. Следующий шаг - преобразовать Blank Query в функцию. Для этого нам нужно получить доступ к M-запросу по нему, нажав на вкладку Home Tab, а затем Advanced Editor. Существует редактор, в котором мы собираемся написать некоторые M-скрипты и изменить запрос на функцию.

Следующим шагом будет добавление следующего кода:

 

(text) => let

apikey   = “<API Key>”,

endpoint = “https://<Location of You Azure>.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment”,

jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),

jsonbody = “{ documents: [ { language: “”en””, id: “”0″”, text: ” & jsontext & ” } ] }”,

bytesbody   = Text.ToBinary(jsonbody),

headers = [#”Ocp-Apim-Subscription-Key” = apikey],

bytesresp   = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),

jsonresp = Json.Document(bytesresp),

sentiment   = jsonresp[documents]{0}[score]

in  sentiment

Как видно из приведенного выше кода, первая строка содержит ввод функции, являющийся текстом. В строке 2 ключ API, полученный от Azure Service, нужно вставить здесь. В третьей строке необходимо указать требуемый URL для подключения к API. Как вы можете видеть в конце URL-адреса, была показана служба, которую мы будем использовать с когнитивной службы. В этом примере мы используем анализ настроений. Из строки 4-11 требуются коды для подключения к когнитивной службе и получения результата в формате JSON. Последняя строка - это столбец результатов, который показывает оценку настроения для каждого комментария.

Просто замените вышеприведенный код на предыдущий и нажмите Ok. Запрос Blank изменится на тип функции, и появится страница с текстовым полем. Вы можете проверить это, написав какое-то предложение, например “погода сегодня такая приятная” и нажмите на нижнюю часть Invoke, чтобы увидеть результат.

 

Как вы можете видеть на рисунке ниже, результат анализа настроений составляет 0,92.

Результатом анализа настроений является число от 0 до 1. Чем ближе к 1, тем положительнее комментарий, если же значение стремится к нулю, то это означает, что обратная связь отрицательна.

На последнем этапе мы можем применить эту функцию к Customer Feedback Column. Нажмите на набор данных Fabrikam, затем щелкните вкладку  Add Column и затем Invoke Custom Function. На новой странице выберите подходящее имя для нового столбца, затем выберите функцию в раскрывающемся списке, затем в последнем раскрывающемся списке выберите столбец, который вы хотите применить функцию.

Новый столбец будет показан в конце обзора набора данных, который показывает числовой результат для анализа настроений. Вы можете щелкнуть вкладку Home Tab, Close и Apply, чтобы увидеть результат в Power BI Desktop.

Процесс использования других сервисов, таких как Language Detection и Topic Extraction - такой же. Только конечная точка URL будет немного изменяться. Для определения языка URL-адрес конечной точки будет изменяться следующим образом:

endpoint = “https://<Location of You Azure>.api.cognitive.microsoft.com/text/analytics/v2.0/languages”,

а для Keyword extraction, конечная точка URL будет выглядеть так:

endpoint = “https://<Location of You Azure>.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases”

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

language = jsonresp[documents]{0}[detectedLanguages]{0}[name]

in  language

а для ключевого слова будет следующее:

keyphrases  = Text.Lower(Text.Combine(jsonresp[documents]{0}[keyPhrases], “, “))

in  keyphrases

No Comments

Add a Comment