キャンバス アプリの Cognitive Services を使用する

この記事では、Azure Cognitive Services の Text Analytics API を使用する基本的なキャンバス アプリを構築して、テキストを分析する方法を説明します。 Text Analytics API の設定方法と、Text Analytics コネクタ で Text Analytics API に接続する方法を説明します。 次に、API を呼び出すキャンバス アプリを作成する方法を説明します。

注意

Power Apps でアプリを初めて構築する場合は、この記事を読み進める前に、アプリの一からの作成 を読むことをお勧めします。

Azure Cognitive Services の概要

Azure Cognitive Services は、ご利用アプリケーションを、インテリジェントで魅力的な、検索されやすいものにするための API、SDK、サービスのセットです。 これらのサービスを利用することで、感情や映像の検出、顔・音声・視覚の認識、音声・言語理解などのインテリジェントな機能をご利用のアプリケーションに簡単に追加することができます。

この記事では "言語の理解" に注目して、Text Analytics API を使用します。 この API を使用すると、テキストからセンチメント、キー フレーズ、トピックおよび言語を検出できます。 API のデモを試してみましょう。

前提条件

テキスト分析 API を使用してキャンバスアプリの構築を開始する前に、テキスト分析リソースを準備する必要があります。 詳細については、Text Analytics API の前提条件を参照してください。

アプリの作成および接続の追加

ヒント

このチュートリアルでは、 テキスト分析 API アクションを使用して出力からいくつかのプロパティと値を使用してデモアプリを作成する方法について説明します。 同様の方法で独自のアプリを作成し、テキスト分析 API の操作に必要なプロパティや値の一部、あるいはすべてを表示することができます。

空のアプリを作成し、テキスト分析 コネクタを使って接続を追加します。

  1. タブレット レイアウト 付きで、"テキスト分析 API 付きのデモ アプリ" のような名前の 空白のキャンバス アプリ を作成します。

  2. 左側のペインから、データ を選択します。

  3. テキスト分析 接続を検索します。

    テキスト分析接続を追加する。

  4. アカウントキーサイトの URL 値を入力します。

    Power Apps のテキスト分析 API のアカウントキーとサイト URL。

    アカウントキーサイトの URL から、Azure ポータルを使用して キーエンドポイント 値を確認できます。

    Azure ポータルのキーとエンドポイント。

  5. 接続 を選択します。

アプリが Azure のテキスト分析 API タイプの CognitiveS ervices リソースに接続されます。

アプリを設計する

このセクションでは、テキスト分析 API の操作に必要なコントロールを使用してデモ アプリを設計します。 アプリのデザインが完了すると、次のようになります :

デモ アプリ。

