キーワード網羅性の評価
We just released a new evals API called Scorers, with a more ergonomic API and more metadata stored for error analysis, and more flexibility to evaluate data structures. It’s fairly simple to migrate, but we will continue to support the existing Evals API.
KeywordCoverageMetric
を使って、コンテキストで要求されるキーワードやフレーズが応答にどれだけ正確に含まれているかを評価します。このメトリクスは query
と response
を受け取り、スコアと、キーワード一致の統計を含む info
オブジェクトを返します。
インストール
npm install @mastra/evals
完全カバレッジの例
この例では、応答が入力の主要な用語を余すところなく反映しています。必要なキーワードがすべて含まれており、欠落のない完全なカバレッジになっています。
import { KeywordCoverageMetric } from "@mastra/evals/nlp";
const metric = new KeywordCoverageMetric();
const query = "JavaScript frameworks like React and Vue.";
const response = "Popular JavaScript frameworks include React and Vue for web development";
const result = await metric.measure(query, response);
console.log(result);
完全カバレッジの出力
スコアが1であることは、想定されるすべてのキーワードが応答内で見つかったことを示します。info
フィールドは、マッチしたキーワード数が入力から抽出されたキーワードの総数と一致していることを示しています。
{
score: 1,
info: {
totalKeywords: 4,
matchedKeywords: 4
}
}
部分的なカバレッジの例
この例では、応答には入力の重要なキーワードの一部は含まれていますが、すべては含まれていません。スコアは部分的なカバレッジを反映しており、主要な用語が欠落しているか、または一部しか一致していないことを示します。
import { KeywordCoverageMetric } from "@mastra/evals/nlp";
const metric = new KeywordCoverageMetric();
const query = "TypeScript offers interfaces, generics, and type inference.";
const response = "TypeScript provides type inference and some advanced features";
const result = await metric.measure(query, response);
console.log(result);
部分的なカバレッジの出力
スコアが 0.5 の場合、期待されるキーワードの半分しか応答内で見つからなかったことを示します。info
フィールドには、入力で特定された総数に対して、いくつの用語が一致したかが表示されます。
{
score: 0.5,
info: {
totalKeywords: 6,
matchedKeywords: 3
}
}
最小限のカバレッジ例
この例では、応答には入力の重要なキーワードがほとんど含まれていません。スコアはカバレッジが最小限であることを反映しており、主要な用語の多くが欠落しているか考慮されていません。
import { KeywordCoverageMetric } from "@mastra/evals/nlp";
const metric = new KeywordCoverageMetric();
const query = "Machine learning models require data preprocessing, feature engineering, and hyperparameter tuning";
const response = "Data preparation is important for models";
const result = await metric.measure(query, response);
console.log(result);
最小限のカバレッジ出力
低いスコアは、期待されるキーワードのうちごく一部しか応答に含まれていないことを示します。info
フィールドは、合計キーワード数と一致したキーワード数の差を示し、カバレッジ不足を示唆します。
{
score: 0.2,
info: {
totalKeywords: 10,
matchedKeywords: 2
}
}
メトリックの設定
KeywordCoverageMetric
は既定の設定で作成できます。追加の設定は不要です。
const metric = new KeywordCoverageMetric();
設定オプションの一覧については KeywordCoverageMetric をご覧ください。
結果の理解
KeywordCoverageMetric
は次の形式で結果を返します:
{
score: number,
info: {
totalKeywords: number,
matchedKeywords: number
}
}
キーワード網羅スコア
0〜1 の範囲の網羅スコア:
- 1.0: 完全に網羅 — すべてのキーワードを含む。
- 0.7–0.9: 高水準の網羅 — ほとんどのキーワードを含む。
- 0.4–0.6: 部分的な網羅 — 一部のキーワードを含む。
- 0.1–0.3: 低水準の網羅 — 該当するキーワードが少ない。
- 0.0: 網羅なし — キーワードが見つからない。
キーワード網羅情報
以下の詳細統計を含みます:
- 入力中のキーワード総数
- 一致したキーワード数
- 網羅率の算出
- 専門用語の扱い