Class: ChatCorrect::MistakeAnalyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/chat_correct/mistake_analyzer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original:, corrected:) ⇒ MistakeAnalyzer

Returns a new instance of MistakeAnalyzer.



4
5
6
7
# File 'lib/chat_correct/mistake_analyzer.rb', line 4

def initialize(original:, corrected:)
  @original = original
  @corrected = corrected
end

Instance Attribute Details

#correctedObject (readonly)

Returns the value of attribute corrected.



3
4
5
# File 'lib/chat_correct/mistake_analyzer.rb', line 3

def corrected
  @corrected
end

#originalObject (readonly)

Returns the value of attribute original.



3
4
5
# File 'lib/chat_correct/mistake_analyzer.rb', line 3

def original
  @original
end

Instance Method Details

#capitalization_mistake?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/chat_correct/mistake_analyzer.rb', line 20

def capitalization_mistake?
  ChatCorrect::Capitalization.new(token_a: corrected['token'], token_b: original['token']).capitalization_error?
end

#no_mistake?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/chat_correct/mistake_analyzer.rb', line 9

def no_mistake?
  original['token'].eql?(corrected['token'])
end

#punctuation_mistake?Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
# File 'lib/chat_correct/mistake_analyzer.rb', line 24

def punctuation_mistake?
  (corrected['punctuation'] && original['punctuation']) ||
  (ChatCorrect::Spelling.new(token_a: corrected['token'], token_b: original['token']).spelling_error? &&
  ChatCorrect::PunctuationMasqueradingAsSpellingError.new(token_a: corrected['token'], token_b: original['token']).exists? &&
  !ChatCorrect::Possessive.new(token_a: original['token'], token_b: corrected['token']).possessive?)
end

#spelling_mistake?Boolean

Returns:

  • (Boolean)


35
36
37
38
# File 'lib/chat_correct/mistake_analyzer.rb', line 35

def spelling_mistake?
  ChatCorrect::Spelling.new(token_a: corrected['token'], token_b: original['token']).spelling_error? &&
  !ChatCorrect::PunctuationMasqueradingAsSpellingError.new(token_a: corrected['token'], token_b: original['token']).exists?
end

#unnecessary_word_missing_punctuation_mistake?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/chat_correct/mistake_analyzer.rb', line 31

def unnecessary_word_missing_punctuation_mistake?
  corrected['punctuation'] && !original['punctuation']
end

#verb_mistake?Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
# File 'lib/chat_correct/mistake_analyzer.rb', line 13

def verb_mistake?
  ChatCorrect::CommonVerbMistake.new(token_a: corrected['token'], token_b: original['token']).exists? ||
  original['multiple_words'] ||
  corrected['multiple_words'] ||
  ChatCorrect::Verb.new(word: original['token'], pos: corrected['pos_tag'], text: corrected['token']).verb_error?
end