Method: TextPreprocessing#read_patterns
- Defined in:
- lib/automated_metareview/text_preprocessing.rb
#read_patterns(filename, pos) ⇒ Object
-
Reads the patterns from the csv file containing them.
* maxValue is the maximum value of the patterns found
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 |
# File 'lib/automated_metareview/text_preprocessing.rb', line 160 def read_patterns(filename, pos) num = 1000 #some large number patterns = Array.new state = POSITIVE i = 0 #keeps track of the number of edges #setting the state for problem detection and suggestive patterns if(filename.include?("prob")) state = NEGATED elsif(filename.include?("suggest")) state = SUGGESTIVE end FasterCSV.foreach(filename) do |text| in_vertex = text[0][0..text[0].index("=")-1].strip out_vertex = text[0][text[0].index("=")+2..text[0].length].strip first_string_in_vertex = pos.get_readable(in_vertex.split(" ")[0]) #getting the first token in vertex to determine POS first_string_out_vertex = pos.get_readable(out_vertex.split(" ")[0]) #getting the first token in vertex to determine POS patterns[i] = Edge.new("noun", NOUN) #setting the invertex if(first_string_in_vertex.include?("/NN") or first_string_in_vertex.include?("/PRP") or first_string_in_vertex.include?("/IN") or first_string_in_vertex.include?("/EX") or first_string_in_vertex.include?("/WP")) patterns[i].in_vertex = Vertex.new(in_vertex, NOUN, i, state, nil, nil, first_string_in_vertex[first_string_in_vertex.index("/")+1..first_string_in_vertex.length]) elsif(first_string_in_vertex.include?("/VB") or first_string_in_vertex.include?("MD")) patterns[i].in_vertex = Vertex.new(in_vertex, VERB, i, state, nil, nil, first_string_in_vertex[first_string_in_vertex.index("/")+1..first_string_in_vertex.length]) elsif(first_string_in_vertex.include?("JJ")) patterns[i].in_vertex = Vertex.new(in_vertex, ADJ, i, state, nil, nil, first_string_in_vertex[first_string_in_vertex.index("/")+1..first_string_in_vertex.length]) elsif(first_string_in_vertex.include?("/RB")) patterns[i].in_vertex = Vertex.new(in_vertex, ADV, i, state, nil, nil, first_string_in_vertex[first_string_in_vertex.index("/")+1..first_string_in_vertex.length]) else #default to noun patterns[i].in_vertex = Vertex.new(in_vertex, NOUN, i, state, nil, nil, first_string_in_vertex[first_string_in_vertex.index("/")+1..first_string_in_vertex.length]) end #setting outvertex if(first_string_out_vertex.include?("/NN") or first_string_out_vertex.include?("/PRP") or first_string_out_vertex.include?("/IN") or first_string_out_vertex.include?("/EX") or first_string_out_vertex.include?("/WP")) patterns[i].out_vertex = Vertex.new(out_vertex, NOUN, i, state, nil, nil, first_string_out_vertex[first_string_out_vertex.index("/")+1..first_string_out_vertex.length]) elsif(first_string_out_vertex.include?("/VB") or first_string_out_vertex.include?("MD")) patterns[i].out_vertex = Vertex.new(out_vertex, VERB, i, state, nil, nil, first_string_out_vertex[first_string_out_vertex.index("/")+1..first_string_out_vertex.length]) elsif(first_string_out_vertex.include?("JJ")) patterns[i].out_vertex = Vertex.new(out_vertex, ADJ, i, state, nil, nil, first_string_out_vertex[first_string_out_vertex.index("/")+1..first_string_out_vertex.length-1]); elsif(first_string_out_vertex.include?("/RB")) patterns[i].out_vertex = Vertex.new(out_vertex, ADV, i, state, nil, nil, first_string_out_vertex[first_string_out_vertex.index("/")+1..first_string_out_vertex.length]) else #default is noun patterns[i].out_vertex = Vertex.new(out_vertex, NOUN, i, state, nil, nil, first_string_out_vertex[first_string_out_vertex.index("/")+1..first_string_out_vertex.length]) end i+=1 #incrementing for each pattern end #end of the FasterCSV.foreach loop num_patterns = i return patterns end |