データ分析で AI を使用する
概念情報
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(不明)に分類するように指示します。
| ユーザープロンプト | これは一般的に知られているベンダーですか?出力値は、一般的な場合は COMMON、既知でも稀な場合は RARE、そうでない場合は UNKNOWN になる必要があります。 |
| AI の回答 |
Industrial Business Equip, 6 E Monroe St Ste 1004, RARE Officemax 896, 2300 E Highland Dr, COMMON Staples 500, 2910 E Harding Ave, COMMON Ingras Garden Images, 1203 N 4th St, UNKNOWN |
| AI がどのように役立つか | AI プロセスは、ベンダーに関する一般に入手可能な大量の情報を利用して、ベンダー テーブル内の各ベンダーの妥当性を迅速に評価します。 |
ユーザー プロンプトは、自分に適した方法で形を変えることができます。出力の 3 つのカテゴリの内訳の代わりに、次のようなより詳細なものが必要な場合があります。
-
収益性、成長性の確立
-
確立されたベンダー
-
一部の情報が利用可能
-
不明
AI を使用した費用レビュー
P カード取引をレビューし、品目またはサービスと購入価格との間に不一致がある経費にフラグを付けたいと考えています。AI サービスに経費の説明と経費フィールドを入力し、経費が妥当かどうかを判断するように指示します。
| ユーザープロンプト | 「説明」と「単価」の組み合わせを考慮して、そのコストが「一般的」か「異常」かを示します。 |
| AI の回答 |
5-Shelf Steel Shelving Unit, 112.50, Typical price for basic metal shelving(5段スチール棚ユニット、112.50 ドル、一般的な金属の棚の標準価格) 60" Urban Bookcase, Cherry, 276.20, Typical price for a quality wooden bookcase(60インチの都会的なブックケース、チェリー、276.20ドル、高品質の木製ブックケースの標準価格) Stainless Steel Water Bottle, 312.90, Unusually high for a water bottle(ステンレス製水筒、312.90ドル、水筒としては異常に高い) Deluxe High-Back Computer Operator Chair, 532.00, Typical for ergonomic chair(デラックスなハイバック コンピューター オペレーター用の椅子、532.00ドル、人間工学に基づいた椅子の標準価格) File Folder Red Lgl, 13.10, Slightly high for file folders(ファイル フォルダー赤リーガルサイズ、13.10ドル、ファイル フォルダーとしてはやや高め) Color Paper Grey Ltr Cascade, 22.50, Unusually high for colored paper(カラー ペーパー グレー レターサイズ カスケード、22.50ドル、カラー ペーパーとしては異常に高い) |
| AI がどのように役立つか | AI プロセスは、商品やサービスの価格に関する一般に入手可能な大量の情報を利用して、P カード取引テーブルの各費用の妥当性を迅速に評価します。 |
AI を使用した感情分析
顧客のホテル レビューを含むテーブルで、感情分析と自由回答コメント フィールドの分類を実行したいと考えています。AI サービスにコメントを人間の基本的な 6 つの感情で分類するように指示します。
簡単なユーザー プロンプト
| ユーザープロンプト | reviews_text フィールドで感情分析を実行し、以下の基本的な人間の感情によってレビューを分類します。幸福、怒り、恐怖、悲しみ、嫌悪、驚き |
|
ゲストのコメント #1 |
悪い:下の「ロビー」から少し騒音があるが、それも街の特徴の一部でしょう。良い:全体的に清潔感があって、感じが良く、フレンドリーで有能なスタッフがいて、ハッピー アワーが良かった。素晴らしいロケーション。 |
| AI の回答 #1 |
幸福 - わずかな騒音の懸念はあるものの、全般的に肯定的 |
|
ゲストのコメント #2 |
悪い:部屋の料金はひどく、Booking.com の料金が適用されず、大きな違いがあり、滞在が台無しになった。今のところ説明がない。良い:場所 |
|
AI の回答 #2 |
怒り - 立地が良いにもかかわらず、料金の不一致に不満を感じています。 |
| AI がどのように役立つか |
AI サービスは、顧客コメント フィールドの非構造化テキストを処理し、次のように推測できます。
AI による推論は、顧客が選択した特定の単語、強意語と修飾語(「非常に」、「極端に」、「ある程度」)、いやみや皮肉の存在、その他の様々な言語的および文脈的な側面に基づいて行われます。 推論のあらゆる側面に基づいて、AI プロセスは各コメントを 6 つの基本的な人間の感情のいずれかに割り当てます。 |
非常に限定的な長いユーザー プロンプト
ヒント
ChatGPT などのオンライン AI チャットボットにプロンプトを作成してもらい、必要に応じて改良することができます。たとえば、チャットボットに次のように指示します。「ホテル レビューのテーブルの顧客コメント フィールドで感情分析を行う際に使用する適切なプロンプトを教えて」
| ユーザープロンプト |
あなたはホスピタリティ業界の顧客フィードバック分析を専門とするエキスパート データ アナリストです。 あなたの仕事は、ホテルでの滞在についての各顧客のコメントの感情を評価することです。 各入力コメントに対して、次のような回答を返します。 感情 — 次のいずれか肯定的、中立的、または否定的。 sentiment_score(感情スコア) - 1.0(非常に否定的)~+1.0(非常に肯定的)の数値。 key_reasons(主な理由) — 感情を駆り立てたものを説明する短いリスト(1~3 フレーズ)(例:フレンドリーなスタッフ、汚れた部屋、素晴らしいロケーション)。 テーマ - 言及されている主な側面、スタッフ、清潔さ、食べ物、アメニティ、ロケーション、価値、快適さ、サービス、予約、その他。 重要: トーン、コンテキスト、修飾語を考慮します(例:悪くない = やや肯定的)。 感情が混在している場合は、全体的な印象の評価を基にします。 レビュー全体で簡潔にし、一貫性を維持します。 入力例:部屋は清潔で、スタッフは親切だったが、Wi-Fi は使えなかった。 想定される出力の例: 感情:評価する sentiment_score(感情スコア):0.4 key_reasons(主な理由):清潔な部屋、親切なスタッフ、Wi-Fi が使用できない テーマ:清潔さ、スタッフ、アメニティ |
|
ゲストのコメント #1 |
水辺の新しい商業地区に建つ新しいホテル。環状道路から容易にアクセスできます。フレンドリーなスタッフ、清潔な部屋、快適なベッドでした。唯一の不満は、私たちが降りてきた 2 回(土曜日の午前 7 時と午前 9 時)に、Hampton Inn の朝食の全メニューが提供されていなかったことです。午前 9 時のとき、食べ物は長い間容器に入れられていました。それでも自分で作るワッフルやおいしい卵ブリトーなど、他の場所のコンチネンタル ブレックファーストよりも選択肢が豊富です。コミュニティ ガレージの駐車料金は、ルーム キーがあれば無料で、最後に出るときの便利なルーム キー返却サービスも含まれていました。プールはありますが、ホット タブはありません。 |
| AI の回答 #1 |
感情:評価する sentiment_score(感情スコア):0.6 key_reasons(主な理由):清潔な部屋、フレンドリーなスタッフ、朝食の問題 テーマ:清潔さ、スタッフ、食べ物 |
|
ゲストのコメント #2 |
悪い:タイミングが悪かったようです。朝食で長い時間待たされ、私たちの後から来た人たちよりも長くかかりました。バレー パーキングで私たちの車が運ばれるまで、かなり長い時間待たされました。コミュニケーションに問題があったようです。スタッフは親切で、私たちにもそうでしたが、それがいつもの傾向のようで、少しがっかりしました。良い:設備の整った部屋、絶好のロケーション。 |
|
AI の回答 #2 |
感情:どちらでもない sentiment_score(感情スコア):0.3 key_reasons(主な理由):いい部屋、サービスに時間がかかる テーマ:サービス、アメニティ |
| AI がどのように役立つか |
前の例で説明した推論と基本的な分類に加えて、このより徹底した AI 分析により、出力に複数の有効なコンポーネントが提供されます。
|
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 サービスにデータを送信します。
-
データを含んでいるテーブルを開きます。
-
Analytics メイン メニューから、[分析] > [AI コマンド]の順に選択します。
AI サービスの API キーを要求するメッセージが表示された場合は、[オプション]ダイアログ ボックスで API キーを指定する必要があります。詳細については、「外部 AI サービスの接続設定」を参照してください。
-
[フィールドの選択]を選択し、AI サービスに送信する 1 つ以上のフィールドを指定します。
メモ
分析目標に厳密に必要なフィールドのみを指定することで、AI サービスに送信されるデータの総量を制限します。
AI サービスから返されたテーブルを元のソース テーブルと結合または関連付ける場合は、一意の識別子フィールドを含めます。詳細については、「一意の識別子フィールドの作成」を参照してください。
-
省略可能。AI サービスに送信されるレコードをフィルターリングするには、[If]をクリックし、[式ビルダー]ダイアログ ボックスを使って、フィルターとして使用する条件式を作成します。
テーブル内の少なくとも 1 つのレコードがフィルターに含まれている必要があります。フィルターがテーブル内のすべてのレコードを除外した場合、Analytics にエラーが表示され、AI コマンドが実行されません。
式ビルダーを使用した式の作成の詳細については、「 式ビルダーによる式の作成」を参照してください。
-
[宛先]テキスト ボックスで、AI サービスから返されるデータを格納するテーブルの名前を指定します。
[宛先]をクリックし、ファイル エクスプローラーを使って返されるデータ テーブルを保存するフォルダーに移動します。
メモ
Analytics のテーブル名は、最長で 64 文字の英数字(拡張子 .FIL を含まない)に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。
-
処理の完了時に、テーブルを自動的に開くようにするには、[出力テーブルの使用]をオンにします。
-
次のいずれかを実行します。
-
[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 スクリプトの使用」を参照してください。
-
-
[ユーザー プロンプト]テキスト フィールドで、AI サービスに入力するプロンプトを指定します。
プロンプトは、送信する入力データの処理方法と、サービスが返信する出力を AI サービスに指示します。プロンプトの例については、「AI コマンドの例」を参照してください。
作業スペースを増やすには、[プロンプトを編集]を選択して[ユーザー プロンプト ビルダー]を開きます。[使用可能なフィールド リスト]でフィールド名をダブルクリックして、[ユーザー プロンプト]テキスト フィールドにすばやく追加できます。
メモ
[ユーザー プロンプト]フィールドに二重引用符 (") を含めないでください。二重引用符を使用すると、コマンドが失敗します。代わりに、フィールドで一重引用符 (') を使用することができます。
-
[AI モデル]フィールドに正しい AI モデル情報が含まれていることを確認します。
必要に応じて、AI モデル情報を更新することができます。
[AI モデル]フィールドには、[オプション]ダイアログ ボックス([ツール] > [オプション] > [システム])で指定された値が事前入力されています。詳細については、「外部 AI サービスの接続設定」を参照してください。
-
[AI ベース URL]フィールドに AI サービス API の完全な URL が含まれていることを確認します。
必要に応じて、AI サービス API の URL を更新できます。URL を更新する場合は、[オプション]ダイアログ ボックスの[AI API キー]も更新する必要がある可能性が高くなります。これは、AI サービスでの認証に必要なパスワードまたはライセンス キーの値です。
[AI ベース URL]フィールドには、[オプション]ダイアログ ボックス([ツール] > [オプション] > [システム])で指定された値が事前入力されています。詳細については、「外部 AI サービスの接続設定」を参照してください。
-
省略可能。[バッチ サイズ]フィールドで、AI サービスに送信される各バッチに含めるレコードの数を指定します。
フィールドを空白のままにすると、デフォルトのバッチ サイズである 100 レコードが使用されます。100 未満の値を指定すると、バッチごとに AI サービスに送信されるデータの総量が減少します。バッチごとのデータ量を減らすことで、AI サービスのデータ制限内に収まる可能性が向上します。
-
省略可能。ダイアログ ボックスの[詳細]タブで、使用する範囲関連オプションを指定します。
詳細については、「[詳細]タブ」を参照してください。
-
コマンドを実行するには、[OK]をクリックします。
AI サービスから返された出力テーブルでは、AI 分析の結果を単一の ai_response フィールドに格納します。
AI サービスに送信するデータの量によっては、コマンドの実行に数分かかる場合があります。返される結果の種類をすぐに把握できるように、最初に 100 レコードの小さなテスト セットを送信することを検討してください。
エラー メッセージが表示されて AI コマンドが実行できない場合は、バッチ サイズを 50 または 25 レコードに減らしてみてください。詳細については、「AI サービスを効果的に使用する」を参照してください。
メモ
ai_response フィールドに複数のコンポーネントまたは要素が含まれている場合、標準的な Analytics 手法を使用してコンポーネントを別々のフィールドに分離できます。詳細については、「ai_response フィールドでの複数のコンポーネントの分離」を参照してください。
AI コマンド ダイアログ ボックスのオプション
[詳細]タブ
| オプション | 説明 |
|---|---|
| すべて | ビュー内のすべてのレコード(デフォルトの選択対象)を処理します。 |
| 先頭 | テーブル内の冒頭のレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。 |
| 次へ |
テーブル内の現在選択されているレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。 メモ "先頭" または "次" オプションで指定されたレコード数は、テーブル内の物理的な順番またはインデックス順のレコードを参照するもので、ビューに適用されたフィルターやクイック ソートは一切無視します。ただし、分析操作の結果ではすべてのフィルターを考慮します。 ビューでクイック ソートが実行されている場合、"次" は "先頭" のように動作します。 |
| While |
WHILE ステートメントを使用すると、条件に基づいて主テーブル内のレコードの処理を制限できます。 指定した条件が true と評価される間のみ、ビュー内のレコードが処理されます。条件が false と評価されるとすぐに処理が終了し、それ以上レコードは判断されません。詳細については、「 式ビルダーによる式の作成」を参照してください。 |
一意の識別子フィールドの作成
AI サービスから返されたテーブルを元のソース テーブルと結合したくても、一意の識別子フィールドがない場合は、AI コマンドを使用する前に RECNO( ) 関数を使用して識別子フィールドを作成することができます。
-
ソース テーブルで、以下の式を使用する record_number という名前の演算フィールドを作成します。
RECNO( )
RECNO( ) 関数は、テーブル内の各レコードに対して、record_number フィールドに一意のレコード番号を追加します。
詳細については、「基本演算フィールド」を参照してください。
-
AI コマンドで指定したフィールドに record_number を含め、外部 AI サービスに送信します。
-
record_number フィールドを共通キーフィールドとして使用し、AI サービスから返されたテーブルをソース テーブルと結合します。
詳細については、「 テーブルの結合」を参照してください。