注意

  • このチュートリアルのアプリは、Power Apps のテキスト分析 API の使用を開始する方法を示しています。 アプリを最初から設計する場合、または特定のビジネス要件を満たす場合は、このデモ アプリをカスタマイズ、あるいは直接コントロールを追加・設定し、テキスト分析 API アクションを代わりに使用することもできます。
  • このチュートリアルで使用した配置、サイズ、色、位置 (X、Y) などのコンポーネント プロパティの値が推奨されます。 実際の値は、選択したアプリのレイアウトによって異なる場合があります。 これらの推奨値を変更して、要件に応じてアプリを設計することもできます。
  1. 挿入。 を左側ペインから選択します。

  2. テキスト ラベル を選択します。

  3. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    テキスト 「テキスト分析」
    サイズ 36
    RGBA(255, 255, 255, 1)
    塗りつぶし RGBA(56, 96, 178, 1)
    配置 Align.Center
    X 0
    0
    1366
    高さ 98
  4. テキストラベル を挿入します。

  5. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    テキスト 「テキストを入力し、オプションを選択してから、[テキストの分析] を選択します」
    サイズ 16
    配置 Align.Left
    X 24
    135
    601
    高さ 60
  6. チェックボックス を挿入します。

  7. 以下の構成でチェックボックスのプロパティを変更します。

    プロパティ名
    件名 chkLanguage
    テキスト "言語"
    サイズ 16
    X 24
    228
  8. チェックボックス を挿入します。

  9. 以下の構成でチェックボックスのプロパティを変更します。

    プロパティ名
    件名 chkSentiment
    テキスト 「センチメント」
    サイズ 16
    X 230
    228
  10. チェックボックス を挿入します。

  11. 以下の構成でチェックボックスのプロパティを変更します。

    プロパティ名
    件名 chkEL
    テキスト 「エンティティ リンク設定」
    サイズ 16
    X 403
    228
    200
    高さ 50
  12. チェックボックス を挿入します。

  13. 以下の構成でチェックボックスのプロパティを変更します。

    プロパティ名
    件名 chkPhrases
    テキスト 「キー フレーズ」
    サイズ 16
    X 24
    286
    193
    高さ 50
  14. チェックボックス を挿入します。

  15. 以下の構成でチェックボックスのプロパティを変更します。

    プロパティ名
    件名 chkNER
    テキスト 「名前付きエンティティの認識」
    サイズ 16
    X 230
    286
    318
    高さ 50
  16. テキスト入力 を挿入します。

  17. 以下の構成でテキスト入力のプロパティを変更します。

    プロパティ名
    件名 tiTextToAnalyze
    テキスト 「テキストの入力」
    モード 複数行
    サイズ 14
    高さ 256
    557
    X 24
    390
  18. ボタン を挿入します。

  19. 以下の構成でボタンのプロパティを変更します。

    プロパティ名
    件名 分析テキスト
    テキスト 「分析テキスト」
    X 189
    684
    196
    高さ 53
    サイズ 16
  20. テキストラベル を挿入します。

  21. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    件名 dLanguage
    テキスト 「検出された言語 :」
    サイズ 16
    X 633
    135
    665
    高さ 48
  22. テキストラベル を挿入します。

  23. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    件名 sScore
    テキスト 「センチメント スコア :」
    サイズ 16
    X 633
    196
    656
    高さ 48
  24. 挿入 -> ギャラリー -> 空白の垂直 を選択します。

  25. 以下の構成でギャラローのプロパティを変更します。

    プロパティ名
    件名 gallerySS
    レイアウト​​ 敬称
    X 826
    196
    503
    高さ 62
  26. ギャラリー内の矢印アイコンを選択して削除します。

  27. ギャラリー内の最初の行に、次のプロパティを変更します。

    プロパティ名
    X 16
    高さ 63
  28. テキストラベル を挿入します。

  29. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    テキスト 「リンクされたエンティティ :」
    サイズ 16
    X 633
    258
    206
    高さ 48
  30. 挿入 -> ギャラリー -> 空白の垂直 を選択します。

  31. 以下の構成でギャラローのプロパティを変更します。

    プロパティ名
    件名 galleryLE
    レイアウト​​ タイトルとサブタイトル
    X 633
    318
    696
    高さ 87
  32. ギャラリー内の矢印アイコンを選択して削除します。

  33. テキストラベル を挿入します。

  34. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    テキスト 「キー フレーズ :」
    サイズ 16
    X 633
    429
    150
    高さ 48
  35. 挿入 -> ギャラリー -> 空白の垂直 を選択します。

  36. 以下の構成でギャラローのプロパティを変更します。

    プロパティ名
    件名 galleryKP
    レイアウト​​ 敬称
    X 633
    489
    696
    高さ 87
  37. ギャラリー内の矢印アイコンを選択して削除します。

  38. ギャラリー内の最初の行に、次のプロパティを変更します。

    プロパティ名
    X 16
    高さ 87
  39. テキストラベル を挿入します。

  40. 以下の構成でラベルのプロパティを変更します。

    プロパティ名
    テキスト 「エンティティ名 :」
    サイズ 16
    X 633
    589
    193
    高さ 48
  41. 挿入 -> ギャラリー -> 空白の垂直 を選択します。

  42. 以下の構成でギャラローのプロパティを変更します。

    プロパティ名
    件名 galleryNER
    レイアウト​​ 敬称
    X 633
    670
    696
    高さ 87
  43. ギャラリー内の矢印アイコンを選択して削除します。

  44. ギャラリー内の最初の行に、次のプロパティを変更します。

    プロパティ名
    X 16
    高さ 87

上記の手順を実行した後、アプリの外観は次のようになります。

アプリの設計。

アプリにロジックを追加する

想定されるデザインでアプリの基本構造を作成が完了したので、アプリにロジックを追加して Cognitive Services を Power Apps で使えるようします。

注意

