示例#1
0
 private void addZhaoUnsupervisedArgFeats(
     FeaturizedToken arg,
     FeaturizedToken argNext,
     FeaturizedToken argLast,
     ArrayList<FeaturizedToken> argChildrenObjectList,
     ArrayList<String> feats) {
   // ------- Argument features (unsupervised) -------
   String feat;
   // a.lm.form
   feat = getFeatureObject(arg.getFarLeftChild()).getForm();
   feats.add(feat);
   // a_1.form
   feat = argLast.getForm();
   feats.add(feat);
   // a.form + a1.form
   feat = arg.getForm() + "_" + argNext.getForm();
   feats.add(feat);
   // a.form + a.children.pos
   ArrayList<String> argChildrenPos = new ArrayList<String>();
   for (FeaturizedToken child : argChildrenObjectList) {
     argChildrenPos.add(child.getPos());
   }
   feat = arg.getForm() + "_" + buildString(argChildrenPos);
   feats.add(feat);
   // a1.pos + a.pos.seq
   feat = argNext.getPos() + "_" + arg.getPos();
   feats.add(feat);
 }
示例#2
0
 private void addZhaoUnsupervisedSenseFeats(
     FeaturizedToken p, FeaturizedToken p1, FeaturizedToken pm1, ArrayList<String> feats) {
   String feat;
   // p.form
   feat = p.getForm();
   feats.add(feat);
   // p.form−1 + p.form
   feat = pm1.getForm() + p.getForm();
   feats.add(feat);
   // p.form + p.form1
   feat = p.getForm() + p1.getForm();
   feats.add(feat);
 }
示例#3
0
 private void getThirdThirdSupArgFeats(
     FeaturizedToken pred,
     FeaturizedToken arg,
     FeaturizedToken predLast,
     FeaturizedToken predNext,
     FeaturizedToken argLast,
     FeaturizedToken argNext,
     FeaturizedToken argParent,
     ArrayList<FeaturizedToken> argChildrenObjectList,
     ArrayList<String> feats) {
   String feat;
   // a.lowSupportVerb.lemma
   feats.add(getFeatureObject(arg.getLowSupportNoun()).getLemma());
   // a.lemma + a.h.form
   feats.add(arg.getLemma() + "_" + argParent.getForm());
   // a.lemma + a.pphead.form
   feats.add(arg.getLemma() + "_" + getFeatureObject(arg.getParent()).getForm());
   // a1.lemma
   feats.add(argNext.getLemma());
   // a.pos + a.children.dprel.bag
   ArrayList<String> argChildrenDeprel = new ArrayList<String>();
   for (FeaturizedToken child : argChildrenObjectList) {
     argChildrenDeprel.add(child.getDeprel());
   }
   ArrayList<String> argChildrenDeprelBag = bag(argChildrenDeprel);
   feat = arg.getPos() + buildString(argChildrenDeprelBag);
   feats.add(feat);
 }
示例#4
0
 private void getSecondThirdSupArgFeats(
     FeaturizedToken pred,
     FeaturizedToken arg,
     FeaturizedToken predLast,
     FeaturizedToken predNext,
     FeaturizedToken argLast,
     FeaturizedToken argNext,
     FeaturizedToken argParent,
     ArrayList<FeaturizedToken> argChildrenObjectList,
     ArrayList<String> feats) {
   FeaturizedToken argLm = getFeatureObject(arg.getFarLeftChild());
   FeaturizedToken argRm = getFeatureObject(arg.getFarRightChild());
   FeaturizedToken argRn = getFeatureObject(arg.getNearRightChild());
   // FeatureObject argLn = getFeatureObject(arg.getNearLeftChild());
   String feat;
   // a.h.lemma
   feats.add(argParent.getLemma());
   // a.lm.dprel + a.form
   feats.add(argLm.getDeprel() + "_" + arg.getForm());
   // a.lm_1.lemma
   feats.add(getFeatureObject(argLast.getFarLeftChild()).getLemma());
   // a.lmn.pos (n=0,1)
   feats.add(argLm.getPos());
   feats.add(getFeatureObject(argNext.getFarLeftChild()).getPos());
   // a.noFarChildren.pos.bag + a.rm.form
   ArrayList<Integer> noFarChildren = arg.getNoFarChildren();
   ArrayList<String> noFarChildrenPos = new ArrayList<String>();
   for (Integer i : noFarChildren) {
     noFarChildrenPos.add(getFeatureObject(i).getPos());
   }
   ArrayList<String> argNoFarChildrenBag = bag(noFarChildrenPos);
   feat = buildString(argNoFarChildrenBag) + argRm.getForm();
   feats.add(feat);
   // a.pphead.lemma
   feats.add(getFeatureObject(arg.getParent()).getLemma());
   // a.rm.dprel + a.form
   feats.add(argRm.getDeprel() + "_" + arg.getForm());
   // a.rm_1.form
   feats.add(getFeatureObject(argLast.getFarRightChild()).getForm());
   // a.rm.lemma
   feats.add(argRm.getLemma());
   // a.rn.dprel + a.form
   feats.add(argRn.getDeprel() + "_" + arg.getForm());
 }
示例#5
0
 private void addBjorkelundPredParentFeatures(
     FeaturizedToken predParent, ArrayList<String> feats) {
   String feat;
   // PredParentWord
   feat = predParent.getForm();
   feats.add("PredParentWord:" + feat);
   // PredParentPOS
   feat = predParent.getPos();
   feats.add("PredParentPos:" + feat);
   // PredParentFeats
   feat = buildString(predParent.getFeat());
   feats.add("PredParentFeats:" + feat);
 }
