データ分析で AI を使用する

概念情報

AICOMMAND コマンド

Analytics AI コマンドと外部 AI サービスを使用して、データ分析に AI を組み込むことができます。このノーコードまたはローコードのオプションをすると、AI サービスで実行させたい分析と返してほしい結果のタイプを記述する自然言語のユーザー プロンプトを Analytics インターフェイスで入力できます。

メモ

外部 AI サービスは、Diligent によって提供されません。お客様の組織が提供する必要があります。

組織によって使用が承認されている外部 AI サービスにのみ接続してください。機密データを Analytics から AI サービスに送信する場合は、必ずすべてのセキュリティプロトコルに従ってください。

AI の結果には不正確な部分やエラーが含まれる可能性があります。絶対的な正確さが必要な場合は、別の方法を使用して結果を検証します。

AI コマンドの使用目的

AI コマンドは、Analytics の既存のデータ分析機能を拡張または強化することを目的としており、それらに取って代わるものではありません。AI は、フリー テキスト フィールドの非構造化データを含むテキスト ベースのデータの定性的分析を行う場合に特に役立ちます。AIは、推論を用いてテキストを処理し、意味、意図、コンテキストを引き出したり、パターンを特定したりすることができます。この推論に基づく定性的分析を、定量的でルールベースの既存の Analytics コマンド セットを使用して実行することは困難または不可能です。

また、AI を使って インターネット上で公開されている情報をすばやく調査し、その調査結果を Analytics で構築しているデータ分析に組み込むこともできます。たとえば、ベンダー テーブル内の個々のベンダーの評判や費用請求の妥当性を AI に評価させることができます。

AI コマンドを使用すると、Analytics での作業に次のような分析を追加できます。

  • 分類リスク調査の回答の運用、戦略、財務、システムなどへの分類

  • 感情分析顧客レビュー、従業員フィードバック、自由回答式アンケートの質問、インタビューの記録の感情分析と分類

  • データ クレンジングトランザクションの説明からの個人識別情報 (PII) のクレンジング

  • 評価ベンダー名と住所に基づくベンダーの評価

  • 比較妥当性と表面上の異常を確認するための費用の説明と金額の比較

  • 相関関係数値評価やスコアなどの定量フィールドと自由回答データの相関の測定

AI コマンドの例

以下の例は AI コマンドの 3 つの有効な用途を示しています。他にも多くの有効な用途が存在しています。これらのタスクを手動で実行するには、非常に長い時間がかかります。

  • AI を使用したベンダー評価一般に公開されている情報を利用して、ベンダー テーブル内の各ベンダーの基本的な妥当性を迅速に評価します。

  • AI を使用した費用レビュー費用請求の妥当性を確認するために、費用の説明、単価、商品およびサービスに関する公開情報を検討します。

  • AI を使用した感情分析顧客コメント フィールドの非構造化テキストを処理して、顧客の気持ちや感情を推測し、結果に基づいてコメントを分類します。

AI を使用したベンダー評価

ベンダー テーブルの基本チェックを実行して、架空のベンダーが存在する可能性を明らかにします。AI サービスにベンダー名と住所のフィールドを入力し、ベンダーを Common(一般)、Rare(希少)、Unknown(不明)に分類するように指示します。

AI を使用した費用レビュー

P カード取引をレビューし、品目またはサービスと購入価格との間に不一致がある経費にフラグを付けたいと考えています。AI サービスに経費の説明と経費フィールドを入力し、経費が妥当かどうかを判断するように指示します。

AI を使用した感情分析

顧客のホテル レビューを含むテーブルで、感情分析と自由回答コメント フィールドの分類を実行したいと考えています。AI サービスにコメントを人間の基本的な 6 つの感情で分類するように指示します。

AI サービスを効果的に使用する

AI サービスは通常、各操作で処理するデータ量を制限します。Analytics テーブル内のレコードはデータ制限内に収まる可能性を高めるために、バッチで AI サービスに送信されます。バッチ処理は役に立ちますが、AI コマンドのパフォーマンスと応答時間を最適化するには、次のガイドラインに従う必要があります。

  • 分析目標のために厳密に必要なフィールドのみを送信するソース テーブル全体を送信しないようにします。送信するデータに一意の識別子フィールドを含めると、AI サービスから返されたテーブルを元のソース テーブルと結合または関連付けることができます。詳細については、「一意の識別子フィールドの作成」を参照してください。

  • 送信するレコードの数を制限するデータをAI サービスに送信する前に、データの準備とキュレーションの手順を実行してデータセットを抽出します。

  • AI サービスを使用して定性的分析を行う大規模な数値分析や定量分析に AI サービスを使用しないでください。この種の分析は、ソート、分類、要約、階層化などの既存の Analytics 操作を使用して、ローカルでより迅速かつ効率的に実行できます。

