キャンバス アプリの 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 の操作に必要なプロパティや値の一部、あるいはすべてを表示することができます。
空のアプリを作成し、テキスト分析 コネクタを使って接続を追加します。
タブレット レイアウト 付きで、"テキスト分析 API 付きのデモ アプリ" のような名前の 空白のキャンバス アプリ を作成します。
左側のペインから、データ を選択します。
テキスト分析 接続を検索します。

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

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

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

注意
- このチュートリアルのアプリは、Power Apps のテキスト分析 API の使用を開始する方法を示しています。 アプリを最初から設計する場合、または特定のビジネス要件を満たす場合は、このデモ アプリをカスタマイズ、あるいは直接コントロールを追加・設定し、テキスト分析 API アクションを代わりに使用することもできます。
- このチュートリアルで使用した配置、サイズ、色、位置 (X、Y) などのコンポーネント プロパティの値が推奨されます。 実際の値は、選択したアプリのレイアウトによって異なる場合があります。 これらの推奨値を変更して、要件に応じてアプリを設計することもできます。
を左側ペインから選択します。テキスト ラベル を選択します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 テキスト 「テキスト分析」 サイズ 36 色 RGBA(255, 255, 255, 1) 塗りつぶし RGBA(56, 96, 178, 1) 配置 Align.Center X 0 年 0 幅 1366 高さ 98 テキストラベル を挿入します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 テキスト 「テキストを入力し、オプションを選択してから、[テキストの分析] を選択します」 サイズ 16 配置 Align.Left X 24 年 135 幅 601 高さ 60 チェックボックス を挿入します。
以下の構成でチェックボックスのプロパティを変更します。
プロパティ名 値 件名 chkLanguage テキスト "言語" サイズ 16 X 24 年 228 チェックボックス を挿入します。
以下の構成でチェックボックスのプロパティを変更します。
プロパティ名 値 件名 chkSentiment テキスト 「センチメント」 サイズ 16 X 230 年 228 チェックボックス を挿入します。
以下の構成でチェックボックスのプロパティを変更します。
プロパティ名 値 件名 chkEL テキスト 「エンティティ リンク設定」 サイズ 16 X 403 年 228 幅 200 高さ 50 チェックボックス を挿入します。
以下の構成でチェックボックスのプロパティを変更します。
プロパティ名 値 件名 chkPhrases テキスト 「キー フレーズ」 サイズ 16 X 24 年 286 幅 193 高さ 50 チェックボックス を挿入します。
以下の構成でチェックボックスのプロパティを変更します。
プロパティ名 値 件名 chkNER テキスト 「名前付きエンティティの認識」 サイズ 16 X 230 年 286 幅 318 高さ 50 テキスト入力 を挿入します。
以下の構成でテキスト入力のプロパティを変更します。
プロパティ名 値 件名 tiTextToAnalyze テキスト 「テキストの入力」 モード 複数行 サイズ 14 高さ 256 幅 557 X 24 年 390 ボタン を挿入します。
以下の構成でボタンのプロパティを変更します。
プロパティ名 値 件名 分析テキスト テキスト 「分析テキスト」 X 189 年 684 幅 196 高さ 53 サイズ 16 テキストラベル を挿入します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 件名 dLanguage テキスト 「検出された言語 :」 サイズ 16 X 633 年 135 幅 665 高さ 48 テキストラベル を挿入します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 件名 sScore テキスト 「センチメント スコア :」 サイズ 16 X 633 年 196 幅 656 高さ 48 挿入 -> ギャラリー -> 空白の垂直 を選択します。
以下の構成でギャラローのプロパティを変更します。
プロパティ名 値 件名 gallerySS レイアウト 敬称 X 826 年 196 幅 503 高さ 62 ギャラリー内の矢印アイコンを選択して削除します。
ギャラリー内の最初の行に、次のプロパティを変更します。
プロパティ名 値 X 16 高さ 63 テキストラベル を挿入します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 テキスト 「リンクされたエンティティ :」 サイズ 16 X 633 年 258 幅 206 高さ 48 挿入 -> ギャラリー -> 空白の垂直 を選択します。
以下の構成でギャラローのプロパティを変更します。
プロパティ名 値 件名 galleryLE レイアウト タイトルとサブタイトル X 633 年 318 幅 696 高さ 87 ギャラリー内の矢印アイコンを選択して削除します。
テキストラベル を挿入します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 テキスト 「キー フレーズ :」 サイズ 16 X 633 年 429 幅 150 高さ 48 挿入 -> ギャラリー -> 空白の垂直 を選択します。
以下の構成でギャラローのプロパティを変更します。
プロパティ名 値 件名 galleryKP レイアウト 敬称 X 633 年 489 幅 696 高さ 87 ギャラリー内の矢印アイコンを選択して削除します。
ギャラリー内の最初の行に、次のプロパティを変更します。
プロパティ名 値 X 16 高さ 87 テキストラベル を挿入します。
以下の構成でラベルのプロパティを変更します。
プロパティ名 値 テキスト 「エンティティ名 :」 サイズ 16 X 633 年 589 幅 193 高さ 48 挿入 -> ギャラリー -> 空白の垂直 を選択します。
以下の構成でギャラローのプロパティを変更します。
プロパティ名 値 件名 galleryNER レイアウト 敬称 X 633 年 670 幅 696 高さ 87 ギャラリー内の矢印アイコンを選択して削除します。
ギャラリー内の最初の行に、次のプロパティを変更します。
プロパティ名 値 X 16 高さ 87
上記の手順を実行した後、アプリの外観は次のようになります。

