> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # コンテンツ類似度スコアラー `createContentSimilarityScorer()` 関数は 2 つの文字列間のテキスト類似度を測定し、どの程度一致しているかを示すスコアを返します。大文字と小文字の区別や空白の処理を設定できます。 ## パラメーター `createContentSimilarityScorer()` 関数は、次のプロパティを持つ単一のオプションオブジェクトを受け取ります。 **ignoreCase** (`boolean`): 文字列の比較時に大文字と小文字の違いを無視するかどうか。 (Default: `true`) **ignoreWhitespace** (`boolean`): 文字列の比較時に空白を正規化するかどうか。 (Default: `true`) この関数は MastraScorer クラスのインスタンスを返します。`.run()` メソッドとその入出力の詳細については、[MastraScorer リファレンス](https://mastra.zisheng.pro/ja/reference/evals/mastra-scorer)を参照してください。 ## `.run()` の戻り値 **runId** (`string`): 実行 ID(任意)。 **preprocessStepResult** (`object`): 処理済みの入力と出力を持つオブジェクト: { processedInput: string, processedOutput: string } **analyzeStepResult** (`object`): 類似度を持つオブジェクト: { similarity: number } **score** (`number`): 類似度スコア(0〜1)。1 は完全な類似を示します。 ## スコアリングの詳細 スコアラーは、文字単位の照合と設定可能なテキスト正規化によってテキスト類似度を評価します。 ### スコアリング処理 1. テキストを正規化します。 - 大文字と小文字を正規化(ignoreCase: true の場合) - 空白を正規化(ignoreWhitespace: true の場合) 2. string-similarity アルゴリズムを使って処理済みの文字列を比較します。 - 文字シーケンスを分析 - 単語境界を整列 - 相対位置を考慮 - 長さの違いを考慮 最終スコア: `similarity_value * scale` ## 例 期待される Agent の出力と実際の出力のテキスト類似度を評価します。 ```typescript import { runEvals } from '@mastra/core/evals' import { createContentSimilarityScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createContentSimilarityScorer() const result = await runEvals({ data: [ { input: 'Summarize the benefits of TypeScript', groundTruth: 'TypeScript provides static typing, better tooling support, and improved code maintainability.', }, { input: 'What is machine learning?', groundTruth: 'Machine learning is a subset of AI that enables systems to learn from data without explicit programming.', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, groundTruth: scorerResults[scorer.id].groundTruth, }) }, }) console.log(result.scores) ``` `runEvals` の詳細については、[runEvals リファレンス](https://mastra.zisheng.pro/ja/reference/evals/run-evals)を参照してください。 このスコアラーを Agent に追加する方法については、[スコアラーの概要](https://mastra.zisheng.pro/ja/docs/evals/overview)ガイドを参照してください。 ### スコアの解釈 類似度スコアは 0〜1 です。 - **1.0**: 完全に一致し、コンテンツはほぼ同一です。 - **0.7〜0.9**: 類似度が高く、語句の選択や構造にわずかな違いがあります。 - **0.4〜0.6**: 類似度は中程度で、全体的には重なるものの明確な違いがあります。 - **0.1〜0.3**: 類似度が低く、共通する要素や意味はわずかです。 - **0.0**: 類似性がなく、コンテンツはまったく異なります。 ## 関連項目 - [完全性スコアラー](https://mastra.zisheng.pro/ja/reference/evals/completeness) - [テキスト差分スコアラー](https://mastra.zisheng.pro/ja/reference/evals/textual-difference) - [回答関連性スコアラー](https://mastra.zisheng.pro/ja/reference/evals/answer-relevancy) - [キーワードカバレッジスコアラー](https://mastra.zisheng.pro/ja/reference/evals/keyword-coverage)