LevenshteinRatio

class opik.evaluation.metrics.LevenshteinRatio(case_sensitive: bool = False, name: str = 'levenshtein_ratio_metric', track: bool = True)

Bases: BaseMetric

A metric that calculates the Levenshtein ratio between two strings.

This metric returns a score between 0.0 and 1.0, representing the similarity between the output and reference strings. A score of 1.0 indicates identical strings, while 0.0 indicates completely different strings. The comparison can be made case-sensitive or case-insensitive.

For more information on Levenshtein distance, see: https://en.wikipedia.org/wiki/Levenshtein_distance

Parameters:
  • case_sensitive – Whether the comparison should be case-sensitive. Defaults to False.

  • name – The name of the metric. Defaults to “levenshtein_ratio_metric”.

  • track – Whether to track the metric. Defaults to True.

Example

>>> from opik.evaluation.metrics import LevenshteinRatio
>>> levenshtein_metric = LevenshteinRatio(case_sensitive=True)
>>> result = levenshtein_metric.score("Hello, World!", "Hello, World")
>>> print(result.value)
0.96
score(output: str, reference: str, **ignored_kwargs: Any) ScoreResult

Calculate the Levenshtein ratio between the output and reference strings.

Parameters:
  • output – The output string to compare.

  • reference – The reference string to compare against.

  • **ignored_kwargs – Additional keyword arguments that are ignored.

Returns:

A ScoreResult object with a value between 0.0 and 1.0,

representing the Levenshtein ratio between the output and reference strings.

Return type:

score_result.ScoreResult

async ascore(*args: Any, **kwargs: Any) ScoreResult | List[ScoreResult]

Async public method that can be called independently.