PowerApps'te Bilişsel Hizmetler'i kullanmaUse Cognitive Services in PowerApps

Bu makalede metin analizi için Microsoft Bilişsel Hizmetler Metin Analizi API'sini kullanan basit bir uygulamayı nasıl oluşturacağınız gösterilmektedir.This article shows you how to build a basic app that uses the Microsoft Cognitive Services Text Analytics API to analyze text. Metin Analizi API'sini ayarlamak ve Metin Analizi bağlayıcısına bağlamak için yapmanız gerekenleri göstereceğiz.We'll show you how to set up the Text Analytics API, and connect to it with the Text Analytics connector. Ardından API'yi çağıran bir uygulamayı nasıl oluşturacağınızı anlatacağız.Then we'll show you how to create an app that calls the API.

Not: PowerApps'te uygulama oluşturma konusunda bilginiz yoksa bu makaleye başlamadan önce Sıfırdan uygulama oluşturma konusunu incelemenizi öneririz.Note: If you are new to building apps in PowerApps, we recommend reading Create an app from scratch before diving into this article.

Microsoft Bilişsel Hizmetler'e girişIntroduction to Microsoft Cognitive Services

Microsoft Bilişsel Hizmetler, uygulamalarınızı daha akıllı, etkileşimli ve keşfetmesi kolay hale getirmek için kullanabileceğiniz bir dizi API, SDK ve hizmetten oluşan bir kümedir.Microsoft Cognitive Services are a set of APIs, SDKs, and services available to make your applications more intelligent, engaging, and discoverable. Bu hizmetler duygu ve video algılamanın yanı sıra yüz, konuşma ve görüntü tanıma ile konuşma ve dil anlama gibi akıllı özellikleri uygulamalarınıza kolayca eklemenizi sağlar.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.

Bu makalede Metin Analizi API'si ile çalışarak "dil anlama" üzerine yoğunlaşacağız.We'll focus on "language understanding" for this article, working with the Text Analytics API. Bu API, metninizdeki yaklaşımı, anahtar ifadeleri, konuları ve dili algılamanızı sağlar.This API enables you to detect sentiment, key phrases, topics, and language from your text. API'nin tanıtımını inceleyerek başlayalım ve ardından önizleme sürümüne kaydolalım.Let's get started by trying out a demo of the API, then signing up for a preview version.

Metin Analizi API'sini denemeTry out the Text Analytics API

API'nin, çalışma şeklini görebileceğiniz ve hizmetin döndürdüğü JSON yanıtına göz atabileceğiniz çevrimiçi bir tanıtımı mevcuttur.The API has an online demo – you can see how it works, and look at the JSON that the service returns.

  1. Metin Analizi API'si sayfasına gidin.Go to the Text Analytics API page.
  2. Nasıl çalıştığını görün bölümündeki örnek metni kullanın veya kendiniz metin girin.In the See it in action section, use the example text, or enter your own text. Ardından Çözümleyin'e tıklayın veya dokunun.Then click or tap Analyze.

    Metin Analizi API'si tanıtımı

  3. Sayfadaki Çözümlenmiş metin sekmesinde biçimlendirilmiş sonuçlar, JSON sekmesinde ise JSON yanıtı gösterilir. JSON, verileri göstermek için kullanılabilecek bir yöntemdir. Burada Metin Analizi API'si tarafından döndürülen veriler kullanılmıştır.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.

Metin Analizi API'sine kaydolmaSign up for the Text Analytics API

API ücretsiz önizleme olarak kullanılabilir ve bir Azure aboneliğiyle ilişkilendirilir.The API is available as a free preview, and it is associated with an Azure subscription. API'yi Azure portalı üzerinden yönetirsiniz.You manage the API through the Azure portal.

  1. Azure aboneliğiniz yoksa ücretsiz abonelik için kaydolabilirsiniz.If you don't already have an Azure subscription, sign up for a free subscription.
  2. Azure hesabınızda oturum açın.Sign in to your Azure account.
  3. Azure portalındaki Bilişsel Hizmetler hesapları oluştur dikey penceresine gidin.Go to the Create Cognitive Services blade in the Azure portal.
  4. Metin Analizi API'si için aşağıdaki görüntüde verilen bilgileri girin.Enter information for the Text Analytics API, like in the following image. Fiyatlandırma katmanını F0 (ücretsiz) olarak belirleyin.Select the F0 (free) pricing tier.

    Metin Analizi API'sini oluşturma

  5. Sol alt köşedeki Oluştur'a tıklayın veya dokunun.In the lower-left corner, click or tap Create.
  6. Pano sayfasında az önce oluşturduğunuz API'ye tıklayın veya dokunun.On the Dashboard, click or tap the API that you just created.

    Azure panosu

  7. Anahtarlar'a tıklayın veya dokunun.Click or tap Keys.

    Azure menüsü

  8. Ekranın sağ tarafındaki anahtarlardan birini kopyalayın.Copy one of the keys on the right of the screen. Bu anahtarı ilerleyen adımlarda API bağlantısı oluşturmak için kullanacağız.We will use this key later when we create a connection to the API.

    API anahtarları

