summaryrefslogtreecommitdiff
path: root/test_hg.rb
blob: 14fe01111b6222d6f31d8b1c92cad81be3717df9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env ruby

require_relative 'hg'


# viterbi
semiring = ViterbiSemiring.new
hypergraph, nodes_by_id = HG::read_hypergraph_from_json('example/toy/toy.json', semiring, true)
#hypergraph, nodes_by_id = HG::read_hypergraph_from_json('example/glue/glue.json', semiring, true)
#hypergraph, nodes_by_id = HG::read_hypergraph_from_json('example/3/3.json', semiring, true)
path, score = HG::viterbi_path hypergraph, nodes_by_id[-1], semiring
s = HG::derive path, path.last.head, []
puts "#{s.map { |i| i.word }.join ' '}"
puts Math.log score
puts

# all paths
hypergraph.reset
paths = HG::all_paths hypergraph, nodes_by_id[-1]
paths.each_with_index { |p,i|
  s = HG::derive p, p.last.head, []
  puts "#{i+1}. #{s.map { |x| x.word }.join ' '}"
}