O que é um algoritmo para diferenciar as duas sequências da mesma maneira que o SO faz na página de versão?

Eu estou tentando diff duas seqüências de caracteres por frase, semelhante à maneira que StackOverflow diffs as duas seqüências de caracteres na página de edições da versão. O que seria um algoritmo para fazer isso? Existem gemas ou outras bibliotecas padrão que fazem isso?

EDIT: eu vi outros algoritmos de diff (Diferir com Ruby) e eles parecem resultar no seguinte:

>> o = 'now is the time when all good men.'
>> p = 'now some time the men time when all good men.'
>> Differ.diff_by_word(o,p).format_as(:html)
=> "now <del class=\"differ\">some</del><ins class=\"differ\">is</ins> 
   <del class=\"differ\">time </del>the <del class=\"differ\">men </del>time
   when all good men."

Observe como as palavras são diferenciadas por palavra? Eu gostaria de alguma maneira de diferenciar mais por frase, então a saída do código acima:

=> "now <del class=\"differ\">some time the men</del><ins class=\"differ\">is
   the</ins> time when all good men."

Eu estou esperando muito?

questionAnswers(1)

yourAnswerToTheQuestion