テキスト分析を呼び出すフローを作成する
では、ここからは具体的なフローの作成に入ります。
[1]新しいフローを作成する
Power Automate for Desktopを開きます。
トップ画面から[+新しいフロー]をクリックして、適当な名前で新規のフローを作成します。
[2]変数の設定で既定の検索ワードを設定する
実行時で入力するワードの既定値として決めた検索ワードを設定します。
[変数]アクショングループから[変数の設定]アクションを配置します。
以下の選択・入力をして保存します。
- 変数:%word%
- 値:(決めた検索ワード)
[3]ドキュメントフォルダーを参照する
Power Automate for Desktopから保存したキーを参照するために、[フォルダー]アクショングループから[特別なフォルダーを取得]アクションを配置します。
以下の選択/入力をして保存します。
- 特別なフォルダーの名前:ドキュメント
- 生成された変数:%Documents%
[4]ファイルパスを設定する
[変数の設定]アクションを配置します。以下の入力・選択をして保存します。
- 変数:%filePath%
- 値:%Documents%\テキスト解析\
[5]キーを読み込む
[ファイル]アクショングループから[ファイルからテキストを読み取る]アクションを配置します。
以下の入力/選択をして保存します。
- ファイルパス:%filePath%キー情報.txt
- エンコード:UTF-8 (既定値)
- 生成された変数:%Key%
[6]入力ダイアログを表示する
実行時に検索ワードを入力するダイアログを表示します。[メッセージボックス]アクショングループから[入力ダイアログを表示]アクションを配置します。
以下の入力をして保存します。
- 入力ダイアログメッセージ:検索ワードを入力してください。
- 既定値:%word%
[7]検索ワードの言語を検出する
[Microsoftコグニティブ]―[テキスト分析]から[言語を検出します]アクションを配置します。
以下の入力/選択をして保存します。
- サーバーの場所:東日本(Azureのリソースでの選択に対応、2023/01/03現在西日本は選択不可)
- サブスクリプションキー:%Key%
- テキスト:%UserInput%
- 生成された変数1:%JSONOfLang%
[8]検出した言語の変数を設定する
[言語を検出します]アクションの戻り値を設定します。[変数]アクショングループから[変数の設定]アクションを配置します。
以下の入力/選択をして保存します。
- 変数:%lang%
- 値:%JSONOfLang['documents'][0]['detectedLanguages'][0].iso6391Name%
言語検出サービスのAPIの応答のJSONは以下のようになっています。
{ "documents": [ { "id": "text_1", "detectedLanguages": [ { "name": "Japanese", "iso6391Name": "ja", "score": 1.0 } ] } ], "errors": [] }
戻り値のうち重要な部分はdetectedLanguagesの部分で、iso6391NameにISO 639-1標準で定められている2文字(一部例外あり)の文字コードが入っています。
英語であれば「en」、日本語であれば「ja」となります。
次回のキー語句抽出アクションでは、言語のパラメータに使用します。その値をセットしたいので変数の値の式の設定は、上記のようになります。
参考ページ:
[9]フローを実行する
ここで一旦、ワークフローを実行してみます。
入力ボックスで入力した文字列によって、デザイナーの変数ペインのlang変数に言語コードが確認できます。ひらがながあるとja(日本語)になります。アルファベットだとen(英語)になります。漢字だとzh_chs(簡体字中国語)になります。当然ですが、1つの単語では判断するのは難しいのが分かります。
次回は引き続きこのフローを使って、英語でなければ日本語と判定することにしてフローデザインを続けます。
まとめ
Power Automate for desktopから人工知能(Azure Cognitive)で言語検出を行うサンプルを紹介しました。
次回引き続き、このフローを使って、英語でなければ日本語と判定することにしてフローデザインを続けます。