A collection of text algorithms. Including; Porter-Stemmer, Soundex, Metaphone, Double Metaphone & White Similarity
Add this to your application's shard.yml
:
dependencies:
text:
github: johnjansen/text
require "text"
You should use the Levenshtein module in the Crystal StdLib though ...
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
- Fork it ( https://github.com/johnjansen/text/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- johnjansen John Jansen - creator, maintainer
- Paul Battley (threedaymonk)
- Michael Neumann
- Tim Fletcher
- Hampton Catlin (hcatlin)
- Wilker Lúcio
- everyone who contributed to https://github.com/threedaymonk/text