summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Dyer <cdyer@cs.cmu.edu>2012-08-07 21:26:55 -0400
committerChris Dyer <cdyer@cs.cmu.edu>2012-08-07 21:26:55 -0400
commit2a4fd2dac126cb5753ae32b6ea3ba1255551a810 (patch)
tree0f8e921cc147005598782b760f02376618f0a14f
parent9b96ffa040f6c05c4e597a34c316743425839fe0 (diff)
random tree code
-rw-r--r--rst_parser/Makefile.am5
-rw-r--r--rst_parser/random_tree.cc36
2 files changed, 40 insertions, 1 deletions
diff --git a/rst_parser/Makefile.am b/rst_parser/Makefile.am
index 4977f584..8650cdab 100644
--- a/rst_parser/Makefile.am
+++ b/rst_parser/Makefile.am
@@ -1,5 +1,5 @@
bin_PROGRAMS = \
- mst_train rst_train rst_parse
+ mst_train rst_train rst_parse random_tree
noinst_LIBRARIES = librst.a
@@ -14,4 +14,7 @@ rst_train_LDADD = librst.a $(top_srcdir)/decoder/libcdec.a $(top_srcdir)/mteval/
rst_parse_SOURCES = rst_parse.cc
rst_parse_LDADD = librst.a $(top_srcdir)/decoder/libcdec.a $(top_srcdir)/mteval/libmteval.a $(top_srcdir)/utils/libutils.a ../klm/lm/libklm.a ../klm/util/libklm_util.a -lz
+random_tree_SOURCES = random_tree.cc
+random_tree_LDADD = librst.a $(top_srcdir)/decoder/libcdec.a $(top_srcdir)/mteval/libmteval.a $(top_srcdir)/utils/libutils.a ../klm/lm/libklm.a ../klm/util/libklm_util.a -lz
+
AM_CPPFLAGS = -W -Wall -Wno-sign-compare $(GTEST_CPPFLAGS) -I$(top_srcdir)/decoder -I$(top_srcdir)/training -I$(top_srcdir)/utils -I$(top_srcdir)/mteval -I../klm
diff --git a/rst_parser/random_tree.cc b/rst_parser/random_tree.cc
new file mode 100644
index 00000000..23e6e7f7
--- /dev/null
+++ b/rst_parser/random_tree.cc
@@ -0,0 +1,36 @@
+#include "arc_factored.h"
+
+#include <vector>
+#include <iostream>
+#include <boost/program_options.hpp>
+#include <boost/program_options/variables_map.hpp>
+
+#include "timing_stats.h"
+#include "arc_ff.h"
+#include "dep_training.h"
+#include "stringlib.h"
+#include "filelib.h"
+#include "tdict.h"
+#include "weights.h"
+#include "rst.h"
+#include "global_ff.h"
+
+using namespace std;
+namespace po = boost::program_options;
+
+int main(int argc, char** argv) {
+ if (argc != 2) {
+ cerr << argv[0] << " N\n" << endl;
+ return 1;
+ }
+ MT19937 rng;
+ unsigned n = atoi(argv[1]);
+
+ ArcFactoredForest forest(n);
+ TreeSampler ts(forest);
+ EdgeSubset tree;
+ ts.SampleRandomSpanningTree(&tree, &rng);
+ cout << tree << endl;
+ return 0;
+}
+