> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/llms.txt # 內容相似度評分器 `createContentSimilarityScorer()` 函式會量度兩個字串之間的文本相似度,並提供表示兩者相符程度的分數。它支援設定大小寫敏感度及空白字元處理方式。 ## 參數 `createContentSimilarityScorer()` 函式接受一個選項物件,當中包含以下屬性: **ignoreCase** (`boolean`): 比較字串時是否忽略大小寫差異。 (Default: `true`) **ignoreWhitespace** (`boolean`): 比較字串時是否標準化空白字元。 (Default: `true`) 此函式會傳回 MastraScorer 類別的實例。有關 `.run()` 方法及其輸入/輸出的詳情,請參閱 [MastraScorer 參考](https://mastra.zisheng.pro/zh-HK/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. 使用字串相似度演算法比較已處理的字串: - 分析字元序列 - 對齊詞語邊界 - 考慮相對位置 - 計入長度差異 最終分數:`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/zh-HK/reference/evals/run-evals)。 如要將此評分器加入 Agent,請參閱 [評分器概覽](https://mastra.zisheng.pro/zh-HK/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/zh-HK/reference/evals/completeness) - [文本差異評分器](https://mastra.zisheng.pro/zh-HK/reference/evals/textual-difference) - [答案相關度評分器](https://mastra.zisheng.pro/zh-HK/reference/evals/answer-relevancy) - [關鍵字涵蓋率評分器](https://mastra.zisheng.pro/zh-HK/reference/evals/keyword-coverage)