Usare i Servizi cognitivi in PowerAppsUse Cognitive Services in PowerApps

Questo articolo illustra come creare un'app di base che usa l'API Analisi del testo di Servizi cognitivi Microsoft per analizzare il testo.This article shows you how to build a basic app that uses the Microsoft Cognitive Services Text Analytics API to analyze text. Verrà illustrato come configurare l'API Analisi del testo e come connettersi ad essa tramite il connettore Analisi del testo.We'll show you how to set up the Text Analytics API, and connect to it with the Text Analytics connector. Verrà quindi mostrato come creare un'app che chiama l'API.Then we'll show you how to create an app that calls the API.

Nota

Se non si ha familiarità con la creazione di app in PowerApps, è consigliabile leggere Creare un'app da zero prima di questo articolo.If you are new to building apps in PowerApps, we recommend reading Create an app from scratch before diving into this article.

Introduzione ai Servizi cognitivi MicrosoftIntroduction to Microsoft Cognitive Services

I Servizi cognitivi Microsoft sono un set di API, SDK e servizi disponibili per rendere le applicazioni più intelligenti, coinvolgenti e individuabili.Microsoft Cognitive Services are a set of APIs, SDKs, and services available to make your applications more intelligent, engaging, and discoverable. Questi servizi consentono di aggiungere con facilità alle applicazioni funzionalità intelligenti, ad esempio il rilevamento di emozioni e video, il riconoscimento facciale, vocale e visivo, oltre alla comprensione di discorsi e lingue.These services enable you to easily add intelligent features – such as emotion and video detection; facial, speech and vision recognition; and speech and language understanding – into your applications.

Questo articolo sarà incentrato sulla "comprensione della lingua" e sull'uso dell'API Analisi del testo.We'll focus on "language understanding" for this article, working with the Text Analytics API. Questa API consente di rilevare la valutazione, le frasi chiave, gli argomenti e la lingua dal testo.This API enables you to detect sentiment, key phrases, topics, and language from your text. È prima di tutto necessario provare una demo dell'API e quindi inscriversi per ottenere una versione di anteprima.Let's get started by trying out a demo of the API, then signing up for a preview version.

Provare l'API Analisi del testoTry out the Text Analytics API

È disponibile una demo online per l'API, che consente di verificarne il funzionamento e di esaminare il codice JSON restituito dal servizio.The API has an online demo – you can see how it works, and look at the JSON that the service returns.

  1. Passare alla pagina API Analisi del testo.Go to the Text Analytics API page.

  2. Nella sezione Provalo è possibile usare il testo di esempio o immettere testo personalizzato.In the See it in action section, use the example text, or enter your own text. Toccare o fare quindi clic su Analizzare.Then click or tap Analyze.

    Demo dell'API Analisi del testo

  3. La pagina mostra risultati formattati nella scheda Testo analizzato e la risposta JSON nella scheda JSON. JSON è un modo per rappresentare i dati. In questo caso si tratta dei dati restituiti dall'API Analisi del testo.The page shows formatted results on the Analyzed text tab, and the JSON response on the JSON tab. JSON is a way to represent data - in this case, data returned by the Text Analytics API.

Iscrizione per ottenere l'API Analisi del testoSign up for the Text Analytics API

L'API è disponibile come anteprima gratuita ed è associata a una sottoscrizione di Azure.The API is available as a free preview, and it is associated with an Azure subscription. L'API viene gestita tramite il portale di Azure.You manage the API through the Azure portal.

  1. Se non si ha già una sottoscrizione di Azure, iscriversi per ottenere una sottoscrizione gratuita.If you don't already have an Azure subscription, sign up for a free subscription.

  2. Accedere al proprio account Azure.Sign in to your Azure account.

  3. Passare al pannello Crea Servizi cognitivi nel portale di Azure.Go to the Create Cognitive Services blade in the Azure portal.

  4. Immettere le informazioni relative all'API Analisi del testo, come illustrato nell'immagine seguente.Enter information for the Text Analytics API, like in the following image. Selezionare il piano tariffario F0 (gratuito).Select the F0 (free) pricing tier.

    Creare l'API Analisi del testo

  5. Nell'angolo inferiore sinistro selezionare o toccare Crea.In the lower-left corner, click or tap Create.

  6. Nel Dashboard toccare o fare clic sull'API appena creata.On the Dashboard, click or tap the API that you just created.

    Dashboard di Azure

  7. Toccare o fare clic su Chiavi.Click or tap Keys.

    Menu di Azure

  8. Copiare una delle chiavi nella parte destra dello schermo.Copy one of the keys on the right of the screen. Questa chiave viene usata in un secondo momento, durante la creazione di una connessione all'API.You use this key later when you create a connection to the API.

    Chiavi API

