From 7a1e274fc4147631d4a70af47406301dcaaff497 Mon Sep 17 00:00:00 2001
From: Jonathan Clark <jon.h.clark@gmail.com>
Date: Wed, 23 May 2012 13:43:29 -0400
Subject: Add a script that can wrap an input set with SGML tags that tell cdec
 where to find sentence-level grammars

---
 sa-extract/wrap_input.py | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100755 sa-extract/wrap_input.py

(limited to 'sa-extract')

diff --git a/sa-extract/wrap_input.py b/sa-extract/wrap_input.py
new file mode 100755
index 00000000..e859a4fd
--- /dev/null
+++ b/sa-extract/wrap_input.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+import sys
+import codecs
+import os
+import os.path
+from xml.sax.saxutils import escape
+
+graPrefix = sys.argv[1]
+
+# Second argument can be a file with observable sentence-level features,
+# one set of features per line (parallel with source sentences). Features are space-delimited indicator features.
+obsFeatsFile = None
+if len(sys.argv) == 3:
+  obsFeatsFilename = sys.argv[2]
+  obsFeatsFile = open(obsFeatsFilename)
+
+sys.stdin = codecs.getreader("utf-8")(sys.stdin)
+sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
+
+i = 0
+for line in sys.stdin:
+  filename = "%s%d"%(graPrefix,i)
+  if not os.path.exists(filename):
+    filenameGz = filename + ".gz"
+    if not os.path.exists(filenameGz):
+      print >>sys.stderr, "Grammar file not found: ", filename, filenameGz
+      sys.exit(1)
+    else:
+      filename = filenameGz
+    
+  if obsFeatsFile:
+    obsFeats = obsFeatsFile.next().strip()
+    print '<seg id="%d" features="%s" grammar="%s"> '%(i,obsFeats,filename) + escape(line.strip()) + " </seg>"
+  else:
+    print '<seg id="%d" grammar="%s"> '%(i,filename) + escape(line.strip()) + " </seg>"
+  i+=1
+
-- 
cgit v1.2.3