Uygulamayı oluşturmaBuild the app

Metin Analizi API'sini çalışır hale getirdiğimize göre PowerApps'ten bağlantı kurabilir ve API'yi çağıran bir uygulama oluşturabilirsiniz.Now that we have the Text Analytics API up and running, we can connect to it from PowerApps, and build an app that calls the API. Bu, Metin Analizi API'si sayfasındaki tanıtıma benzer işlevlere sahip tek ekranlı bir uygulama olacak.This is a single screen app that provides functionality similar to the demo on the Text Analytics API page. Vakit kaybetmeden oluşturmaya başlayalım!Let's get started on building this!

Uygulamayı oluşturma ve bağlantı eklemeCreate the app and add a connection

İlk olarak boş bir telefon uygulaması oluşturacak ve Metin Analizi bağlayıcısıyla bir bağlantı ekleyeceğiz.First, we'll create a blank phone app and add a connection with the Text Analytics connector. Bu görevler hakkında daha fazla bilgiye ihtiyaç duyarsanız bkz. Sıfırdan uygulama oluşturma ve PowerApps'te bağlantılarınızı yönetme.If you need more information about these tasks, see Create an app from scratch and Manage your connections in PowerApps.

  1. PowerApps Studio'da Dosya > Yeni yolunu izleyip Boş uygulama'nın altındaki Telefon düzeni'ne tıklayın veya dokunun.In PowerApps Studio, click or tap File > New, then under Blank app, click or tap Phone layout.

    Boş uygulama - telefon düzeni

  2. Ortadaki bölmede verilere bağlan'a tıklayın veya dokunun.In the middle pane, click or tap connect to data.
  3. Sağ bölmede, Yeni bağlantı > Metin Analizi'ne tıklayın veya dokunun.In the right pane, click or tap New connection > Text Analytics.

    PowerApps veri kaynakları

  4. Anahtarınızı Hesap Anahtarı bölümüne kopyalayıp Oluştur'a tıklayın veya dokunun.Copy your key into Account Key, then click or tap Create.

    Metin analizi bağlayıcısı

Uygulamaya denetim eklemeAdd controls to the app

Uygulama oluşturmanın bir sonraki adımı gerekli denetimleri eklemektir.The next step in creating the app is to add all the controls. Normalde uygulama oluştururken, ilk olarak denetimlere formüller eklerim ancak bu örnekte önce denetimlere odaklanıp formülleri daha sonra ekleyeceğiz.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. Aşağıdaki görüntüde uygulama, tüm denetimler eklenmiş şekilde gösterilmektedir.The following image shows the app with all the controls.

Tamamlanmış uygulama

