> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # 內容相似度評分器 `createContentSimilarityScorer()` 函式會測量兩個字串之間的文字相似度,並提供一個分數表示兩者的相符程度。此函式支援設定是否區分大小寫及如何處理空白字元。 ## 參數 `createContentSimilarityScorer()` 函式接受包含下列屬性的單一選項物件: **ignoreCase** (`boolean`): 比較字串時是否忽略大小寫差異。 (Default: `true`) **ignoreWhitespace** (`boolean`): 比較字串時是否正規化空白字元。 (Default: `true`) 此函式會傳回 MastraScorer 類別的執行個體。如需 `.run()` 方法及其輸入/輸出的詳細資訊,請參閱 [MastraScorer 參考文件](https://mastra.zisheng.pro/zh-TW/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-TW/reference/evals/run-evals)。 若要將此評分器加入 Agent,請參閱[評分器概觀](https://mastra.zisheng.pro/zh-TW/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-TW/reference/evals/completeness) - [文字差異評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/textual-difference) - [答案相關性評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/answer-relevancy) - [關鍵字涵蓋率評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/keyword-coverage)