A collection of text algorithms.
require 'text'
Text::Levenshtein.distance('test', 'test') # => 0 Text::Levenshtein.distance('test', 'tent') # => 1 Text::Levenshtein.distance('test', 'testing') # => 3 Text::Levenshtein.distance('test', 'testing', 2) # => 2
Text::Metaphone.metaphone('BRIAN') # => 'BRN' Text::Metaphone.double_metaphone('Coburn') # => ['KPRN', nil] Text::Metaphone.double_metaphone('Angier') # => ['ANJ', 'ANJR']
Text::Soundex.soundex('Knuth') # => 'K530'
Text::PorterStemming.stem('abatements') # => 'abat'
white = Text::WhiteSimilarity.new white.similarity('Healed', 'Sealed') # 0.8 white.similarity('Healed', 'Help') # 0.25
Note that some intermediate information is cached on the instance to improve performance.
The library has been tested on Ruby 1.8.6 to 1.9.3 and on JRuby.
Hampton Catlin (hcatlin) for Ruby 1.9 compatibility work
Wilker LĂșcio for the initial implementation of the White algorithm
MIT. See COPYING.txt for details.