Наверняка все наши читатели уже слышали о машинном обучении и знают, чем эта дисциплина может быть им полезна. Но если вам по какой-то причине не доводилось сталкиваться с этим термином, перейдите по ссылке на страницу Википедии и прочтите статью о машинном обучении: https://en.wikipedia.org/wiki/Machine_learning.
Разумеется, речь там идет об искусственном интеллекте и тому подобных предметах, о которых у нас нет четкого представления. Но помимо прочего в статье говорится следующее:
«Машинное обучение тесно связано с вычислительной статистикой, которая также исследует проблемы составления прогнозов с помощью компьютеров. Оно связано и с математической оптимизацией — дисциплиной, обеспечивающей эту сферу исследований методами, теоретическими построениями и областями применения. Машинное обучение иногда объединяют с интеллектуальным анализом данных; при этом последнее из перечисленных направлений, известное как неконтролируемое обучение, предполагает больший акцент на эксплоративный анализ данных. Машинное обучение тоже может быть неконтролируемым и использоваться с целью изучения и установления базовых поведенческих профилей для различных объектов с последующим выявлением содержательных аномалий.
В сфере анализа данных машинное обучение представляет собой метод, применяемый для построения сложных моделей и алгоритмов, на основании которых можно строить прогнозы; в области коммерции такое его применение известно как прогнозирующая аналитика. Эти аналитические модели дают возможность исследователям, специализирующимся на изучении данных ученым, инженерам и аналитикам получать надежные, отвечающие требованию воспроизводимости решения и результаты, а также выявлять скрытые закономерности с опорой на исторические отношения и тенденции, обнаруживаемые в данных».
Отсюда можно сделать вывод, что аналитические модели могут помочь нам в выполнении работы, которой мы занимаемся каждый день. Ведь часто одна из самых сложных проблем сводится к тому, чтобы определить отношения между задачами, элементами содержимого и даже между группами людей. Поскольку машинное обучение базируется на математических основах, эта дисциплина обладает более широкими возможностями в данной сфере и способна решать задачи с высоким быстродействием.
Наряду с другими поставщиками миллионы выделенных для проведения научно-исследовательских работ долларов затрачивает на разработку затронутой нами темы и корпорация Microsoft. Какое же отношение имеет эта тема к проблемам разработки Office 365 и SharePoint?
В число компонентов бизнес-платформы Office 365 входит Office Graph, интеллектуальная виртуальная структура, применяющая машинное обучение для установления взаимосвязей между людьми, объектами и контентом (см. материалы по адресу: https://graph.microsoft.io/en-us/ и https://graph.microsoft.io/en-us/graph-explorer).
Однако под внешней оболочкой базовый продукт Azure Stack оперирует целым набором так называемых когнитивных служб, которые вы можете взять на вооружение в ходе разработки. Чтобы воспользоваться этими службами, вам нужно прежде всего зарегистрироваться на портале Azure Management. Для этого требуется зайти на сайт https://portal.azure.com и найти там раздел Cognitive Services (экран 1).
Экран 1. Раздел Cognitive Services на портале Azure Management |
Далее щелчком мыши добавьте новую службу, после чего вам будет предложен ряд настроек для вашего экземпляра данной службы (экран 2).
Экран 2. Настройки экземпляра службы |
Для настройки API Type мы выберем значение Text Analytics API (экран 3). И разумеется, для тестирования нужно выбрать настройку FREE (экран 4).
Экран 3. Настройка API Type для службы аналитики |
Экран 4. Настройка режима использования службы |
Когда все это будет установлено в вашей подписке абонента Azure Tenant, вы увидите, что именованный экземпляр стал доступным. Щелкнув на нем, пользователь попадает на экран свойств и управления, как показано на экране 5.
Экран 5. Окно свойств и управления экземпляром службы |
На данном этапе обратите внимание на раздел Endpoint и вкладку Keys, где первое место в списке занимает элемент Key. Оба элемента пригодятся вам, когда вы будете использовать данную службу.
После выполнения всех процедур установки мы можем создать демонстрационную консоль на языке C# с использованием минимального фрагмента кода. Для достижения этой цели мы создадим стандартное приложение «консоль Windows» и сформируем две строковые константы: одна будет содержать указатель API URL, а другая — объект Key, который нам потребуется для обращения к службе (экран 6).
Экран 6. Создание демонстрационной консоли |
Теперь нам нужно добавить метод, обеспечивающий непосредственный вызов службы. Для этого необходимо обратиться к объекту HttpClient и передать с его помощью определенные заголовки, такие как ключ подписки, полученный с сайта Azure. Здесь важно отметить, что нам необходимо также передать непосредственную конечную точку, к которой мы собираемся обращаться, так что для Text Analytics мы используем text/analytics/v2.0/keyPhrases (экран 7).
Экран 7. Указание конечной точки |
Внутри кода вы увидите компонент byteData, который нужно заполнить нашим текстом, или содержимое документа, который мы хотим отправить службе. В данном примере я использовал приведенные здесь параграфы, преобразованные в формат JSON (экран 8).
Экран 8. Пример передачи данных службе |
Чтобы консольное приложение работало, нам необходимо заэкранировать все спецсимволы, поэтому мое приложение выглядит так, как показано на экране 9.
Экран 9. Передача данных на консоль |
Последнее по порядку, но не по значению — это выбор метода, который непосредственно осуществляет обращение к веб-службе (экран 10).
Экран 10. Выбор метода обращения к веб-службе |
Итак, мы сделали все необходимое. Что же теперь будет?
После запуска консольное приложение передаст содержимое из файла JSON веб-службе, с помощью методов машинного обучения выполнит на этом материале анализ текста и, поскольку мы используем конечную точку Key Phrases, приложение, осуществив последовательный перебор всего контента, возвратит содержащиеся в тексте ключевые фразы (экран 11). На экране 12 показаны более удобочитаемые текстовые версии возвращенных значений.
Экран 11. Ключевые фразы |
Экран 12. Удобные для чтения текстовые версии возвращенных значений |
Все это означает, что код машинного обучения достаточно интеллектуален, чтобы выбрать важные фразы, содержащиеся в контенте. Действительно, в наше распоряжение поступает исключительно мощный инструмент. В данном случае я использовал его только в среде консольного приложения, но вы только подумайте, какие возможности откроются перед нами, когда мы объединим его с программными компонентами SharePoint, этого огромного хранилища документов.
Представьте себе цикл операций, который можно было бы реализовать с целью более эффективного тегирования и классификации контента, что облегчило бы поиск внутри этих данных (см. рисунок).
Рисунок. Цикл операций для разметки и классификации содержимого |
Как вы можете убедиться, этот процесс, будучи реализованным на сайте SharePoint, способен дать превосходные результаты: теоретически он может облегчить осуществление классификации в автоматическом режиме и уж во всяком случае — обогатить свойства содержимого. Если мы сумеем включить в процесс и другие конечные точки, то сможем дополнительно получить язык и «эмоциональность» контента. Кроме того, не следует забывать о возможностях, предоставляемых другими когнитивными службами, такими как Translation, Recommendation, Emotion, Moderation и даже Facial recognition. Совместное использование таких служб и предоставление допуска к ним в среде SharePoint пошло бы на пользу тем из нас, кто работает в группах и создает контент. Так что я всем рекомендую в процессе работы над решениями всегда держать в поле зрения эти новые типы служб.