Skip to Content
リファレンス評価TextualDifference

TextualDifferenceMetric

TextualDifferenceMetric クラスは、シーケンスマッチングを使用して2つの文字列間のテキスト差分を測定します。このクラスは、一方のテキストをもう一方に変換するために必要な操作数を含む、変更に関する詳細な情報を提供します。

基本的な使い方

import { TextualDifferenceMetric } from "@mastra/evals/nlp"; const metric = new TextualDifferenceMetric(); const result = await metric.measure( "The quick brown fox", "The fast brown fox", ); console.log(result.score); // 0〜1の類似度比率 console.log(result.info); // 詳細な変更メトリクス

measure() のパラメーター

input:

string
比較対象となる元のテキスト

output:

string
差分を評価するテキスト

戻り値

score:

number
類似度比率(0~1)。1はテキストが完全に一致していることを示します

info:

差分に関する詳細な指標
number

confidence:

number
テキスト間の長さの違いに基づく信頼度スコア(0~1)
number

ratio:

number
テキスト間の生の類似度比率
number

changes:

number
変更操作の回数(挿入、削除、置換)
number

lengthDiff:

number
入力と出力の長さの正規化された差分(0~1)

スコアリングの詳細

このメトリックは、いくつかの指標を計算します:

  • 類似度比:テキスト間のシーケンスマッチングに基づく(0-1)
  • 変更数:一致しない操作の回数
  • 長さの差:テキスト長の正規化された差
  • 信頼度:長さの差に反比例

スコアリングプロセス

  1. テキストの違いを分析します:

    • 入力と出力の間でシーケンスマッチングを実行
    • 必要な変更操作の数をカウント
    • 長さの違いを測定
  2. 指標を計算します:

    • 類似度比を算出
    • 信頼度スコアを決定
    • 重み付けされたスコアに統合

最終スコア:(similarity_ratio * confidence) * scale

スコアの解釈

(0 から scale、デフォルトは 0-1)

  • 1.0:完全に同一のテキスト - 違いなし
  • 0.7-0.9:わずかな違い - 少しの変更のみ必要
  • 0.4-0.6:中程度の違い - かなりの変更が必要
  • 0.1-0.3:大きな違い - 大幅な変更が必要
  • 0.0:全く異なるテキスト

分析付きの例

import { TextualDifferenceMetric } from "@mastra/evals/nlp"; const metric = new TextualDifferenceMetric(); const result = await metric.measure( "Hello world! How are you?", "Hello there! How is it going?", ); // Example output: // { // score: 0.65, // info: { // confidence: 0.95, // ratio: 0.65, // changes: 2, // lengthDiff: 0.05 // } // }

関連