Skip to Content
ExamplesEvalsContent Similarity

Content Similarity ✅

This example demonstrates how to use Kastrax’s Content Similarity metric to evaluate the textual similarity between two pieces of content.

Overview ✅

The example shows how to:

  1. Configure the Content Similarity metric
  2. Compare different text variations
  3. Analyze similarity scores
  4. Handle different similarity scenarios

Setup ✅

Dependencies

Import the necessary dependencies:

src/index.ts
import { ContentSimilarityMetric } from '@kastrax/evals/nlp';

Metric Configuration ✅

Set up the Content Similarity metric:

src/index.ts
const metric = new ContentSimilarityMetric();

Example Usage ✅

High Similarity Example

Compare nearly identical texts:

src/index.ts
const text1 = 'The quick brown fox jumps over the lazy dog.'; const reference1 = 'A quick brown fox jumped over a lazy dog.'; console.log('Example 1 - High Similarity:'); console.log('Text:', text1); console.log('Reference:', reference1); const result1 = await metric.measure(reference1, text1); console.log('Metric Result:', { score: result1.score, info: { similarity: result1.info.similarity, }, }); // Example Output: // Metric Result: { score: 0.7761194029850746, info: { similarity: 0.7761194029850746 } }

Moderate Similarity Example

Compare texts with similar meaning but different wording:

src/index.ts
const text2 = 'A brown fox quickly leaps across a sleeping dog.'; const reference2 = 'The quick brown fox jumps over the lazy dog.'; console.log('Example 2 - Moderate Similarity:'); console.log('Text:', text2); console.log('Reference:', reference2); const result2 = await metric.measure(reference2, text2); console.log('Metric Result:', { score: result2.score, info: { similarity: result2.info.similarity, }, }); // Example Output: // Metric Result: { // score: 0.40540540540540543, // info: { similarity: 0.40540540540540543 } // }

Low Similarity Example

Compare distinctly different texts:

src/index.ts
const text3 = 'The cat sleeps on the windowsill.'; const reference3 = 'The quick brown fox jumps over the lazy dog.'; console.log('Example 3 - Low Similarity:'); console.log('Text:', text3); console.log('Reference:', reference3); const result3 = await metric.measure(reference3, text3); console.log('Metric Result:', { score: result3.score, info: { similarity: result3.info.similarity, }, }); // Example Output: // Metric Result: { // score: 0.25806451612903225, // info: { similarity: 0.25806451612903225 } // }

Understanding the Results ✅

The metric provides:

  1. A similarity score between 0 and 1:
    • 1.0: Perfect match - texts are identical
    • 0.7-0.9: High similarity - minor variations in wording
    • 0.4-0.6: Moderate similarity - same topic with different phrasing
    • 0.1-0.3: Low similarity - some shared words but different meaning
    • 0.0: No similarity - completely different texts





View Example on GitHub
Last updated on