summaryrefslogtreecommitdiff
path: root/gi/posterior-regularisation
diff options
context:
space:
mode:
Diffstat (limited to 'gi/posterior-regularisation')
-rw-r--r--gi/posterior-regularisation/prjava/src/phrase/Agree2Sides.java17
-rw-r--r--gi/posterior-regularisation/prjava/src/phrase/Trainer.java24
2 files changed, 28 insertions, 13 deletions
diff --git a/gi/posterior-regularisation/prjava/src/phrase/Agree2Sides.java b/gi/posterior-regularisation/prjava/src/phrase/Agree2Sides.java
index 8bf0b93e..031f887f 100644
--- a/gi/posterior-regularisation/prjava/src/phrase/Agree2Sides.java
+++ b/gi/posterior-regularisation/prjava/src/phrase/Agree2Sides.java
@@ -157,13 +157,16 @@ public class Agree2Sides {
public double[] posterior(int edgeIdx)
{
- Edge edge1=c1.getEdges().get(edgeIdx);
- Edge edge2=c2.getEdges().get(edgeIdx);
- double[] prob1=model1.posterior(edge1);
- double[] prob2=model2.posterior(edge2);
+ return posterior(c1.getEdges().get(edgeIdx), c2.getEdges().get(edgeIdx));
+ }
+
+ public double[] posterior(Edge e1, Edge e2)
+ {
+ double[] prob1=model1.posterior(e1);
+ double[] prob2=model2.posterior(e2);
- llh+=edge1.getCount()*Math.log(arr.F.l1norm(prob1));
- llh+=edge2.getCount()*Math.log(arr.F.l1norm(prob2));
+ llh+=e1.getCount()*Math.log(arr.F.l1norm(prob1));
+ llh+=e2.getCount()*Math.log(arr.F.l1norm(prob2));
arr.F.l1normalize(prob1);
arr.F.l1normalize(prob2);
@@ -177,7 +180,6 @@ public class Agree2Sides {
public void displayPosterior(PrintStream ps)
{
-
for (int i=0;i<c1.getEdges().size();i++)
{
Edge edge=c1.getEdges().get(i);
@@ -192,5 +194,4 @@ public class Agree2Sides {
ps.println(" ||| C=" + t);
}
}
-
}
diff --git a/gi/posterior-regularisation/prjava/src/phrase/Trainer.java b/gi/posterior-regularisation/prjava/src/phrase/Trainer.java
index 202930f5..c1d4775e 100644
--- a/gi/posterior-regularisation/prjava/src/phrase/Trainer.java
+++ b/gi/posterior-regularisation/prjava/src/phrase/Trainer.java
@@ -166,8 +166,10 @@ public class Trainer
last = o;
}
- if (cluster == null)
+ if (cluster == null && agree != null)
cluster = agree.model1;
+ else if (cluster == null && agree2sides != null)
+ cluster = agree2sides.model1;
double pl1lmax = cluster.phrase_l1lmax();
double cl1lmax = cluster.context_l1lmax();
@@ -183,11 +185,23 @@ public class Trainer
test = corpus.getEdges();
else
{ // if --test supplied, load up the file
- infile = (File) options.valueOf("test");
- System.out.println("Reading testing concordance from " + infile);
- test = corpus.readEdges(FileUtil.reader(infile));
+ if (agree == null && agree2sides == null)
+ {
+ infile = (File) options.valueOf("test");
+ System.out.println("Reading testing concordance from " + infile);
+ test = corpus.readEdges(FileUtil.reader(infile));
+ }
+ else
+ System.err.println("Can't run agreement models on different test data cf training (yet); --test ignored.");
}
- cluster.displayPosterior(ps, test);
+
+ if (agree != null)
+ agree.displayPosterior(ps);
+ else if (agree2sides != null)
+ agree2sides.displayPosterior(ps);
+ else
+ cluster.displayPosterior(ps, test);
+
ps.close();
} catch (IOException e) {
System.err.println("Failed to open either testing file or output file");