Class: Phronomy::Eval::Scorer::IncludesScorer

Inherits:
Base
  • Object
show all
Defined in:
lib/phronomy/eval/scorer/includes_scorer.rb

Overview

Scorer that returns 1.0 when the actual output contains the expected substring (case-insensitive by default).

Useful for open-ended outputs where the exact wording may vary but a key term or phrase must be present.

Examples:

IncludesScorer.new.score(actual: "The answer is 42.", expected: "42")  # => 1.0

Instance Method Summary collapse

Constructor Details

#initialize(case_sensitive: false) ⇒ IncludesScorer

Returns a new instance of IncludesScorer.

Parameters:

  • case_sensitive (Boolean) (defaults to: false)

    default false



16
17
18
# File 'lib/phronomy/eval/scorer/includes_scorer.rb', line 16

def initialize(case_sensitive: false)
  @case_sensitive = case_sensitive
end

Instance Method Details

#score(actual:, expected:, input: nil) ⇒ Float

Returns 1.0 if actual contains expected, 0.0 otherwise.

Returns:

  • (Float)

    1.0 if actual contains expected, 0.0 otherwise



21
22
23
24
25
26
# File 'lib/phronomy/eval/scorer/includes_scorer.rb', line 21

def score(actual:, expected:, input: nil)
  a = actual.to_s
  e = expected.to_s
  a = a.downcase and e = e.downcase unless @case_sensitive
  a.include?(e) ? 1.0 : 0.0
end