Bu ekranı oluşturmak için aşağıdaki adımları uygulayın.Follow the steps below to create this screen. Bir denetim adı belirtilmişse sonraki bölümde verilen formülde bu ad kullanılmıştır.If a control name is specified, that name is used in a formula in the next section.

  1. Giriş sekmesinde Yeni Ekran'a ve ardından Kaydırılabilir ekran'a tıklayın veya dokunun.On the Home tab, click or tap New Screen, then Scrollable screen.
  2. Screen2'de [Başlık] öğesini seçip Text Analysis olarak değiştirin.On Screen2, select [Title] and change it to Text Analysis.
  3. Tanıtım metni için bir Etiket denetimi ekleyin.Add a Label control for the introductory text.
  4. Analiz edilecek metnin girileceği bir Metin girişi denetimi ekleyin.Add a Text input control, so we can enter text to analyze. Denetimi tiTextToAnalyze olarak adlandırın.Name the control tiTextToAnalyze. Bu işlemin ardından uygulama aşağıdaki gibi görünür.The app should now look like the following image.

    Başlık, alt başlık ve metin girişini gösteren uygulama ekranı

  5. Gerçekleştirilecek API işlemlerini seçebilmemiz için üç Onay kutusu denetimi ekleyin.Add three Check box controls, so we can choose which API operations to perform. Bu denetimlere chkLanguage, chkPhrases ve chkSentiment adlarını verin.Name the controls chkLanguage, chkPhrases, and chkSentiment.
  6. Gerçekleştirilecek işlemleri seçtikten sonra API'yi çağırabilmemiz için bir düğme ekleyin.Add a button, so we can call the API after selecting which operations to perform. Bu işlemin ardından uygulama aşağıdaki gibi görünür.The app should now look like the following image.

    Onay kutularını ve düğmeyi gösteren uygulama ekranı

  7. Üç Etiket denetimi ekleyin.Add three Label controls. Bu denetimlerin ilk ikisi, dil ve yaklaşım içerikli API çağrılarının sonucunu tutarken üçüncüsü ise ekranın alt kısmındaki galeri için açıklama görevi görür.The first two will 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. İlk olarak Boş dikey galeri denetimi ve ardından galeriye bir Etiket denetimi ekleyin.Add a Blank vertical gallery control, then add a Label control to the gallery. Galeri, anahtar ifadeler içerikli API çağrısının sonucunu tutacaktır.The gallery will hold results from the key phrases API call. Bu işlemin ardından uygulama aşağıdaki gibi görünür.The app should now look like the following image.

    Etiketleri ve galeriyi gösteren uygulama ekranı

  9. Sol bölmede, Screen1 > üç nokta (. . .) > Sil seçeneğini belirleyin (uygulamada bu ekrana ihtiyacımız olmayacak).In the left pane, select Screen1 > ellipsis (. . .) > Delete (we don't need this screen for our app).

Bu uygulamayı Metin Analizi API'si çağrılarına odaklanmak için basit tutuyoruz. Dilerseniz seçilen onay kutularına göre denetimleri gösterip gizleme mantığı ve kullanıcı seçenek belirlemediğinde döndürülecek hatalar gibi bileşenler de ekleyebilirsiniz.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.

Doğru API çağrılarını gerçekleştirme mantığı eklemeAdd logic to make the right API calls

Artık elimizde güzel görünümlü bir uygulama var ancak henüz bir işe yaramıyor.OK, we have a nice-looking app, but it doesn't do anything yet. Bu durumu kısa süre içinde gidereceğiz.We'll fix that in a moment. Ayrıntılara girmeden önce uygulamanın izlediği deseni kavrayalım:But before we dive into the details, let's understand the pattern that the app follows:

  1. Uygulama, seçilen onay kutularına göre belirli API çağrıları yapar.The app makes specific API calls based on the check boxes selected in the app. Analyze text düğmesine tıkladığımızda veya dokunduğumuzda uygulama 1, 2 veya 3 API çağrısı yapar.When we click or tap Analyze text, the app makes 1, 2, or 3 API calls.
  2. API tarafından döndürülen veriler üç farklı koleksiyonda depolanır: languageCollect, sentimentCollect ve phrasesCollect.Data that the API returns is stored in three different collections: languageCollect, sentimentCollect, and phrasesCollect.
  3. İki etiketin Text özelliği ve galerinin Items özelliği, koleksiyonların içindeki verilere göre güncelleştirilir.The Text property for two of the labels, and the Items property for the gallery, are updated based on what's in the three collections.

Bu bilgileri göz önünde bulundurarak düğmemizin OnSelect özelliğine yönelik formülü ekleyelim.With that background, let's add the formula for the OnSelect property of our button. Tüm sihrin gerçekleştiği nokta işte tam burası.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)

)

