Cognitive Services & LUIS Massimo Bonanni SR Consultant – EMEA Modern Apps Domain – Microsoft @massimobonanni massimo.bonanni@microsoft.com
Agenda Cognitive Services Language Understanding Intelligent Service (LUIS) Perchè Cognitive Services? Cognitive Services overview Overview Come iniziare Creare una nuova app LUIS Computer Vision API overview Intenti, Entità, Espressioni Demo Training del modello Pubblicare il servizio REST E, poi.......
Cognitive Services
Perchè Microsoft Cognitive Services? Microsoft Build 2016 11/12/2017 7:42 AM Perchè Microsoft Cognitive Services? Facile Flessibile Testato Piattaforma composta da API REST Facile da utilizzare: poche line di codice. Utilizzabile con qualsiasi piattaforma di sviluppo Ampia offerta di servizi in continua crescita Costruiti da esperti di Microsoft Research, Bing e Azure Machine Learning. Documentazione, codice di esempio e contributo della community GET A KEY BUILD © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Microsoft Cognitive Services Dai alle tue app un lato umano!! Microsoft Build 2016 11/12/2017 7:42 AM Cognitive Services API Microsoft Cognitive Services Dai alle tue app un lato umano!! Vision Computer Vision | Emotion | Face | Video Speech Bing Speech | Custom Recognition | Speaker Recognition Language Bing Spell Check | Language Understanding Linguistic Analysis | Text Analytics | Translator | Web Language Model Knowledge Academic Knowledge | Entity Linking | Knowledge Exploration | Recommendations Search Bing Autosuggest | Bing Image Search | Bing News Search | Bing Video Search | Bing Web Search © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Rilevare, identificare, analizzare volti all’interno delle immagini. 11/12/2017 7:42 AM Vision Computer Vision API Ricavare informazioni utili da immagini (tag, descrizione, colore, etc., etc.). Face API Rilevare, identificare, analizzare volti all’interno delle immagini. Emotion API Eseguire il riconoscimento delle emozioni all’interno di immagini e foto. Video API Motion detection, face detection, stabilizzazione, generazione di anteprime e analisi dei frame. Content Moderator Moderare testo, immagini e video con possibilità di intervenire manualmente nei risultati.
Speech Bing Speech API Custom Recognition Intelligent Service (CRIS) 11/12/2017 7:42 AM Speech Bing Speech API Conversione tra testo e parlato e viceversa. Comprensione degli intenti. Speaker Recognition API Identificare uno speaker in un file audio o utilizzare l’audio come un mezzo per l'autenticazione con l'API Speaker Recognition. Custom Recognition Intelligent Service (CRIS) Funzionalità di Speech Recognition personalizzabili.
Language Bing Spell Check API Web Language Model API 11/12/2017 7:42 AM Language Bing Spell Check API Correzione ortografica e di digitazione del testo. Web Language Model API Automatizza un'ampia gamma di attività standard di elaborazione del linguaggio naturale tramite API di modellazione del linguaggio. Linguistic Analysis API Analisi linguistica del testo. Language Understanding Intelligent Service (LUIS) Comprensione del linguaggio e degli intenti. Text Analytics API Rileva sentimenti, frasi chiavi, argomenti e lingua di un testo. Translator API Traduzione di audio e testo con API REST.
Knowledge Academic Knowledge API Knowledge Exploration Service 11/12/2017 7:42 AM Knowledge Academic Knowledge API Esplorare le relazioni esistenti tra scritti accademici, libri, riviste e autori. Knowledge Exploration Service Aggiungere funzionalità di ricerca di knowledge base attraverso dati strutturati e linguaggio naturale. Entity Linking Service Individuazione “entità” all’interno del testo con possibilità di avere collegamenti con esse. Recommendations API Fornire consigli sui prodotti personalizzati per il vostro cliente e migliorare le vendite nel vostro negozio QnA Maker QnA Maker estrae tutte le possibili coppie di domande e risposte da contenuti forniti dall'utente - URL frequenti, documenti e contenuti editoriali.
Search Bing Web Search API Bing Image Search API Bing Video Search API 11/12/2017 7:42 AM Search Bing Web Search API Fornire funzionalità di ricerca di siti web, immagini, video, notizie. Bing Autosuggest API Fornire suggerimenti automatizzati per le ricerche. Bing Image Search API Aggiungere ricerca di immagini all’interno delle applicazioni o dei siti web. Bing Video Search API Aggiungere funzionalità di ricerca di video con possibilità di visualizzare anteprima e dati di tendenza. Bing News Search API Aggiungere funzionalità di ricerca di notizie.
Come iniziare https://www.microsoft.com/cognitive-services/
Come iniziare Numero di transazioni disponibili nella versione free Quote utilizzate Chiavi per l’utilizzo del servizio Costi su https://aka.ms/cognitivecosts
DEMO Portal Overview
Computer Vision API Utilizzando le API di Computer Vision è possibile: analizzare e filtrare contenuti visivi generando descrizioni e tag, utilizzare il riconoscimento ottico dei caratteri per identificare il testo trovato in immagini, distinguere le combinazioni di colori, creare miniature a partire da immagini complete, riconoscere la presenza di facce, riconoscere celebrità.
Condizioni di utilizzo Free (default quando ci registriamo): 5.000 chiamate mensili, 20 al minuto (terminate le quali otteniamo un errore HTTP 439, “TOO MANY CALLS”) Gratuito!!! Ottimo per fare prove!!!! Standard: 10 transazioni al secondo 1.50$ per 1000 transazioni Piano Descrizione Prezzo Free 10,000 transazioni al mese, 20 al minuto Standard 10 transazioni al secondo (TPS) $1.50 per 1000 transazioni
DEMO Computer Vision API
See4Me Pensato per aiutare le persone con disabilità visiva Vision API Emotion API Speech API Translator API See4Me Pensato per aiutare le persone con disabilità visiva Un’applicazione per “vedere” il mondo che ci circonda Utilizza i servizi Vision, Emotion e Bing Translator per “descrivere” immagini, persone ed emozioni utilizzando il linguaggio dell’utente «Point and Click» Open-Source su GitHub App cross-platform con Xamarin Windows, Android, iOS Cross-experience «Gira» anche su Windows 10 IoT Core Intel Joule 570x https://github.com/DotNetToscana/See4Me
LUIS Language Understanding Intelligent Service
Language Understanding Intelligence Service (LUIS) Un servizio di Cognitive Services che fornisce agli sviluppatori un modo semplice per creare modelli di linguaggio da utilizzare nelle applicazioni per comprendere comandi dell'utente. Language Understanding Intelligence Service (LUIS) “Addestrare” il modello tramite esempi Pubblicare il proprio servizio HTTP da utilizzare nelle applicazioni Creare il proprio modello Gestire ed evolvere il modello in maniera semplice
Overview Uno dei problemi chiave nelle interazioni uomo-computer è la capacità del computer di capire ciò che una persona vuole, e di trovare i pezzi di informazioni che sono rilevanti per il suo intento. Per esempio, in una applicazione che visualizza delle news, l’utente potrebbe dire «Trovami notizie su aziende di realtà virtuale», nel qual caso vi è l'intenzione (intento) di «Trovare notizie», e il tema «società di realtà virtuale» come informazione essenziale (entità). LUIS è stato progettato per consentire di implementare rapidamente servizi REST in grado di comprendere intenti e capire entità presenti in una frase. LUIS consente di progettare l'insieme delle intenzioni e le entità che sono rilevanti per l'applicazione, e poi guida l'utente attraverso il processo di costruzione di un sistema di comprensione del linguaggio.
Overview Una volta che l'applicazione viene distribuita e gli utenti cominciano ad interagire con essa, LUIS permette, inoltre, di utilizzare una sorta di apprendimento attivo per migliorare se stesso. Nel processo di apprendimento attivo, LUIS identifica le interazioni non gestite e permette di «etichettarle» secondo le intenzioni e le entità. In questo modo LUIS ci permette di Migliorare costantemente il sistema; Concentrarsi sulle sole affermazioni importanti per l’utente minimizzando il tempo speso per il training del sistema stesso
Creare una nuova app Per iniziare ad utilizzare LUIS è necessario registrarsi su http://www.luis.ai/ Per creare e rendere disponibile una app LUIS (di fatto un REST Service) è necessario Creare una nuova App nel portale Definire intenti ed entità Definire le espressioni comprese dall’app Eseguire il training del modello Pubblicare il servizio Utilizzare il servizio con chiamate REST
Scenari di utilizzo IoT Chat bots Assistente Virtuale LUIS può essere utilizzato in scenari IoT, come ad esempio attivazione vocale di luci, vendor machine, scenari di facial recognition per accessi e altri. IoT LUIS permette di essere integrato con il Bot Framework di di Microsoft e poter essere utilizzato all’interno di Slack, Skype ed alter piattaforme di messaging. Chat bots LUIS utilizza dei modelli pre-compilati utilizzati in Bing e Cortana che permettono agli sviluppatori di aggiungere facilmente le proprie funzionalità di assistente virtuale. Assistente Virtuale
DEMO Creare una nuova app «MyBank»
Intenti Definisce una intenzione catalogata all’interno del modello, ad esempio «Vorrei una pizza margherita» potrebbe essere l’intento «MakeOrder» in una applicazione di gestione degli ordini per una pizzeria Indentificato da una label (es. «MakeOrder») un elenco di espressioni (es. «Voglio una margherita», «Ordino una capricciosa!», etc., etc.) eventuali entità («margherita», «capricciosa», etc., etc.)
Entità Informazione importante all’interno di intento, ad esempio «margherita» potrebbe essere l’entità «PizzaType» all’interno dell’intento «MakeOrder» Possono esistere più entità per ogni label, ad esempio «PizzaType» potrebbe avere «margherita», «capricciosa», etc., etc. Le entità possono essere: Generiche: definisce di fatto solo il tipo Gerarchiche: definisce il tipo e delle entità specifiche (ad esempio PizzaType::Margherita) Predefinite: sono entità predefinite (come, ad esempio, date, percentuali, etc., etc.) Possono essere definite fino a 10 entità di ogni tipo per ogni applicazione
Espressioni Espressione: frase che può essere associata ad un intento e può contenere delle entity Ad esempio «vorrei ordinare una margherita e una capricciosa» è un espressione che risponde all’intento «MakeOrder» contiene due entità di «PizzaType» ed esattamente «margherita» e «capriciosa»
Training del modello Quando si esegue il training di un modello, LUIS prende in considerazione intenti, entità e espressioni e tenta di generalizzarli (sfruttando algoritmi di machine learning) per sviluppare un modello di riconoscimento. Tecnicamente, LUIS utilizza classificatori di regressione logistica per determinare intenti, e campi aleatori condizionali (CRF) per determinare le entità. Per eseguire il training del modello è sufficiente fare clic sul pulsante nell'angolo in basso a sinistra della pagina. Il training avviene anche automaticamente con intervalli regolari.
Pubblicazione del servizio REST Api Il comando di pubblicazione genera un endpoint HTTP di tipo REST che consente di interpretare frasi di testo. La finestra di dialogo di pubblicazione consente di eseguire subito un test. URL di test (GET)
Condizioni di utilizzo Free (default quando ci registriamo): 10.000 transazioni mensili (terminate le quali otteniamo un errore HTTP 439, “TOO MANY CALLS”) Gratuito!!! Ottimo per fare prove!!!! Standard: 10 transazioni al secondo 0.75$ per 1000 transazioni Piano Descrizione Prezzo Free 10,000 transazioni al mese Standard 10 transazioni al secondo $0.75 per 1000 transazioni
DEMO MyPizza
Reference – Cognitive Services Cognitive Services Web Site https://www.microsoft.com/cognitive-services SDK & Samples https://www.microsoft.com/cognitive-services/en-us/SDK-Sample Documentation https://www.microsoft.com/cognitive-services/en-us/documentation Stack Overflow https://stackoverflow.com/questions/tagged/microsoft-cognitive UserVoice https://cognitive.uservoice.com/ Pricing https://www.microsoft.com/cognitive-services/en-us/pricing Videos https://myignite.microsoft.com/videos/49997 https://myignite.microsoft.com/videos/2828 dotNet{podcast} - #119 Cognitive Services http://dotnetpodcast.com/show/card/119
Reference – LUIS LUIS Web Site Documentation https://www.luis.ai/ https://www.luis.ai/Help