Creare l'appBuild the app

Quando l'API Analisi del testo è attiva e in esecuzione, è possibile connettersi a essa da PowerApps e creare un'app che chiama l'API.Now that you have the Text Analytics API up and running, you connect to it from PowerApps, and build an app that calls the API. Si tratta di un'app a singola schermata che fornisce una funzionalità simile a quella della demo nella pagina API Analisi del testo.This is a single screen app that provides functionality similar to the demo on the Text Analytics API page. È possibile iniziare subito a crearla.Let's get started on building this!

Creare l'app e una connessioneCreate the app and add a connection

Viene creata prima di tutto un'app per telefono vuota e viene aggiunta una connessione con il connettore Analisi del testo.First, you create a blank phone app and add a connection with the Text Analytics connector. Se sono necessarie altre informazioni su queste attività, vedere Creare un'app da zero e Gestire le connessioni in PowerApps.If you need more information about these tasks, see Create an app from scratch and Manage your connections in PowerApps.

  1. In web.powerapps.com scegliere Inizia da zero > Icona dell'app per telefono (telefono) > Crea questa app.In web.powerapps.com, choose Start from blank > Phone app icon (phone) > Make this app.

    Inizia da zero

  2. Nel riquadro centrale di PowerApps Studio scegliere Connetti ai dati.In the middle pane of the PowerApps Studio, choose connect to data.

  3. Nel riquadro Dati toccare o fare clic su Nuova connessione > Analisi del testo.On the Data panel, click or tap New connection > Text Analytics.

  4. Copiare la chiave in Chiave account, quindi toccare o fare clic su Crea.Copy your key into Account Key, then click or tap Create.

    Connettore Analisi del testo

Aggiungere controlli all'appAdd controls to the app

Il passaggio successivo per la creazione dell'app consiste nell'aggiunta di tutti i controlli.The next step in creating the app is to add all the controls. Durante la creazione di un'app si aggiungono in genere le formule e i controlli senza un ordine preciso, ma in questo caso verranno aggiunti prima di tutto i controlli e quindi nella sezione successiva verranno aggiunte alcune formule.Normally when I build apps, I add formulas to the controls as I go, but in this case we'll focus on the controls first, then add a few formulas in the next section. L'immagine seguente mostra l'app con tutti i controlli.The following image shows the app with all the controls.

App completata

Seguire questa procedura per creare la schermata.Follow the steps below to create this screen. Se viene specificato un nome di controllo, tale nome viene usato in una formula nella sezione successiva.If a control name is specified, that name is used in a formula in the next section.

  1. Nella scheda Home toccare o fare clic su Nuova schermata, quindi Schermata scorrevole.On the Home tab, click or tap New Screen, then Scrollable screen.

  2. In Schermata2 selezionare [Titolo] e impostarlo su Analisi del testo.On Screen2, select [Title] and change it to Text Analysis.

  3. Aggiungere un controllo Etichetta per il testo introduttivo.Add a Label control for the introductory text.

  4. Aggiungere un controllo Input di testo, in modo che sia possibile immettere testo da analizzare.Add a Text input control, so you can enter text to analyze. Assegnare al controllo il nome tiTextToAnalyze.Name the control tiTextToAnalyze. L'app deve ora apparire come nell'immagine seguente.The app should now look like the following image.

    App con titolo, sottotitolo e input di testo

  5. Aggiungere tre controlli Casella di controllo, in modo che sia possibile scegliere le operazioni API da eseguire.Add three Check box controls, so you can choose which API operations to perform. Assegnare ai controlli i nomi chkLanguage, chkPhrases e chkSentiment.Name the controls chkLanguage, chkPhrases, and chkSentiment.

  6. Aggiungere un pulsante, in modo che sia possibile chiamare l'API dopo avere selezionato le operazioni da eseguire.Add a button, so you can call the API after selecting which operations to perform. L'app deve ora apparire come nell'immagine seguente.The app should now look like the following image.

    App con caselle di controllo e pulsante

  7. Aggiungere tre controlli Etichetta.Add three Label controls. Le prime due etichette includono i risultati delle chiamate all'API per la lingua e la valutazione. La terza etichetta è semplicemente un'introduzione per la raccolta nella parte inferiore dello schermo.The first two hold results from the language and sentiment API calls; the third is just an introduction for the gallery at the bottom of the screen.

  8. Aggiungere un controllo di tipo raccolta Vuota verticale e quindi aggiungere un controllo Etichetta alla raccolta.Add a Blank vertical gallery control, then add a Label control to the gallery. La raccolta include i risultati della chiamata API per le frasi chiave.The gallery holds results from the key phrases API call. L'app deve ora apparire come nell'immagine seguente.The app should now look like the following image.

    App con etichette e raccolta

  9. Nel riquadro a sinistra selezionare Schermata1 > puntini di sospensione (. . .) > Elimina. Questa schermata non è necessaria per l'app.In the left pane, select Screen1 > ellipsis (. . .) > Delete (you don't need this screen for the app).