アプリにロジックを追加する
想定されるデザインでアプリの基本構造を作成が完了したので、アプリにロジックを追加して Cognitive Services を Power Apps で使えるようします。
注意
このチュートリアルでは、デモアプリでは、使用するコントロールに応じて異なる機能を組み合わせたサンプル数式を使用しています。 さまざまなアプリのデザインやカスタマイズによって、さまざまな数式や関数を使用できます。 アプリや数式を再設計して追加のカスタマイズをしたり、業務の要件に合わせて利用することができます。
次の式をコピーして、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 ) );このステップでは、以下の関数を使用しています。
- ClearCollect - Cognitive Services で使用するオプション (チェックボックス) ごとにコレクションを作成します。 使用されるコレクションは 2 つあります。 最初にテキスト入力から情報を収集します (tiTextToAnalyze)。 続いて、TextAnalytics に関する API 呼び出し結果を格納する 2 つ目のコレクションです。
- Cognitive Services テキスト分析 API アクション - ローカル コレクションに分析の詳細を格納する式で使用されます。 使用されるアクション: 言語の検出 (V3.0) (プレビュー)、センチメント (V3.0) (プレビュー)、エンティティのリンク (V3.0) (プレビュー)、キー フレーズ (V3.0) (プレビュー)、名前付きエンティティの認識 (V3.0) (プレビュー)
次の式をコピーして、dLanguage ラベルの テキスト プロパティの値として貼り付けます。
"Detected language: " & First(languageCollect.detectedLanguage).detectedLanguage.nameこのステップでは、テキスト分析 APIで識別された言語を First 関数で返して表示します。
gallerySS のデータソースに sentimentCollect を選択します。
gallerySS ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。
"Positive: " & ThisItem.confidenceScores.positive &" Neutral: " & ThisItem.confidenceScores.neutral & " Negative: " & ThisItem.confidenceScores.negativeこのステップでは、ギャラリーに表示されるテキスト分析 API で分析された信頼度スコアを使用します。
galleryLE のデータソースに elCollect を選択します。
galleryLE ギャラリーの2番目の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。
Concat(ThisItem.entities.url,url,", ")このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたリストのエンティティの URL をカンマで区切った単一の文字列を返します。
galleryLE ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。
Concat(ThisItem.entities.name,name,", ")このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたリストのエンティティの名前をカンマで区切った単一の文字列を返します。
galleryKP のデータソースに phrasesCollect を選択します。
galleryKP ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。
Concat(ThisItem.keyPhrases.Value, Value, ", ")このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたキー フレーズをカンマで区切った単一の文字列を返します。
galleryNER のデータソースに nerCollect を選択します。
galleryNER ギャラリーの最初の行を選択します。 次に、テキスト プロパティに次の式をコピーして貼り付けます。
Concat(ThisItem.entities.text,text,", ")このステップでは、Concat 関数を使用して、テキスト分析 API で特定されたエンティティをカンマで区切った単一の文字列を返します。
アプリを 保存して公開 します。
アプリを実行してテストする
アプリをプレビューするか、キーボードの F5 キーを押します。
次のようなサンプル テキストを入力します。
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.5 つのチェックボックスをすべて選択します。
分析テキスト を選択します。
出力結果をレビューします。

以上で、デモアプリを作成して Power Apps で Azure Cognitive Services を使用しましたで、アプリのインターフェースをカスタマイズしたり、機能を追加したりすることができます。
次の手順
関連項目
Power Apps のコントロールとプロパティ
テキスト分析 API のドキュメント
クイックスタート : テキスト分析クライアント ライブラリと REST API を使用する
コネクタ参照 - Text Analytics
フィードバック
フィードバックの送信と表示