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
15
16
# File 'lib/chat_correct/correct.rb', line 12

def correct
  raise "You must include an Original Sentence" if original_sentence.nil? || original_sentence.eql?('')
  raise "You must include a Corrected Sentence" if corrected_sentence.nil? || corrected_sentence.eql?('')
  analyze
end

#mistake_reportObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/chat_correct/correct.rb', line 29

def mistake_report
  raise "You must include an Original Sentence" if original_sentence.nil? || original_sentence.eql?('')
  raise "You must include a Corrected Sentence" if corrected_sentence.nil? || corrected_sentence.eql?('')
  mistake_report_hash = {}
  TYPES_OF_MISTAKES.each do |mistake|
    counter = 0
    mistakes.each do |key, value|
      counter += 1 if value['error_type'].eql?(mistake) || value['error_type'].split('_')[1].eql?(mistake)
    end
    mistake_report_hash[mistake] = counter
  end
  mistake_report_hash
end

#mistakesObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/chat_correct/correct.rb', line 18

def mistakes
  raise "You must include an Original Sentence" if original_sentence.nil? || original_sentence.eql?('')
  raise "You must include a Corrected Sentence" if corrected_sentence.nil? || corrected_sentence.eql?('')
  mistakes_hash = {}
  analyze.each do |key, value|
    next if (!value['type'].split('_')[-1].eql?('mistake') && !value['type'].split('_')[0].eql?('missing')) || value['type'].split('_')[0].eql?('no')
    mistakes_hash = build_mistakes_hash(mistakes_hash, key, value)
  end
  mistakes_hash
end

#number_of_mistakesObject



43
44
45
46
47
# File 'lib/chat_correct/correct.rb', line 43

def number_of_mistakes
  raise "You must include an Original Sentence" if original_sentence.nil? || original_sentence.eql?('')
  raise "You must include a Corrected Sentence" if corrected_sentence.nil? || corrected_sentence.eql?('')
  mistakes.length
end