Package edu.umd.hooka.alignment.aer

Examples of edu.umd.hooka.alignment.aer.ReferenceAlignment


    if (at != 0) {
      //System.out.println("Reading " +f.size() + "--" + e.size());
      if (at == 1)
        a = new Alignment(f.size(), e.size());
      else if (at == 2)
        a = new ReferenceAlignment(f.size(), e.size());
      else
        throw new IOException("bad format! at="+at);
      a.readFields(in);
      assert(a.getELength() == e.getWords().length);
      assert(a.getFLength() == f.getWords().length);
View Full Code Here


      if (sc == null)
        throw new RuntimeException("PChunk doesn't contain data for lang: " + langpair.getSource() + ".  Note: manual word alignment data must follow the chunk data.");
      Chunk tc = pchunk.getChunk(langpair.getTarget());
      if (tc == null)
        throw new RuntimeException("PChunk doesn't contain data for lang: " + langpair.getTarget() + ".  Note: manual word alignment data must follow the chunk data.");
      ReferenceAlignment r = new ReferenceAlignment(
          sc.getLength(),
          tc.getLength());
      r.addAlignmentPointsPharaoh(tempVal.toString().trim());
      pchunk.addReferenceAlignment(langpair, r);
      refAlignCount++;
      tempVal = null;
    }else if (qName.equalsIgnoreCase("pdoc")) {
      System.err.println("Finished parsing document " + docName);
View Full Code Here

        ParallelChunk p = new ParallelChunk();
        p.setName(name);
        p.addChunk(de, fc);
        p.addChunk(en, ec);
        if (a != null) { 
          ReferenceAlignment ra = new ReferenceAlignment(ec.getLength(), fc.getLength());
          try {
            ra.addAlignmentPointsPharaoh(a);
            p.addReferenceAlignment(ende, ra);
          } catch (RuntimeException re) {
            System.err.println("Couldn't set alignment points for sentence # " + lc)
            System.err.println(" " + en +": len=" + ec.getLength() + " words=" + ec);
            System.err.println(" " + de +": len=" + fc.getLength() + " words=" + fc);
View Full Code Here

    lp2ra.put(lp, r);
  }
  public ReferenceAlignment getReferenceAlignment(LanguagePair lp) {
    if (lp2ra == null) return null;

    ReferenceAlignment r = lp2ra.get(lp);
    if (r == null) {
      //if can't get alignment (for en-fr), then try for other translation direction (fr-en), and transpose the alignment for those.
      r = lp2ra.get(lp.inverted());
      if (r != null) {
        r = (ReferenceAlignment)r.getTranspose();
        lp2ra.put(lp, r);
      }
    }
    return r;
  }
View Full Code Here

    assertTrue(c.aligned(1, 0));
    assertTrue(c.aligned(0, 1));
  }
 
  public void testReference() {
    ReferenceAlignment ra = new ReferenceAlignment(4,5);
    ra.align(0, 0);
    ra.sureAlign(1, 1);
    ra.sureAlign(3, 4);
    ra.align(2, 4);
   
    Alignment a = new Alignment(4,5);
    a.align(0, 1);
    a.align(1, 1);
    a.align(2, 4);
    a.align(1, 4);
    assertEquals(1,ra.countSureHits(a));
   
//    Alignment b = new Alignment(3,4);
//    try {
//      ra.countProbableHits(b);
//      fail("Should fail");
View Full Code Here

      //e,f: phrase from whole sentence
      Phrase e = new Phrase(ee, 0);
      Phrase f = new Phrase(fe, 1);

      edu.umd.hooka.PhrasePair b = new PhrasePair(f,e);
      ReferenceAlignment ra = c.getReferenceAlignment(lp);
      if (ra != null) {
        b.setAlignment(ra);
      }
      reporter.incrCounter(BitextCompilerCounters.EN_WORDS, e.getWords().length);
      reporter.incrCounter(BitextCompilerCounters.FR_WORDS, f.getWords().length);
View Full Code Here

      if (value.hasAlignment() && !(trainer instanceof Model1_InitUniform)) {
        PerplexityReporter pr = new PerplexityReporter();

        Alignment a = trainer.viterbiAlign(value, pr);
        a = trainer.computeAlignmentPosteriors(value).alignPosteriorThreshold(0.5f);
        ReferenceAlignment ref = (ReferenceAlignment)value.getAlignment();
        reporter.incrCounter(AlignmentEvalEnum.SURE_HITS, ref.countSureHits(a));
        reporter.incrCounter(AlignmentEvalEnum.PROBABLE_HITS, ref.countProbableHits(a));
        reporter.incrCounter(AlignmentEvalEnum.HYPOTHESIZED_ALIGNMENT_POINTS, a.countAlignmentPoints());
        reporter.incrCounter(AlignmentEvalEnum.REF_ALIGNMENT_POINTS, ref.countSureAlignmentPoints());
      }
      hasCounts = true;
    }
View Full Code Here

      if (trainer instanceof HMM && model1g != null) {
        ((HMM)trainer).setModel1Posteriors(model1g);
      }

      Alignment a = trainer.viterbiAlign(value, pr);
      ReferenceAlignment ref = (ReferenceAlignment)value.getAlignment();
      AlignmentPosteriorGrid ghmm = null;
      AlignmentPosteriorGrid gmodel1 = null;

      if (generatePosteriors) {
        if (value.hasAlignmentPosteriors())
          model1g = value.getAlignmentPosteriorGrid();
        if (trainer instanceof HMM)
          ((HMM)trainer).setModel1Posteriors(model1g);
        AlignmentPosteriorGrid g = trainer.computeAlignmentPosteriors(value);
        if (value.hasAlignmentPosteriors()) {
          //System.err.println(key + ": already has posteriors!");
          model1g = value.getAlignmentPosteriorGrid();
          //model1g.penalizeGarbageCollectors(2, 0.27f, 0.20f);
          Alignment model1a = model1g.alignPosteriorThreshold(0.5f);
          //System.out.println("MODEL1 MAP ALIGNMENT:\n"+model1a.toStringVisual());
          //ystem.out.println("HMM VITERBI ALIGNMENT:\n"+a.toStringVisual());
          //model1g.diff(g);
          ghmm = g;
          gmodel1 = model1g;
          Alignment da = model1g.alignPosteriorThreshold((float)Math.exp(-1.50f));
          Alignment ints = Alignment.intersect(da, model1a);
          //Alignment df = Alignment.subtract(ints, a);
          //System.out.println("DIFF (HMM - (Model1 \\intersect DIFF)): " + key + "\n" +df.toStringVisual() + "\n"+model1g);
          //a = Alignment.union(a, df);
        }
        value.setAlignmentPosteriorGrid(g);
      }

      if (ref != null) {
        a = trainer.computeAlignmentPosteriors(value).alignPosteriorThreshold(0.5f);
        reporter.incrCounter(AlignmentEvalEnum.SURE_HITS, ref.countSureHits(a));
        reporter.incrCounter(AlignmentEvalEnum.PROBABLE_HITS, ref.countProbableHits(a));
        reporter.incrCounter(AlignmentEvalEnum.HYPOTHESIZED_ALIGNMENT_POINTS, a.countAlignmentPoints());
        reporter.incrCounter(AlignmentEvalEnum.REF_ALIGNMENT_POINTS, ref.countSureAlignmentPoints());
        if (gmodel1!=null) {
          StringBuffer sb=new StringBuffer();
          for (int i =0; i<ref.getELength(); i++)
            for (int j=0; j<ref.getFLength(); j++) {
              if (ref.isProbableAligned(j, i) || ref.isSureAligned(j, i))
                sb.append("Y");
              else
                sb.append("N");
              sb.append(" 1:").append(gmodel1.getAlignmentPointPosterior(j, i+1));
              sb.append(" 3:").append(ghmm.getAlignmentPointPosterior(j, i+1));
View Full Code Here

TOP

Related Classes of edu.umd.hooka.alignment.aer.ReferenceAlignment

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.