README.rdoc

March 6, 2014 · View on GitHub

= Text

A collection of text algorithms.

== Usage

require 'text'

=== Levenshtein distance

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

=== Metaphone

Text::Metaphone.metaphone('BRIAN')

=> 'BRN'

Text::Metaphone.double_metaphone('Coburn')

=> ['KPRN', nil]

Text::Metaphone.double_metaphone('Angier')

=> ['ANJ', 'ANJR']

=== Soundex

Text::Soundex.soundex('Knuth')

=> 'K530'

=== Porter stemming

Text::PorterStemming.stem('abatements') # => 'abat'

=== White similarity

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.

== Ruby version compatibility

The library has been tested on Ruby 1.8.6 to 1.9.3 and on JRuby.

== Thanks

  • Hampton Catlin (hcatlin) for Ruby 1.9 compatibility work
  • Wilker Lúcio for the initial implementation of the White algorithm

== License

MIT. See COPYING.txt for details.