このチュートリアルでは、デモアプリでは、使用するコントロールに応じて異なる機能を組み合わせたサンプル数式を使用しています。 さまざまなアプリのデザインやカスタマイズによって、さまざまな数式や関数を使用できます。 アプリや数式を再設計して追加のカスタマイズをしたり、業務の要件に合わせて利用することができます。

  1. 次の式をコピーして、analyzeText ボタンの OnSelect プロパティの値として貼り付けます。

    ClearCollect( languageInfo, { id: "E393CEB2-56A8-4668-A5EB-A1254E9758F0", countryHint: "US", text: tiTextToAnalyze.Text } );
    TextAnalytics.LanguagesV3(languageInfo);
    If( chkLanguage.Value=true,
        ClearCollect( languageCollect,
            TextAnalytics.LanguagesV3(languageInfo).documents.detectedLanguage
        )
    );
    ClearCollect( phrasesInfo, { id: "E393CEB2-56A8-4668-A5EB-A1254E9758F0", language: "en", text: tiTextToAnalyze.Text } );
    If( chkPhrases.Value = true,
        ClearCollect( phrasesCollect,
            TextAnalytics.KeyPhraseV3(phrasesInfo).documents.keyPhrases
        )
    );
    ClearCollect( sentimentInfo, { id: "E393CEB2-56A8-4668-A5EB-A1254E9758F0", language: "en", text: tiTextToAnalyze.Text } );
    If( chkSentiment.Value = true,
        ClearCollect( sentimentCollect,
            TextAnalytics.SentimentV3(sentimentInfo).documents.confidenceScores
        )
    );      
    ClearCollect( nerinfo, { id: "E393CEB2-56A8-4668-A5EB-A1254E9758F0", language: "en", text: tiTextToAnalyze.Text } );
    If( chkNER.Value = true,
        ClearCollect( nerCollect,
            TextAnalytics.EntitiesRecognitionGeneralV3(nerinfo).documents.entities
        )
    );
    ClearCollect( elinfo, { id: "E393CEB2-56A8-4668-A5EB-A1254E9758F0", language: "en", text: tiTextToAnalyze.Text } );
    If( chkEL.Value = true,
        ClearCollect( elCollect,
            TextAnalytics.EntitiesLinkingV3(elinfo).documents.entities
        )
    ); 
    

    このステップでは、以下の関数を使用しています。

  2. 次の式をコピーして、dLanguage ラベルの テキスト プロパティの値として貼り付けます。

    "Detected language: " & First(languageCollect.detectedLanguage).detectedLanguage.name
    

    このステップでは、テキスト分析 APIで識別された言語を First 関数で返して表示します。

  3. gallerySS のデータソースに sentimentCollect を選択します。

  4. gallerySS ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。

    "Positive: " & ThisItem.confidenceScores.positive &" Neutral: " & ThisItem.confidenceScores.neutral & " Negative: " & ThisItem.confidenceScores.negative
    

    このステップでは、ギャラリーに表示されるテキスト分析 API で分析された信頼度スコアを使用します。

  5. galleryLE のデータソースに elCollect を選択します。

  6. galleryLE ギャラリーの2番目の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。

    Concat(ThisItem.entities.url,url,", ")
    

    このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたリストのエンティティの URL をカンマで区切った単一の文字列を返します。

  7. galleryLE ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。

    Concat(ThisItem.entities.name,name,", ")
    

    このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたリストのエンティティの名前をカンマで区切った単一の文字列を返します。

  8. galleryKP のデータソースに phrasesCollect を選択します。

  9. galleryKP ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。

    Concat(ThisItem.keyPhrases.Value, Value, ", ")
    

    このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたキー フレーズをカンマで区切った単一の文字列を返します。

  10. galleryNER のデータソースに nerCollect を選択します。

  11. galleryNER ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。

    Concat(ThisItem.entities.text,text,", ")
    

    このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたエンティティをカンマで区切った単一の文字列を返します。

  12. アプリを 保存して公開 します。

アプリを実行してテストする

  1. アプリをプレビューするか、キーボードの F5 キーを押します。

  2. 次のようなサンプル テキストを入力します。

    Cognitive Services brings AI within reach of every developer—without requiring machine-learning expertise. All it takes is an API call to embed the ability to see, hear, speak, search, understand, and accelerate decision-making into your apps. Enable developers of all skill levels to easily add AI capabilities to their apps with modern application development.

  3. 5 つのチェックボックスをすべて選択します。

  4. 分析テキスト を選択します。

  5. 出力結果をレビューします。

    分析されたサンプル テキスト出力。

以上で、デモアプリを作成して Power Apps で Azure Cognitive Services を使用しましたで、アプリのインターフェースをカスタマイズしたり、機能を追加したりすることができます。

次の手順

コントロールの追加と構成

関連項目

Power Apps のコントロールとプロパティ
テキスト分析 API のドキュメント
クイックスタート : テキスト分析クライアント ライブラリと REST API を使用する
コネクタ参照 - Text Analytics