summaryrefslogtreecommitdiff
path: root/test/parse.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/parse.rb')
-rwxr-xr-xtest/parse.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/parse.rb b/test/parse.rb
new file mode 100755
index 0000000..e139ea4
--- /dev/null
+++ b/test/parse.rb
@@ -0,0 +1,47 @@
+#!/usr/bin/env ruby
+
+require_relative '../parse'
+
+
+def main
+ STDERR.write "> reading input from TODO\n"
+ input = 'ich sah ein kleines haus'.split
+ #input = 'lebensmittel schuld an europäischer inflation'.split
+ #input = 'offizielle prognosen sind von nur 3 prozent ausgegangen , meldete bloomberg .'.split
+ n = input.size
+
+ STDERR.write "> reading grammar\n"
+ grammar = Grammar::Grammar.new '../example/toy/grammar'
+ #grammar = Grammar::Grammar.new '../example/glue/grammar'
+ #grammar = Grammar::Grammar.new '../example/3/grammar.3.gz'
+
+ STDERR.write ">> adding glue grammar\n"
+ #grammar.add_glue_rules
+
+ STDERR.write ">> adding pass-through grammar\n"
+ #grammar.add_pass_through_rules input
+
+ STDERR.write "> initializing charts\n"
+ passive_chart = Parse::Chart.new n
+ active_chart = Parse::Chart.new n
+ Parse::init input, n, active_chart, passive_chart, grammar
+
+ STDERR.write "> parsing\n"
+ Parse::parse input, n, active_chart, passive_chart, grammar
+
+ puts "\n---\npassive chart"
+ Parse::visit(1, 0, 5) { |i,j| puts "#{i},#{j}"; passive_chart.at(i,j).each { |item| puts " #{j} #{item.to_s}" }; puts }
+
+ weights_file = '../example/toy/weights'
+ #weights_file = '../example/glue/weights'
+ #weights_file = '../example/3/weights.init'
+ weights = SparseVector.from_kv(ReadFile.read(weights_file), ' ', "\n")
+ if !weights
+ weights = SparseVector.new
+ end
+ puts passive_chart.to_json weights
+end
+
+
+main
+