作業を開始する前に

これらの前提条件の設定は、AI コマンドを使用する前に行う必要があります。

  • Python のインストール

    コマンドを実行するコンピューターに互換性のあるバージョンの Python をインストールし、構成する必要があります。次の 2 つの Python ライブラリもインストールする必要があります。Pandas と OpenAI Python API。詳細については、「Python の Analytics 連携用設定」を参照してください。

  • AI サービスの接続設定

    オプション]ダイアログ ボックスで、外部 AI サービスと Analytics の接続に必要な設定の値を指定する必要があります。詳細については、「外部 AI サービスの接続設定」を参照してください。

外部 AI サービスを使用したデータの分析

AI コマンドを使用して、分析のために外部 AI サービスにデータを送信します。

  1. データを含んでいるテーブルを開きます。

  2. Analytics メイン メニューから、[分析] > [AI コマンド]の順に選択します。

    AI サービスの API キーを要求するメッセージが表示された場合は、[オプション]ダイアログ ボックスで API キーを指定する必要があります。詳細については、「外部 AI サービスの接続設定」を参照してください。

  3. フィールドの選択]を選択し、AI サービスに送信する 1 つ以上のフィールドを指定します。

    メモ

    分析目標に厳密に必要なフィールドのみを指定することで、AI サービスに送信されるデータの総量を制限します。

    AI サービスから返されたテーブルを元のソース テーブルと結合または関連付ける場合は、一意の識別子フィールドを含めます。詳細については、「一意の識別子フィールドの作成」を参照してください。

  4. 省略可能。AI サービスに送信されるレコードをフィルターリングするには、[If]をクリックし、[式ビルダー]ダイアログ ボックスを使って、フィルターとして使用する条件式を作成します。

    テーブル内の少なくとも 1 つのレコードがフィルターに含まれている必要があります。フィルターがテーブル内のすべてのレコードを除外した場合、Analytics にエラーが表示され、AI コマンドが実行されません。

    式ビルダーを使用した式の作成の詳細については、「 式ビルダーによる式の作成」を参照してください。

  5. 宛先]テキスト ボックスで、AI サービスから返されるデータを格納するテーブルの名前を指定します。

    宛先]をクリックし、ファイル エクスプローラーを使って返されるデータ テーブルを保存するフォルダーに移動します。

    メモ

    Analytics のテーブル名は、最長で 64 文字の英数字(拡張子 .FIL を含まない)に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。

  6. 処理の完了時に、テーブルを自動的に開くようにするには、[出力テーブルの使用]をオンにします。

  7. 次のいずれかを実行します。

    • Python スクリプト]フィールドを空白のままにして、Analytics のデフォルトの Python スクリプトを使用して AI サービスを操作します。

    • 独自の Python スクリプトを使用して AI サービスを操作します。

      Python スクリプト]フィールドで、使用する Python スクリプトのファイル パスと名前を指定します。

      例:C:\Users\<account_name>\Documents\ACL Data\<analytics_project_name>\Python_scripts\your_python_script.py

      Python スクリプトへの相対パスを指定できます。また、スクリプトが Analytics プロジェクト フォルダー内にある場合は、スクリプトのファイル名だけを指定することも可能です。

      参照]をクリックし、コンピューター上の Python スクリプトに移動することもできます。

      詳細については、「独自の Python スクリプトの使用」を参照してください。

  8. ユーザー プロンプト]テキスト フィールドで、AI サービスに入力するプロンプトを指定します。

    プロンプトは、送信する入力データの処理方法と、サービスが返信する出力を AI サービスに指示します。プロンプトの例については、「AI コマンドの例」を参照してください。

    作業スペースを増やすには、[プロンプトを編集]を選択して[ユーザー プロンプト ビルダー]を開きます。[使用可能なフィールド リスト]でフィールド名をダブルクリックして、[ユーザー プロンプト]テキスト フィールドにすばやく追加できます。

    メモ

    ユーザー プロンプト]フィールドに二重引用符 (") を含めないでください。二重引用符を使用すると、コマンドが失敗します。代わりに、フィールドで一重引用符 (') を使用することができます。

  9. AI モデル]フィールドに正しい AI モデル情報が含まれていることを確認します。

    必要に応じて、AI モデル情報を更新することができます。

    AI モデル]フィールドには、[オプション]ダイアログ ボックス([ツール] > [オプション] > [システム])で指定された値が事前入力されています。詳細については、「外部 AI サービスの接続設定」を参照してください。

  10. AI ベース URL]フィールドに AI サービス API の完全な URL が含まれていることを確認します。

    必要に応じて、AI サービス API の URL を更新できます。URL を更新する場合は、[オプション]ダイアログ ボックスの[AI API キー]も更新する必要がある可能性が高くなります。これは、AI サービスでの認証に必要なパスワードまたはライセンス キーの値です。

    AI ベース URL]フィールドには、[オプション]ダイアログ ボックス([ツール] > [オプション] > [システム])で指定された値が事前入力されています。詳細については、「外部 AI サービスの接続設定」を参照してください。

  11. 省略可能。[バッチ サイズ]フィールドで、AI サービスに送信される各バッチに含めるレコードの数を指定します。

    フィールドを空白のままにすると、デフォルトのバッチ サイズである 100 レコードが使用されます。100 未満の値を指定すると、バッチごとに AI サービスに送信されるデータの総量が減少します。バッチごとのデータ量を減らすことで、AI サービスのデータ制限内に収まる可能性が向上します。

  12. 省略可能。ダイアログ ボックスの[詳細]タブで、使用する範囲関連オプションを指定します。

    詳細については、「[詳細]タブ」を参照してください。

  13. コマンドを実行するには、[OK]をクリックします。

    AI サービスから返された出力テーブルでは、AI 分析の結果を単一の ai_response フィールドに格納します。

    AI サービスに送信するデータの量によっては、コマンドの実行に数分かかる場合があります。返される結果の種類をすぐに把握できるように、最初に 100 レコードの小さなテスト セットを送信することを検討してください。

    エラー メッセージが表示されて AI コマンドが実行できない場合は、バッチ サイズを 50 または 25 レコードに減らしてみてください。詳細については、「AI サービスを効果的に使用する」を参照してください。

    メモ

    ai_response フィールドに複数のコンポーネントまたは要素が含まれている場合、標準的な Analytics 手法を使用してコンポーネントを別々のフィールドに分離できます。詳細については、「ai_response フィールドでの複数のコンポーネントの分離」を参照してください。