示例#6
0
 private void addBjorkelundDependentFeats(
     FeaturizedToken dependent, ArrayList<String> feats, String dir) {
   String feat;
   // LeftWord, RightWord
   feat = dependent.getForm();
   feats.add(dir + "Word:" + feat);
   // LeftPOS, RightPOS
   feat = dependent.getPos();
   feats.add(dir + "POS:" + feat);
   // LeftFeats, RightFeats
   feat = buildString(dependent.getFeat());
   feats.add(dir + "Feats:" + feat);
 }
示例#7
0
 private void addBjorkelundSiblingFeats(
     FeaturizedToken argSibling, ArrayList<String> feats, String dir) {
   String feat;
   // LeftSiblingWord, RightSiblingWord
   feat = argSibling.getForm();
   feats.add(dir + "SiblingWord:" + feat);
   // LeftSiblingPOS, RightSiblingPOS
   feat = argSibling.getPos();
   feats.add(dir + "SiblingPos:" + feat);
   // LeftSiblingFeats, RightSiblingFeats
   feat = buildString(argSibling.getFeat());
   feats.add(dir + "SiblingFeats:" + feat);
 }
示例#8
0
 private void addBjorkelundGenericFeatures(int idx, ArrayList<String> feats, String type) {
   String feat;
   FeaturizedToken bjorkWord = getFeatureObject(idx);
   // ArgWord, PredWord
   feat = bjorkWord.getForm();
   feats.add(type + ":" + feat);
   // ArgPOS, PredPOS,
   feat = bjorkWord.getPos();
   feats.add(type + ":" + feat);
   // ArgFeats, PredFeats
   feat = buildString(bjorkWord.getFeat());
   feats.add(type + ":" + feat);
   // ArgDeprel, PredDeprel
   feat = bjorkWord.getDeprel();
   feats.add(type + ":" + feat);
 }
示例#9
0
 // ---------- Meg's Dependency Path features. ----------
 public void addLexicalDependencyPathFeatures(int pidx, int aidx, ArrayList<String> feats) {
   FeaturizedToken predObject = getFeatureObject(pidx);
   FeaturizedToken argObject = getFeatureObject(aidx);
   FeaturizedTokenPair predArgPathObject = getFeatureObject(pidx, aidx);
   List<Pair<Integer, Dir>> dependencyPath = predArgPathObject.getDependencyPath();
   String feat;
   ArrayList<String> depRelPathWord = new ArrayList<String>();
   ArrayList<FeaturizedToken> dependencyPathObjectList = getFeatureObjectList(dependencyPath);
   for (FeaturizedToken t : dependencyPathObjectList) {
     depRelPathWord.add(t.getForm());
   }
   feat = buildString(depRelPathWord);
   feats.add(feat);
   feat = buildString(bag(depRelPathWord));
   feats.add(feat);
 }
示例#10
0
 private void addZhaoUnsupervisedCombinedFeats(
     ArrayList<Integer> linePath,
     ArrayList<FeaturizedToken> linePathCoNLL,
     ArrayList<String> feats) {
   // ------- Combined features (unsupervised) -------
   String feat;
   // a:p|linePath.distance
   feat = Integer.toString(linePath.size());
   feats.add(feat);
   // a:p|linePath.form.seq
   ArrayList<String> linePathForm = new ArrayList<String>();
   for (FeaturizedToken t : linePathCoNLL) {
     linePathForm.add(t.getForm());
   }
   feat = buildString(linePathForm);
   feats.add(feat);
 }
示例#11
0
  private void addZhaoSupervisedPredFeats(
      FeaturizedToken pred,
      FeaturizedToken arg,
      FeaturizedToken predLast,
      FeaturizedToken predNext,
      ArrayList<FeaturizedToken> predChildrenObjectList,
      ArrayList<String> feats) {
    // ------- Predicate features (supervised) -------

    // NOTE: We cannot include these features in our model since they would have
    // to use the gold predicate sense.
    //
    //        // p.currentSense + p.lemma
    //        feats.add(pred.getSense() + "_" + pred.getLemma());
    //        // p.currentSense + p.pos
    //        feats.add(pred.getSense() + "_" + pred.getPos());
    //        // p.currentSense + a.pos
    //        feats.add(pred.getSense() + "_" + arg.getPos());

    // p_1.FEAT1
    feats.add(predLast.getFeat6().get(0));
    // p.FEAT2
    feats.add(pred.getFeat6().get(1));
    // p1.FEAT3
    feats.add(predNext.getFeat6().get(2));
    // NOTE:  This is supposed to be p.semrm.semdprel  What is this?
    // I'm not sure.  Here's just a guess.
    feats.add(getFeatureObject(pred.getFarRightChild()).getDeprel());
    // p.lm.dprel
    feats.add(getFeatureObject(pred.getFarLeftChild()).getDeprel());
    // p.form + p.children.dprel.bag
    ArrayList<String> predChildrenDeprel = new ArrayList<String>();
    for (FeaturizedToken child : predChildrenObjectList) {
      predChildrenDeprel.add(child.getDeprel());
    }
    String bagDepPredChildren = buildString(bag(predChildrenDeprel));
    feats.add(pred.getForm() + "_" + bagDepPredChildren);
    // p.lemma_n (n = -1, 0)
    feats.add(predLast.getLemma());
    feats.add(pred.getLemma());
    // p.lemma + p.lemma1
    feats.add(pred.getLemma() + "_" + predNext.getLemma());
    // p.pos + p.children.dprel.bag
    feats.add(pred.getPos() + "_" + bagDepPredChildren);
  }