はじめに
UiPath Communications Miningについて書きます。
以前、Communications Miningにおけるモデルトレーニングの方法を記事にしました。
今回は学習済みのモデルをUiPath Robotから呼び出して、予測結果を得るまでの方法を解説します。
つかうもの
※クラウド環境は2024年1月時点のもの
Automation Cloud(Communications Mining) Enterprise版
Studio v2023.10 Enterprise版
アクティビティパックをインストールする
Studio/RobotからCommunications Miningを呼び出すにはUiPath.CommunicationsMining.Activitiesをインストールします。
ワークフローを作成する
Communications Miningへメールデータを投入し、予測結果を得るには、以下の2つアクティビティを使います。
- レコードを作成(Records.CreateRecord)
- レコードを予測(Predictions.PredictRecords)
レコードを作成
Communications Miningへインプットする用のフォーマットデータを作成します。
この前にメール取得系アクティビティ(GetOutlookMailMessagesなど)でメールメッセージを取得しておきます。
今回は必要最低限のプロパティのみ設定します。
- コミュニケーションデータの種類: 今回は「電子メール」
- レコードID: 今回は適当でよい(固定値にしておく)
- メッセージのタイムスタンプ: 今回は適当でよい(今の時刻にしておく)
- メッセージ本文: 取得したメールメッセージの本文
- 件名: 取得したメールメッセージの件名
- 出力: 次のアクティビティへ渡すための変数(UiPath.CommunicationsMining.Activities.Records.Models.Record型)
レコードを予測
上記で作成したレコードをインプットとして、Communications Miningへデータを投入し予測結果を得ます。
以下のプロパティを設定します。モデルを事前にトレーニングしておき、さらにStudioがAutomation Cloudへ接続している必要があります。
- プロジェクト名: 選択肢から選ぶ(接続先のCommunications Miningに依存)
- データセット名: 選択肢から選ぶ(接続先のCommunications Miningに依存)
- AIモデルのバージョン: 選択肢から選ぶ(接続先のCommunications Miningに依存)
- レコード: 上記で作成したレコード
- 出力: 予測結果(UiPath.CommunicationsMining.Activities.Predictions.Models.PredictResponse型)
予測結果を取り出す
「レコードを予測」アクティビティの出力から、予測されたラベルとエンティティ、さらには各予測に対する信頼度を抽出します。
正直使いづらい型だなあと・・・JSONで扱えないのですか??
例えば、ラベルの信頼度を取り出すには以下のコードを呼びます(%表記、小数第1位で四捨五入する場合)。
Math.Round(cmResult.GetLabel(ラベル名).Probability * 100, 1, MidpointRounding.AwayFromZero)
こちらはエンティティを取り出す例です。
cmResult.GetEntity(エンティティ名).FormattedValue
おわりに
アクティビティの使い方は以上です。そんなに難しくなかったと思います。
ちなみにアプリで作ってみるとこんな感じとなります。