AI コマンド ダイアログ ボックスのオプション

[詳細]タブ

オプション 説明
すべて ビュー内のすべてのレコード(デフォルトの選択対象)を処理します。
先頭 テーブル内の冒頭のレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。
次へ

テーブル内の現在選択されているレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。

メモ

"先頭" または "" オプションで指定されたレコード数は、テーブル内の物理的な順番またはインデックス順のレコードを参照するもので、ビューに適用されたフィルターやクイック ソートは一切無視します。ただし、分析操作の結果ではすべてのフィルターを考慮します。

ビューでクイック ソートが実行されている場合、"" は "先頭" のように動作します。

While

WHILE ステートメントを使用すると、条件に基づいて主テーブル内のレコードの処理を制限できます。

指定した条件が true と評価される間のみ、ビュー内のレコードが処理されます。条件が false と評価されるとすぐに処理が終了し、それ以上レコードは判断されません。詳細については、「 式ビルダーによる式の作成」を参照してください。

一意の識別子フィールドの作成

AI サービスから返されたテーブルを元のソース テーブルと結合したくても、一意の識別子フィールドがない場合は、AI コマンドを使用する前に RECNO( ) 関数を使用して識別子フィールドを作成することができます。

  1. ソース テーブルで、以下の式を使用する record_number という名前の演算フィールドを作成します。

    RECNO( )

    RECNO( ) 関数は、テーブル内の各レコードに対して、record_number フィールドに一意のレコード番号を追加します。

    詳細については、「基本演算フィールド」を参照してください。

  2. AI コマンドで指定したフィールドに record_number を含め、外部 AI サービスに送信します。

  3. record_number フィールドを共通キーフィールドとして使用し、AI サービスから返されたテーブルをソース テーブルと結合します。

    詳細については、「 テーブルの結合」を参照してください。