統計テキスト分析。
注
詳細については、「 テキストと画像 」タブを参照してください。
テキスト コーパスを構成トークンに分割し、分析用に準備しました。テキストから意味を推測するために使用できる一般的な統計分析手法がいくつかあります。
頻度分析
ドキュメントで説明されているトピックを確認する最も明白な方法は、正規化された各トークンが表示される回数を単純にカウントすることです。 このドキュメントでより頻繁に使用される用語は、説明する主題またはテーマを特定するのに役立つ可能性があることを前提とします。 簡単に言えば、特定の文書で最も一般的に使用される単語を特定できる場合、多くの場合、ドキュメントの内容を理解できます。
たとえば、次のテキストを考えてみます。
AI in modern business delivers transformative benefits by enhancing efficiency, decision-making, and customer experiences. Businesses can leverage AI to automate repetitive tasks, freeing employees to focus on strategic work, while predictive analytics and machine learning models enable data-driven decisions that improve accuracy and speed. AI-powered tools like Copilot streamline workflows across marketing, finance, and operations, reducing costs and boosting productivity. Additionally, intelligent applications personalize customer interactions, driving engagement and loyalty. By embedding AI into core processes, businesses benefit from the ability to innovate faster, adapt to market changes, and maintain a competitive edge in an increasingly digital economy.
テキストにトークン化、正規化、およびレンマ化を適用した後、各用語の頻度をカウントして集計できます。次の部分的な結果が生成されます。
| 任期 | 頻度 |
|---|---|
ai |
4 |
business |
3 |
benefit |
2 |
customer |
2 |
decision |
2 |
market |
2 |
ability |
1 |
accuracy |
1 |
| ... | ... |
これらの結果から、最も頻繁に発生する用語は、テキストが AI とそのビジネス上の利点について説明していることを示しています。
単語の出現頻度 - 逆文書頻度 (TF-IDF)
各トークンの出現回数をカウントする単純な頻度分析は、1 つのドキュメントを分析する効果的な方法ですが、同じコーパス内の複数のドキュメントを区別する必要がある場合は、各ドキュメントで最も関連性の高いトークンを判断する方法が必要です。
たとえば、次の 2 つのテキスト サンプルを考えてみましょう。
サンプル A:
Microsoft Copilot Studio enables declarative AI agent creation using natural language, prompts, and templates. With this declarative approach, an AI agent is configured rather than programmed: makers define intents, actions, and data connections, then publish the agent to channels. Microsoft Copilot Studio simplifies agent orchestration, governance, and lifecycles so an AI agent can be iterated quickly. Using Microsoft Copilot Studio helps modern businesses deploy Microsoft AI agent solutions fast.
サンプル B:
Microsoft Foundry enables code‑based AI agent development with SDKs and APIs. Developers write code to implement agent conversations, tool calling, state management, and custom pipelines. In Microsoft Foundry, engineers can use Python or Microsoft C#, integrate Microsoft AI services, and manage CI/CD to deploy the AI agent. This code-first development model supports extensibility and performance while building Microsoft Foundry AI agent applications.
これらのサンプルで最も頻繁に使用される上位 3 つの用語を次の表に示します。
サンプル A:
| 任期 | 頻度 |
|---|---|
agent |
6 |
ai |
4 |
microsoft |
4 |
サンプル B:
| 任期 | 頻度 |
|---|---|
microsoft |
5 |
agent |
4 |
ai |
4 |
結果からわかるように、両方のサンプルで最も一般的な単語は同じです ("agent"、 "Microsoft"、 "AI")。 これは、両方のドキュメントが同様の全体的なテーマをカバーしていることを示していますが、個々のドキュメントを区別するのに役立ちません。 使用頻度の低い用語の数を調べることは役立つかもしれませんが、Microsoft の AI ドキュメントに基づくコーパスの分析を簡単に想像できます。その結果、すべてのドキュメントで多数の用語が共通になります。各ドキュメントで説明されている特定のトピックを特定するのが難しくなります。
この問題に対処するために、 用語頻度 - 逆ドキュメント頻度 (TF-IDF) は、文書のコレクション全体のより一般的な頻度と比較して、1 つの文書に単語または用語が出現する頻度に基づいてスコアを計算する手法です。 この手法を使用すると、特定の文書で頻繁に出現するが、他の多くの文書では比較的稀に出現する単語の関連性が高いと見なされます。 個々のドキュメントの用語の TF-IDF を計算するには、次の 3 つの手順を使用できます。
用語頻度の計算 (TF): これは、文書に単語が表示される回数だけです。 たとえば、
"agent"という単語が文書に 6 回表示される場合は、tf(agent) = 6。逆ドキュメント頻度 (IDF) の計算: すべてのドキュメントで単語がどれだけ一般的かまれかを確認します。 すべての文書に単語が表示される場合、特別なものではありません。 IDF の計算に使用される数式は
idf(t) = log(N / df(t))(Nはドキュメントの合計数、df(t)は単語tを含むドキュメントの数) です。それらを組み合わせて TF-IDF を計算する: TF と IDF を乗算してスコアを取得します。
tfidf(t, d) = tf(t, d) * log(N / df(t))
TF-IDF スコアが高い場合は、単語が 1 つのドキュメントに頻繁に表示されますが、他の文書ではまれに出現することを示します。 スコアが低い場合は、単語が多くのドキュメントで一般的であることを示します。 AI エージェントに関する 2 つのサンプルでは、 "AI"、 "Microsoft"、および "agent" が両方のサンプル (N = 2, df(t) = 2) に表示されるため、IDF は log(2/2) = 0されるため、TF-IDF では識別的な重みは含めなくなります。 サンプルの上位 3 つの TF-IDF 結果は次のとおりです。
サンプル A:
| 任期 | TF-IDF |
|---|---|
copilot |
2.0794 |
studio |
2.0794 |
declarative |
1.3863 |
サンプル B:
| 任期 | TF-IDF |
|---|---|
code |
2.0794 |
develop |
2.0794 |
foundry |
2.0794 |
これらの結果から、サンプル A は Copilot Studio での宣言型エージェントの作成に関する記述であり、サンプル B は Microsoft Foundry を使用したコードベースのエージェント開発に関する記述であることが明らかになります。
"Bag-of-words"(単語の袋)機械学習手法
バッグ オブ ワード は、単語の頻度または出現回数のベクトルとしてテキスト トークンを表し、文法と単語の順序を無視する特徴抽出手法に付けられた名前です。 この表現は、Naive Bayes のような機械学習アルゴリズムの入力になります。これは、ベイズの定理を適用して、単語の頻度に基づいてドキュメントの可能性のあるクラスを予測する確率論的分類子です。
たとえば、この手法を使用して、電子メールのスパム フィルター処理を実行する機械学習モデルをトレーニングできます。
"miracle cure"、"lose weight fast"、および "アンチエイジング" という単語は、通常のメールよりも疑わしい正常性製品に関するスパム メールに頻繁に表示される可能性があり、トレーニング済みのモデルによって、これらの単語を含むメッセージに潜在的なスパムとしてフラグが設定される場合があります。
感情 分析 を実装するには、同じ方法を使用して、感情的なトーンでテキストを分類します。 bag-of-words は特徴を提供し、モデルはこれらの特徴を使用して確率を推定し、"肯定的" や "負" のようなセンチメント ラベルを割り当てます。
TextRank
TextRank は、接続された ノードのネットワークとしてテキストをモデル化する教師なしグラフ ベースのアルゴリズムです。 たとえば、ドキュメント内の各文はノードと見なされ、それらの間の接続 (エッジ) は、含まれる単語の類似性に基づいてスコア付けされます。 TextRank は、一般的に、全体の件名を最もよく表すドキュメント内の文のサブセットを識別することに基づいてテキストを要約するために使用されます。
TextRank アルゴリズムは、Google の PageRank アルゴリズム (これらの間のリンクに基づいて Web ページをランク付けする) と同じ原則をテキストに適用します。 重要な考え方は、文が他の多くの重要な文と似ている場合に重要であるということです。 このアルゴリズムは、次の手順で動作します。
グラフを作成する: 各文はノードになり、それらを接続するエッジは類似性によって重み付けされます (多くの場合、文ベクトル間の単語の重複またはコサインの類似性を使用して測定されます)。
ランクを繰り返し計算する: 各ノードのスコアは、それに接続されているノードのスコアに基づいて計算されます。 数式は
TextRank(Sᵢ) = (1-d) + d * Σ(wⱼᵢ / Σwⱼₖ) * TextRank(Sⱼ)です (dは減衰係数 (通常は 0.85)、wⱼᵢは文のjから文のiまでのエッジの重み、合計はiに接続されているすべての文を反復処理します)。上位の文を抽出する: 収束後、最高スコアの文がサマリーとして選択されます。
たとえば、クラウド コンピューティングに関する次のドキュメントを考えてみましょう。
Cloud computing provides on-demand access to computing resources. Computing resources include servers, storage, and networking. Azure is Microsoft's cloud computing platform. Organizations use cloud platforms to reduce infrastructure costs. Cloud computing enables scalability and flexibility.
このドキュメントの概要を生成するために、TextRank プロセスは、このドキュメントを文に分割することから始まります。
Cloud computing provides on-demand access to computing resources.Computing resources include servers, storage, and networking.Azure is Microsoft's cloud computing platform.Organizations use cloud platforms to reduce infrastructure costs.Cloud computing enables scalability and flexibility.
次に、類似性 (単語の重複) に基づいて重みを持つ文の間にエッジが作成されます。 この例では、エッジの重みは次のようになります。
- 文 1 <-> 文 2: 0.5 (共有
"computing resources") - 文 1 <-> 文 3: 0.6 (共有
"cloud computing") - 文 1 <-> 文 4: 0.2 (共有
"cloud") - 文 1 <-> 文 5: 0.7 (共有
"cloud computing") - 文 2 <-> 文 3: 0.2 (制限付き重複)
- 文 2 <-> 文 4: 0.1 (制限付き重複)
- 文 2 <-> 文 5: 0.1 (共有
"computing") - 文 3 <-> 文 4: 0.5 (シェア比率
"cloud platforms") - 文 3 <-> 文 5: 0.4 (共有
"cloud computing") - 文 4 <-> 文 5: 0.3 (制限付き重複)
これらの重みを使用して TextRank スコアを繰り返し計算した後、文 1、3、および 5 は、共通の用語と概念を通じて他の文によく結びついているため、最高のスコアを受け取る可能性があります。 これらの文は、簡潔な要約を形成するために選択されます。 "Cloud computing provides on-demand access to computing resources. Azure is Microsoft's cloud computing platform. Cloud computing enables scalability and flexibility."
注
最も関連性の高い文を選択してドキュメントの概要を生成することは、 抽出的な 要約の形式です。 この方法では、新しいテキストは生成されません。概要は元のテキストのサブセットで構成されます。 セマンティック モデリングの最近の開発では、 抽象 要約も可能になります。この要約では、ソース ドキュメントの主要なテーマを要約する新しい言語が生成されます。
TextRank は 、キーワード抽出用の単語レベルで適用することもできます。ここで、単語 (文ではなく) がノードになり、エッジは固定ウィンドウ内での同時出現を表します。 最上位の単語は、ドキュメントのメイン トピックを表す重要な用語として抽出されます。