Parsing syllables from a string
Some notes:


YAML::load_file. Loading a file each time a method is called is dubious. I'd load it in the initialize of the class so it's only done once.
return exceptions[word.to_s] if exceptions.keys.include?(word) Inline conditionals are ok as guards (in a fact here it's kind of a guard), but as a general rule indented conditionals are more declarative (granted, at the cost of an indentation level and some lines).
+=, -=. Imperative programming. As always, I'd advise against in-place updates, try to avoid statements in favor of expressions (functional programming).


I'd write:

def count_syllables
  if @exceptions.has_key?(word)
    @exceptions[word]
  else
    counts = [
      count_vowels,
      (count_ys_in_vowel_role if contains_non_initial_y?)
      (+1 if contains_le_vowel_sound?),
      (+1 if begins_with_re_vowel?) 
      (+1 if ends_in_sm?),
      (-1 if ends_in_silent_e?),
      (-count_diphthongs if contains_diphthongs?),
    ]
    [counts.compact.reduce(0, :+), 1].max
  end
end