Method: Ariel::ExampleDocumentLoader.supervise_learning

Defined in:
lib/ariel/example_document_loader.rb

.supervise_learning(structure, loaded_example_hash) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/ariel/example_document_loader.rb', line 25

def self.supervise_learning(structure, loaded_example_hash)
  loaded_example_hash.each_pair do |structure_node, example_nodes|
    start_examples=[]
    end_examples=[]
    example_nodes.each do |node|
      start_tstream=node.parent.tokenstream #Rules are based on extracting from the parent
      start_tstream.set_label_at(node.tokenstream.tokens.first.start_loc)
      start_examples << start_tstream
      end_tstream=node.parent.tokenstream.reverse
      end_tstream.set_label_at(node.tokenstream.tokens.last.start_loc)
      end_examples << end_tstream
    end
    learner = Learner.new(*start_examples)
    start_rules = learner.learn_rule :forward
    learner = Learner.new(*end_examples)
    end_rules = learner.learn_rule :back
    structure_node.ruleset=RuleSet.new(start_rules, end_rules)
  end
end