Class: ChatCorrect::Correct

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

Constant Summary collapse

TYPES_OF_MISTAKES =
['missing_word', 'unnecessary_word', 'spelling', 'verb', 'punctuation', 'word_order', 'capitalization', 'duplicate_word', 'word_choice', 'pluralization', 'possessive', 'stylistic_choice']

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_sentence:, corrected_sentence:) ⇒ Correct

Returns a new instance of Correct.



5
6
7
8
9
10
# File 'lib/chat_correct/correct.rb', line 5

def initialize(original_sentence:, corrected_sentence:)
  @original_sentence = original_sentence
  @corrected_sentence = corrected_sentence
  @tgr = EngTagger.new
  Linguistics.use(:en)
end

Instance Attribute Details

#corrected_sentenceObject (readonly)

Returns the value of attribute corrected_sentence.



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

def corrected_sentence
  @corrected_sentence
end

#original_sentenceObject (readonly)

Returns the value of attribute original_sentence.



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

def original_sentence
  @original_sentence
end

#tgrObject (readonly)

Returns the value of attribute tgr.



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

def tgr
  @tgr
end

Instance Method Details

#correctObject



12
13
14
# File 'lib/chat_correct/correct.rb', line 12

def correct
  analyze
end

#mistake_reportObject



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/chat_correct/correct.rb', line 25

def mistake_report
  mistake_report_hash = {}
  TYPES_OF_MISTAKES.each do |mistake|
    counter = 0
    mistakes.each do |key, value|
      counter += 1 if value['error_type'].eql?(mistake)
    end
    mistake_report_hash[mistake] = counter
  end
  mistake_report_hash
end

#mistakesObject



16
17
18
19
20
21
22
23
# File 'lib/chat_correct/correct.rb', line 16

def mistakes
  mistakes_hash = {}
  analyze.each do |key, value|
    next if !value['type'].split('_')[-1].eql?('mistake') || value['type'].split('_')[0].eql?('no')
    mistakes_hash = build_mistakes_hash(mistakes_hash, key, value)
  end
  mistakes_hash
end

#number_of_mistakesObject



37
38
39
# File 'lib/chat_correct/correct.rb', line 37

def number_of_mistakes
  mistakes.length
end