Questa app è molto semplice, in modo che sia possibile concentrarsi sulla chiamata all'API Analisi del testo, ma è possibile aggiungere altri elementi, ad esempio la logica per mostrare e nascondere i controlli in base alla caselle di controllo selezionate, la gestione degli errori se l'utente non seleziona alcuna opzione e così via.We're keeping this app simple to focus on calling the Text Analytics API, but you could add things - like logic to show and hide controls based on the check boxes selected, error handling if the user doesn't select any options, and so on.

Aggiungere logica per effettuare le chiamate corrette all'APIAdd logic to make the right API calls

L'app ha un aspetto gradevole ma non esegue ancora alcuna operazione.OK, you have a nice-looking app, but it doesn't do anything yet. Questo problema verrà risolto a breve.You'll fix that in a moment. Prima di esaminare i dettagli, ecco alcune informazioni sul criterio seguito dall'app:But before we dive into the details, let's understand the pattern that the app follows:

  1. L'app effettua chiamate specifiche all'API in base alle caselle di controllo selezionate nell'app.The app makes specific API calls based on the check boxes selected in the app. Quando si tocca o si fa clic su Analizza testo, l'app effettua 1, 2 o 3 chiamate all'API.When you click or tap Analyze text, the app makes 1, 2, or 3 API calls.

  2. L'app archivia i dati restituiti dall'API in tre raccolte diverse: languageCollect, sentimentCollect e phrasesCollect.The app stores data that the API returns in three different collections: languageCollect, sentimentCollect, and phrasesCollect.

  3. L'app aggiorna la proprietà Text per due delle etichette e la proprietà Items per la raccolta in base ai dati specificati nelle tre raccolte.The app updates the Text property for two of the labels, and the Items property for the gallery, based on what's in the three collections.

È possibile ora aggiungere la formula per la proprietà OnSelect del pulsante.With that background, let's add the formula for the OnSelect property of the button. Questa operazione è molto importante.This is where all the magic happens.

If(chkLanguage.Value=true,

        ClearCollect(languageCollect, TextAnalytics.DetectLanguage({numberOfLanguagesToDetect:1, text:tiTextToAnalyze.Text}).detectedLanguages.name)

);

If(chkPhrases.Value=true,

        ClearCollect(phrasesCollect, TextAnalytics.KeyPhrases({language:"en", text:tiTextToAnalyze.Text}).keyPhrases)

);

If(chkSentiment.Value=true,

        ClearCollect(sentimentCollect, TextAnalytics.DetectSentiment({language:"en", text:tiTextToAnalyze.Text}).score)

)

