module Spellchecker
Constants
- Mistake
- VERSION
Public Instance Methods
apply_fixes(text, mistakes)
click to toggle source
@param text [String] @param mistakes [Array<Spellchecker::Mistake>] @return [String]
# File lib/spellchecker.rb, line 60 def apply_fixes(text, mistakes) mistakes_hash = mistakes.map { |m| [m.text, m.correction] }.to_h regexp = Regexp.union(mistakes_hash.keys) text.gsub(regexp, mistakes_hash) end
check(text)
click to toggle source
@param text [String] @return [Array<Spellchecker::Mistake>]
# File lib/spellchecker.rb, line 34 def check(text) tokens = Tokenizer.call(text) mistakes = tokens.each_with_object([]) do |token, acc| DetectDuplicate.call(token)&.then { |m| acc << m } DetectTypo.call(token)&.then { |m| acc << m } DetectNgram.call(token)&.then { |m| acc << m } end mistakes.each { |mistake| mistake.context = Utils.fetch_context(text, mistake.position) } mistakes end
correct(text)
click to toggle source
@param text [String] @return [String]
# File lib/spellchecker.rb, line 51 def correct(text) mistakes = check(text) apply_fixes(text, mistakes) end