> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 키워드 적용 범위 득점자 그만큼`createKeywordCoverageScorer()`함수는 LLM의 출력이 입력의 중요한 키워드를 얼마나 잘 포함하는지 평가합니다. 일반적인 단어와 불용어를 무시하면서 키워드 존재 여부와 일치 여부를 분석합니다. ## 매개변수 그만큼`createKeywordCoverageScorer()` function doesn't take any options. 이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. `.run()` 메서드와 해당 입력/출력에 대한 자세한 내용은 [MastraScorer 참조](https://mastra.zisheng.pro/ko/reference/evals/mastra-scorer)를 확인하세요. ## `.run()`보고 **runId** (`string`): 실행 ID입니다(선택 사항). **preprocessStepResult** (`object`): 추출된 키워드가 포함된 객체: { referenceKeywords: Set\, responseKeywords: Set\ } **analyzeStepResult** (`object`): 키워드 포함 범위가 포함된 객체: { totalKeywords: number, matchedKeywords: number } **score** (`number`): 일치하는 키워드의 비율을 나타내는 포함 범위 점수(0\~1)입니다. `.run()`다음과 같은 형태로 결과를 반환합니다. ```typescript { runId: string, extractStepResult: { referenceKeywords: Set, responseKeywords: Set }, analyzeStepResult: { totalKeywords: number, matchedKeywords: number }, score: number } ``` ## 채점 세부정보 채점자는 키워드를 다음 기능과 일치시켜 키워드 적용 범위를 평가합니다. - 일반적인 단어 및 불용어 필터링(예: "the", "a", "and") - 대소문자를 구분하지 않는 일치 - 단어 형태의 변형 처리 - 전문 용어 및 복합어에 대한 특별 처리 ### 채점 과정 1. 입력 및 출력에서 ​​키워드를 처리합니다. - 일반적인 단어와 중지 단어를 필터링합니다. - 대소문자 및 단어 형식을 정규화합니다. - 특수 용어 및 합성어를 처리합니다. 2. 키워드 적용 범위를 계산합니다. - 텍스트 간의 키워드를 일치시킵니다. - 성공적인 일치 횟수를 계산합니다. - 적용 비율을 계산합니다. 최종 점수:`(matched_keywords / total_keywords) * scale` ### 점수 해석 0과 1 사이의 적용 범위 점수: - **1.0**: 전체 범위, 모든 키워드가 있습니다. - **0.7\~0.9**: 높은 커버리지, 대부분의 키워드 포함. - **0.4\~0.6**: 부분적으로 보도되었으며 일부 키워드가 존재합니다. - **0.1\~0.3**: 적용 범위가 낮고 일치하는 키워드가 거의 없습니다. - **0.0**: 응답에 키워드가 포함되어 있지 않습니다. ### 특별한 경우 채점자는 몇 가지 특별한 경우를 처리합니다. - 빈 입력/출력: 둘 다 비어 있으면 1.0 점수를 반환하고 하나만 비어 있으면 0.0 점수를 반환합니다. - 단일 단어: 단일 키워드로 처리됩니다. - 기술 용어: 복합 기술 용어(예: "React.js", "기계 학습")를 유지합니다. - 대소문자 차이: "JavaScript"는 "javascript"와 일치합니다. - 공통 단어: 유용한 키워드에 집중하기 위해 채점 시 무시됨 ## 예 입력 쿼리와 Agent 응답 간의 키워드 적용 범위를 평가합니다. ```typescript import { runEvals } from '@mastra/core/evals' import { createKeywordCoverageScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createKeywordCoverageScorer() const result = await runEvals({ data: [ { input: 'JavaScript frameworks like React and Vue', }, { input: 'TypeScript offers interfaces, generics, and type inference', }, { input: 'Machine learning models require data preprocessing, feature engineering, and hyperparameter tuning', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, }) }, }) console.log(result.scores) ``` `runEvals`에 대한 자세한 내용은 [runEvals 참조](https://mastra.zisheng.pro/ko/reference/evals/run-evals)를 확인하세요. 이 득점자를 Agent에 추가하려면 다음을 참조하세요.[Scorers overview](https://mastra.zisheng.pro/ko/docs/evals/overview) guide. ## 관련된 - [완전성 득점자](https://mastra.zisheng.pro/ko/reference/evals/completeness) - [콘텐츠 유사성 점수 측정기](https://mastra.zisheng.pro/ko/reference/evals/content-similarity) - [답변 관련성 득점자](https://mastra.zisheng.pro/ko/reference/evals/answer-relevancy) - [텍스트 차이 득점자](https://mastra.zisheng.pro/ko/reference/evals/textual-difference)