È piuttosto complessa, quindi è consigliabile analizzarne ogni singolo aspetto:There's a bit going on here, so let's break it down:

  • Le istruzioni If sono molto semplici: se viene selezionata una casella di controllo specifica, viene effettuata la chiamata API per tale operazione.The If statements are straightforward – if a specific check box is selected, make the API call for that operation.

  • Entro ogni chiamata è necessario specificare i parametri appropriati:Within each call, specify the appropriate parameters:

    • In tutte e tre le chiamate viene specificato tiTextToAnalyze.Text come testo di input.In all three calls, you specify tiTextToAnalyze.Text as the input text.

    • In DetectLanguage() viene impostato il parametro numberOfLanguagesToDetect come hardcoded su 1, ma è possibile passare questo parametro in base a eventuale logica presente nell'app.In DetectLanguage(), numberOfLanguagesToDetect is hard-coded as 1, but you could pass this parameter based on some logic in the app.

    • In KeyPhrases() e DetectSentiment() il parametro language viene impostato come hardcoded su "en", ma è possibile passare questo parametro in base a eventuale logica presente nell'app.In KeyPhrases() and DetectSentiment(),language is hard-coded as "en", but you could pass this parameter based on some logic in the app. È ad esempio possibile rilevare prima di tutto la lingua, quindi impostare questo parametro in base al valore restituito da DetectLanguage().For example, you could detect the language first, then set this parameter based on what DetectLanguage() returns.

  • Per ogni chiamata effettuata, è necessario aggiungere i risultati alla raccolta appropriata:For each call that is made, add the results to the appropriate collection:

    • Per languageCollect aggiungere il valore name della lingua identificata nel testo.For languageCollect, add the name of the language that was identified in the text.

    • Per phrasesCollect aggiungere il valore keyPhrases relativo alle frasi chiave identificate nel testo.For phrasesCollect, add the keyPhrases that were identified in the text.

    • Per sentimentCollect aggiungere il valore score per la valutazione del testo, ovvero un valore compreso tra 0 e 1, dove 1 corrisponde a una valutazione positiva al 100%.For sentimentCollect, add the sentiment score for the text, which is a value of 0-1, with 1 being 100% positive.

Visualizzare i risultati delle chiamate all'APIDisplay the results of the API calls

Per visualizzare i risultati delle chiamate all'API, fare riferimento alla raccolta appropriata in ogni controllo:To display the results of the API calls, reference the appropriate collection in each control:

  1. Impostare la proprietà Text dell'etichetta relativa alla lingua su "The language detected is " & First(languageCollect).name.Set the Text property of the language label to: "The language detected is " & First(languageCollect).name.

    La funzione First() restituisce il primo e in questo caso unico record presente in languageCollect e l'app visualizza il valore name, ovvero l'unico campo, associato a tale record.The First() function returns the first (and in this case only) record in languageCollect, and the app displays the name (the only field) associated with that record.

  2. Impostare la proprietà Text dell'etichetta relativa alla valutazione su "The sentiment score is " & Round(First(sentimentCollect.Value).Value, 3)\*100 & "% positive.".Set the Text property of the sentiment label to: "The sentiment score is " & Round(First(sentimentCollect.Value).Value, 3)\*100 & "% positive.".

    Questa formula usa anche la funzione First(), ottiene il valore Value (0-1) dal primo e unico record, quindi applica al valore una formattazione di tipo percentuale.This formula also uses the First() function, gets the Value (0-1) from the first and only record, then formats it as a percentage.

  3. Impostare la proprietà Items della raccolta di frasi chiave su phrasesCollect.Set the Items property of the key phrases gallery to: phrasesCollect.

    Poiché si sta usando una raccolta, non è necessario che la funzione First() estragga un singolo valore.You're now working with a gallery so you don't need the First() function to extract a single value. Si fa riferimento alla raccolta e la raccolta mostra le frasi chiave sotto forma di elenco.You reference the collection, and the gallery displays the key phrases as a list.

Eseguire l'appRun the app

Dopo avere completato l'app, eseguirla per verificarne il funzionamento toccando o facendo clic sul pulsante Esegui nell'angolo superiore destroNow that the app is finished, run it to see how it works: click or tap the run button in the upper right corner Eseguire l'app.. Nell'immagine seguente sono selezionate tutte e tre le opzioni e il testo corrisponde al testo predefinito disponibile nella pagina API Analisi del testo.In the following image, all three options are selected, and the text is the same as the default text on the Text Analytics API page.

App completata con dati

Se si confronta l'output di questa app con la pagina API Analisi del testo mostrata all'inizio dell'articolo, si noterà che si ottengono gli stessi risultati.If you compare the output of this app to the Text Analytics API page at the beginning of this article, you see that the results are the same.

Sono state fornite informazioni sull'API Analisi del testo ed è stato illustrato come incorporarla in un'app.We hope you now understand a little more about the Text Analytics API, and you've enjoyed seeing how to incorporate it into an app. È possibile segnalare eventuali altri Servizi cognitivi o altri servizi in genere per cui si vorrebbero richiedere articoli di approfondimento.Let us know if there are other Cognitive Services (or other services in general) that you would like us to focus on in our articles. Inviare suggerimenti ed eventuali domande nella sezione relativa ai commenti.As always, please leave feedback and any questions in the comments.