Class: ResumeClassifier
- Inherits:
-
Object
- Object
- ResumeClassifier
- Defined in:
- lib/classes/resume_classifier.rb
Instance Attribute Summary collapse
-
#classifide_lines ⇒ Object
Returns the value of attribute classifide_lines.
-
#lines ⇒ Object
Returns the value of attribute lines.
-
#text ⇒ Object
Returns the value of attribute text.
Instance Method Summary collapse
- #blank?(line) ⇒ Boolean
- #check_classifications ⇒ Object
- #classification?(classification) ⇒ Boolean
- #classify ⇒ Object
- #clean_text ⇒ Object
-
#initialize(resume_text, name, presume) ⇒ ResumeClassifier
constructor
A new instance of ResumeClassifier.
- #line_non_regex_classifications ⇒ Object
- #line_text(n) ⇒ Object
- #lines_together ⇒ Object
- #many_words ⇒ Object
- #merge_to_classifide_lines ⇒ Object
- #number_of_lines ⇒ Object
- #number_of_words ⇒ Object
- #pass_classification_instances_to_hash ⇒ Object
- #regex_(classification) ⇒ Object
- #regex_name ⇒ Object
- #remove_all_lines ⇒ Object
- #remove_blanks ⇒ Object
- #remove_dates_and_cities ⇒ Object
- #remove_extra_spaces ⇒ Object
- #separate_tabbed_words ⇒ Object
- #set_classification_instance(classification) ⇒ Object
- #set_line(number) ⇒ Object
- #set_line_number(number) ⇒ Object
- #split_text ⇒ Object
- #tagged_lines ⇒ Object
- #tagged_lines_together ⇒ Object
- #verbs? ⇒ Boolean
Constructor Details
#initialize(resume_text, name, presume) ⇒ ResumeClassifier
Returns a new instance of ResumeClassifier.
5 6 7 8 9 10 11 12 13 |
# File 'lib/classes/resume_classifier.rb', line 5 def initialize(resume_text, name, presume) @text = resume_text @classifide_lines = {} @lines = [] @user_name = name @presume = presume clean_text split_text end |
Instance Attribute Details
#classifide_lines ⇒ Object
Returns the value of attribute classifide_lines.
3 4 5 |
# File 'lib/classes/resume_classifier.rb', line 3 def classifide_lines @classifide_lines end |
#lines ⇒ Object
Returns the value of attribute lines.
3 4 5 |
# File 'lib/classes/resume_classifier.rb', line 3 def lines @lines end |
#text ⇒ Object
Returns the value of attribute text.
3 4 5 |
# File 'lib/classes/resume_classifier.rb', line 3 def text @text end |
Instance Method Details
#blank?(line) ⇒ Boolean
62 63 64 |
# File 'lib/classes/resume_classifier.rb', line 62 def blank?(line) line[regex_characters_and_digits].nil? end |
#check_classifications ⇒ Object
87 88 89 90 91 |
# File 'lib/classes/resume_classifier.rb', line 87 def check_classifications classifications.each do |classification| set_classification_instance(classification) end end |
#classification?(classification) ⇒ Boolean
97 98 99 |
# File 'lib/classes/resume_classifier.rb', line 97 def classification?(classification) @line[regex_(classification)] end |
#classify ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/classes/resume_classifier.rb', line 66 def classify number_of_lines.times do |n| set_line_number(n) set_line(n) check_classifications merge_to_classifide_lines end end |
#clean_text ⇒ Object
31 32 33 34 |
# File 'lib/classes/resume_classifier.rb', line 31 def clean_text separate_tabbed_words remove_extra_spaces end |
#line_non_regex_classifications ⇒ Object
110 111 112 |
# File 'lib/classes/resume_classifier.rb', line 110 def line_non_regex_classifications @non_regex_classications = {number_of_words: number_of_words, many_words: many_words, verbs: verbs?, text: @line, type: nil, id: @line_number, presume: @presume} end |
#line_text(n) ⇒ Object
75 76 77 |
# File 'lib/classes/resume_classifier.rb', line 75 def line_text(n) @lines[n] end |
#lines_together ⇒ Object
15 16 17 |
# File 'lib/classes/resume_classifier.rb', line 15 def lines_together @lines_together ||= @lines.join("\n") end |
#many_words ⇒ Object
121 122 123 |
# File 'lib/classes/resume_classifier.rb', line 121 def many_words @number_of_words >= 5 end |
#merge_to_classifide_lines ⇒ Object
105 106 107 108 |
# File 'lib/classes/resume_classifier.rb', line 105 def merge_to_classifide_lines pass_classification_instances_to_hash @classifide_lines.merge!({@line_number => Classifide.new(@line_classifications.merge(line_non_regex_classifications))}) end |
#number_of_lines ⇒ Object
58 59 60 |
# File 'lib/classes/resume_classifier.rb', line 58 def number_of_lines @lines.length end |
#number_of_words ⇒ Object
117 118 119 |
# File 'lib/classes/resume_classifier.rb', line 117 def number_of_words @number_of_words = remove_dates_and_cities.split.size end |
#pass_classification_instances_to_hash ⇒ Object
133 134 135 |
# File 'lib/classes/resume_classifier.rb', line 133 def pass_classification_instances_to_hash @line_classifications = Hash[classifications.map{|classification| [classification.to_sym, instance_variable_get("@#{classification}")]}] end |
#regex_(classification) ⇒ Object
101 102 103 |
# File 'lib/classes/resume_classifier.rb', line 101 def regex_(classification) send("regex_#{classification}") end |
#regex_name ⇒ Object
27 28 29 |
# File 'lib/classes/resume_classifier.rb', line 27 def regex_name Regexp.new(@user_name, "i") end |
#remove_all_lines ⇒ Object
50 51 52 |
# File 'lib/classes/resume_classifier.rb', line 50 def remove_all_lines @lines = [] end |
#remove_blanks ⇒ Object
54 55 56 |
# File 'lib/classes/resume_classifier.rb', line 54 def remove_blanks @lines = @lines.reject{|line| blank?(line)} end |
#remove_dates_and_cities ⇒ Object
114 115 116 |
# File 'lib/classes/resume_classifier.rb', line 114 def remove_dates_and_cities @date_and_city_less_line = @line.gsub(Regexp.union(regex_dates,regex_dates_2,regex_cities),"") end |
#remove_extra_spaces ⇒ Object
36 37 38 |
# File 'lib/classes/resume_classifier.rb', line 36 def remove_extra_spaces @text = @text.gsub(regex_remove_extra_spaces, ",") end |
#separate_tabbed_words ⇒ Object
41 42 43 |
# File 'lib/classes/resume_classifier.rb', line 41 def separate_tabbed_words @text = @text.gsub(regex_separate_tabbed_words, ",") end |
#set_classification_instance(classification) ⇒ Object
93 94 95 |
# File 'lib/classes/resume_classifier.rb', line 93 def set_classification_instance(classification) instance_variable_set(("@" + classification).to_sym, classification?(classification)) end |
#set_line(number) ⇒ Object
79 80 81 |
# File 'lib/classes/resume_classifier.rb', line 79 def set_line(number) @line = @lines[number] end |
#set_line_number(number) ⇒ Object
83 84 85 |
# File 'lib/classes/resume_classifier.rb', line 83 def set_line_number(number) @line_number = number end |
#split_text ⇒ Object
45 46 47 48 |
# File 'lib/classes/resume_classifier.rb', line 45 def split_text @lines = @text.split("\n") remove_blanks end |
#tagged_lines ⇒ Object
23 24 25 |
# File 'lib/classes/resume_classifier.rb', line 23 def tagged_lines @tagged_lines ||= tagged_lines_together.split("\n") end |
#tagged_lines_together ⇒ Object
19 20 21 |
# File 'lib/classes/resume_classifier.rb', line 19 def tagged_lines_together @tagged_lines_together ||= tgr.(lines_together) end |
#verbs? ⇒ Boolean
125 126 127 128 129 130 131 |
# File 'lib/classes/resume_classifier.rb', line 125 def verbs? if tagged_lines[@line_number].nil? @verbs = nil else @verbs = tagged_lines[@line_number][regex_engtagger_verbs] end end |