Repository: incubator-joshua
Updated Branches:
  refs/heads/master 4c0b55337 -> 98ad70a26


bugfix in writing nbest out file in Moses compat mode (added test case)


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/98ad70a2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/98ad70a2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/98ad70a2

Branch: refs/heads/master
Commit: 98ad70a26e8e272ffb61f200a7e2848558c1131d
Parents: 4c0b553
Author: Matt Post <[email protected]>
Authored: Sat Apr 2 00:14:53 2016 -0400
Committer: Matt Post <[email protected]>
Committed: Sat Apr 2 00:14:53 2016 -0400

----------------------------------------------------------------------
 src/joshua/decoder/Decoder.java           | 11 ++++++++++-
 src/joshua/server/ServerThread.java       |  3 ---
 test/decoder/moses-compat/n-best.txt      |  0
 test/decoder/moses-compat/output.expected |  6 ++++++
 test/decoder/moses-compat/test.sh         | 25 +++++++++++++++++++++++++
 5 files changed, 41 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/98ad70a2/src/joshua/decoder/Decoder.java
----------------------------------------------------------------------
diff --git a/src/joshua/decoder/Decoder.java b/src/joshua/decoder/Decoder.java
index 8e74d42..49b45ea 100644
--- a/src/joshua/decoder/Decoder.java
+++ b/src/joshua/decoder/Decoder.java
@@ -7,6 +7,7 @@ import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.FileNotFoundException;
+import java.io.FileWriter;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -425,6 +426,11 @@ public class Decoder {
     /* Start a thread to handle requests on the input stream */
     new RequestParallelizer(request, translations, out).start();
     
+    // Create the n-best output stream
+    FileWriter nbest_out = null;
+    if (joshuaConfiguration.n_best_file != null)
+      nbest_out = new FileWriter(joshuaConfiguration.n_best_file);
+    
     for (;;) {
       Translation translation = translations.next();
       if (translation == null)
@@ -446,7 +452,7 @@ public class Decoder {
           text = translation.toString().replaceAll("=", "= ");
           // Write the complete formatted string to STDOUT
           if (joshuaConfiguration.n_best_file != null)
-            out.write(text.getBytes());
+            nbest_out.write(text);
           
           // Extract just the translation and output that to STDOUT
           text = text.substring(0,  text.indexOf('\n'));
@@ -461,6 +467,9 @@ public class Decoder {
       }
       out.flush();
     }
+    
+    if (joshuaConfiguration.n_best_file != null)
+      nbest_out.close();
   }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/98ad70a2/src/joshua/server/ServerThread.java
----------------------------------------------------------------------
diff --git a/src/joshua/server/ServerThread.java 
b/src/joshua/server/ServerThread.java
index 2071344..253d80f 100644
--- a/src/joshua/server/ServerThread.java
+++ b/src/joshua/server/ServerThread.java
@@ -109,9 +109,6 @@ public class ServerThread extends Thread implements 
HttpHandler {
   public void handle(HttpExchange client) throws IOException {
 
     HashMap<String, String> params = 
queryToMap(URLDecoder.decode(client.getRequestURI().getQuery(), "UTF-8"));
-//    for (String key: params.keySet()) {
-//      System.err.println(String.format("%s = %s", key, params.get(key)));
-//    }
     String query = params.get("q");
     
     BufferedReader reader = new BufferedReader(new StringReader(query));

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/98ad70a2/test/decoder/moses-compat/n-best.txt
----------------------------------------------------------------------
diff --git a/test/decoder/moses-compat/n-best.txt 
b/test/decoder/moses-compat/n-best.txt
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/98ad70a2/test/decoder/moses-compat/output.expected
----------------------------------------------------------------------
diff --git a/test/decoder/moses-compat/output.expected 
b/test/decoder/moses-compat/output.expected
new file mode 100644
index 0000000..5fb08bf
--- /dev/null
+++ b/test/decoder/moses-compat/output.expected
@@ -0,0 +1,6 @@
+help
+0 ||| help ||| tm_glue_0=1.000 ||| 0.000
+help
+
+# n-best stuff to follow:
+0 ||| help ||| tm-glue-0= 1.000 ||| 0.000

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/98ad70a2/test/decoder/moses-compat/test.sh
----------------------------------------------------------------------
diff --git a/test/decoder/moses-compat/test.sh 
b/test/decoder/moses-compat/test.sh
new file mode 100755
index 0000000..dba9468
--- /dev/null
+++ b/test/decoder/moses-compat/test.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+set -u
+
+rm -f output
+# should write translation to stdout, output-format info to n-best.txt
+echo help | joshua -v 0 -moses -n-best-list n-best1.txt 10 distinct > output
+# should write output-format info to n-best.txt (since no -moses)
+echo help | joshua -v 0 -n-best-list n-best2.txt 10 distinct >> output
+# should write translation to stdout
+echo help | joshua -v 0 -moses >> output
+
+echo >> output
+echo "# n-best stuff to follow:" >> output
+cat n-best1.txt n-best2.txt >> output
+
+# Compare
+diff -u output output.expected > diff
+
+if [[ $? -eq 0 ]]; then
+    rm -f diff log output n-best1.txt n-best2.txt
+    exit 0
+else
+    exit 1
+fi

Reply via email to