Class: ResumeClassifier

Inherits:
Object
  • Object
show all
Defined in:
lib/classes/resume_classifier.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_linesObject

Returns the value of attribute classifide_lines.



3
4
5
# File 'lib/classes/resume_classifier.rb', line 3

def classifide_lines
  @classifide_lines
end

#linesObject

Returns the value of attribute lines.



3
4
5
# File 'lib/classes/resume_classifier.rb', line 3

def lines
  @lines
end

#textObject

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

Returns:

  • (Boolean)


62
63
64
# File 'lib/classes/resume_classifier.rb', line 62

def blank?(line)
	line[regex_characters_and_digits].nil?
end

#check_classificationsObject



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

Returns:

  • (Boolean)


97
98
99
# File 'lib/classes/resume_classifier.rb', line 97

def classification?(classification)
	@line[regex_(classification)]
end

#classifyObject



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_textObject



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_classificationsObject



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_togetherObject



15
16
17
# File 'lib/classes/resume_classifier.rb', line 15

def lines_together
  @lines_together ||= @lines.join("\n")
end

#many_wordsObject



121
122
123
# File 'lib/classes/resume_classifier.rb', line 121

def many_words
	@number_of_words >= 5
end

#merge_to_classifide_linesObject



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_linesObject



58
59
60
# File 'lib/classes/resume_classifier.rb', line 58

def number_of_lines
	@lines.length
end

#number_of_wordsObject



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_hashObject



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_nameObject



27
28
29
# File 'lib/classes/resume_classifier.rb', line 27

def regex_name
  Regexp.new(@user_name, "i")
end

#remove_all_linesObject



50
51
52
# File 'lib/classes/resume_classifier.rb', line 50

def remove_all_lines
  @lines = []
end

#remove_blanksObject



54
55
56
# File 'lib/classes/resume_classifier.rb', line 54

def remove_blanks
	@lines = @lines.reject{|line| blank?(line)}
end

#remove_dates_and_citiesObject



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_spacesObject



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_wordsObject



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_textObject



45
46
47
48
# File 'lib/classes/resume_classifier.rb', line 45

def split_text
	@lines = @text.split("\n")
	remove_blanks
end

#tagged_linesObject



23
24
25
# File 'lib/classes/resume_classifier.rb', line 23

def tagged_lines
  @tagged_lines ||= tagged_lines_together.split("\n")
end

#tagged_lines_togetherObject



19
20
21
# File 'lib/classes/resume_classifier.rb', line 19

def tagged_lines_together
  @tagged_lines_together ||= tgr.add_tags(lines_together)
end

#verbs?Boolean

Returns:

  • (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