Bu kısım biraz karmaşık gelebileceğinden parçalara ayırarak ilerleyelim:There's a bit going on here, so let's break it down:

  • If deyimleri oldukça basittir. Belirli bir onay kutusu işaretlenmişse ilgili işlem için API çağrısı gerçekleştirilir.The If statements are straightforward – if a specific check box is selected, make the API call for that operation.
  • Her çağrının içinde gerekli parametreleri belirtin:Within each call, specify the appropriate parameters:
    • Üç çağrının tümünde giriş metni olarak tiTextToAnalyze.Text öğesini belirtiyoruz.In all three calls, we specify tiTextToAnalyze.Text as the input text.
    • DetectLanguage() işlevinde numberOfLanguagesToDetect değerini 1 olarak belirliyoruz ancak bu parametreyi uygulamadaki belirli bir mantığa göre de geçirebiliriz.In DetectLanguage(), we hard-code numberOfLanguagesToDetect as 1, but we could pass this parameter based on some logic in the app.
    • KeyPhrases() ve DetectSentiment() işlevlerinde dili "en" olarak belirliyoruz ancak bu parametreyi de uygulamadaki belirli bir mantığa göre geçirebiliriz.In KeyPhrases() and DetectSentiment(), we hard-code language as "en", but we could pass this parameter based on some logic in the app. Örneğin, önce dili algılayabilir, ardından bu parametreyi DetectLanguage() ile döndürülen değere göre ayarlayabiliriz.For example, we could detect the language first, then set this parameter based on what DetectLanguage() returns.
  • Yapılan tüm çağrılar için sonuçları ilgili koleksiyona ekleyin:For each call that is made, add the results to the appropriate collection:
    • languageCollect için, metinde tanımlanmış olan dilin name değerini ekliyoruz.For languageCollect, we add the name of the language that was identified in the text.
    • phrasesCollect için, metinde tanımlanmış olan keyPhrases değerlerini ekliyoruz.For phrasesCollect, we add the keyPhrases that were identified in the text.
    • sentimentCollect için, 1 %100 olumlu olmak üzere 0 veya 1 değerlerinden birini alan, metindeki yaklaşıma ilişkin score değerini ekliyoruz.For sentimentCollect, we add the sentiment score for the text, which is a value of 0-1, with 1 being 100% positive.

API çağrılarının sonuçlarını görüntülemeDisplay the results of the API calls

API çağrılarının sonuçlarını görüntülemek için her bir denetimde ilgili koleksiyona başvurun:To display the results of the API calls, reference the appropriate collection in each control:

  1. Dil etiketinin Text özelliğini şu şekilde ayarlayın: "The language detected is " & First(languageCollect).name.Set the Text property of the language label to: "The language detected is " & First(languageCollect).name.

    First() işlevi, languageCollect koleksiyonundaki ilk (ve bu örnekte tek) kaydı döndürür ve bu kayıtla ilişkilendirilmiş name (tek alan) alanını görüntüleriz.The First() function returns the first (and in this case only) record in languageCollect, and we display the name (the only field) associated with that record.

  2. Yaklaşım etiketinin Text özelliğini şu şekilde ayarlayın: "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.".

    Bu formül de First() işlevini kullanır, ilk ve tek kayıttan Value (0-1) verisini alır ve yüzde olarak biçimlendirir.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. Anahtar ifadeler galerisinin Items özelliğini şu şekilde ayarlayın: phrasesCollect.Set the Items property of the key phrases gallery to: phrasesCollect.

    Bir galeri kullanmakta olduğumuzdan First() işlevinin tek bir değer ayıklaması gerekmiyor.We're now working with a gallery so we don't need the First() function to extract a single value. Koleksiyona başvuruyoruz ve galeri de anahtar ifadeleri liste şeklinde görüntülüyor.We reference the collection, and the gallery displays the key phrases as a list.

Uygulamayı çalıştırmaRun the app

Uygulamayı tamamladığımıza göre nasıl çalıştığına bakalım.Now that the app is finished, let's run it to see how it works. Aşağıdaki görüntüde üç seçenek de belirlenmiştir ve metin, Metin Analizi API'si sayfasındaki varsayılan metinle aynıdır.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.

Tamamlanmış uygulama ve veriler

Bu uygulamanın çıktısını bu makalenin başındaki Metin Analizi API'si sayfasıyla karşılaştırırsanız aynı sonuçları elde ettiğimizi görürsünüz.If you compare the output of this app to the Text Analytics API page at the beginning of this article, you see that we get the same results.

Metin Analizi API'si hakkında biraz daha bilgi sahibi olduğunuzu ve bunu bir uygulamaya nasıl ekleyeceğinizi öğrenmenin hoşunuza gittiğini umuyoruz.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. Makalelerimizde ele almamızı istediğiniz başka Bilişsel Hizmetler (veya genel olarak diğer hizmetler) varsa bizimle paylaşın.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. Her zamanki gibi geri bildirimlerinizi ve sorularınızı yorumlarda paylaşabilirsiniz.As always, please leave feedback and any questions in the comments.