本文整理汇总了Java中edu.stanford.nlp.ling.HasTag类的典型用法代码示例。如果您正苦于以下问题:Java HasTag类的具体用法?Java HasTag怎么用?Java HasTag使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HasTag类属于edu.stanford.nlp.ling包,在下文中一共展示了HasTag类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: myExtractor
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
private static Sentence<TaggedWord> myExtractor(Tree t, Sentence<TaggedWord> ty) {
Tree[] kids = t.children();
// this inlines the content of t.isPreTerminal()
if (kids.length == 1 && kids[0].isLeaf()) {
if (t.label() instanceof HasTag) {
// System.err.println("Object is: " + ((CategoryWordTag) t.label()).toString("full"));
ty.add(new TaggedWord(kids[0].label().value(), ((HasTag) t.label()).tag()));
} else {
// System.err.println("Object is: " + StringUtils.getShortClassName(t.label()) + " " + t.label());
ty.add(new TaggedWord(kids[0].label().value(), t.label().value()));
}
} else {
for (int i = 0; i < kids.length; i++) {
myExtractor(kids[i], ty);
}
}
return ty;
}
示例2: makeDependencyLabel
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
/**
* Convert a constituency label to a dependency label. Options are provided for selecting annotations
* to copy.
*
* @param oldLabel
* @param copyLabel
* @param copyIndex
* @param copyPosTag
*/
private static Label makeDependencyLabel(Label oldLabel, boolean copyLabel, boolean copyIndex, boolean copyPosTag) {
if ( ! copyLabel)
return oldLabel;
String wordForm = (oldLabel instanceof HasWord) ? ((HasWord) oldLabel).word() : oldLabel.value();
Label newLabel = oldLabel.labelFactory().newLabel(wordForm);
if (newLabel instanceof HasWord) ((HasWord) newLabel).setWord(wordForm);
if (copyPosTag && newLabel instanceof HasTag && oldLabel instanceof HasTag) {
String tag = ((HasTag) oldLabel).tag();
((HasTag) newLabel).setTag(tag);
}
if (copyIndex && newLabel instanceof HasIndex && oldLabel instanceof HasIndex) {
int index = ((HasIndex) oldLabel).index();
((HasIndex) newLabel).setIndex(index);
}
return newLabel;
}
示例3: vpContainsParticiple
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
private static boolean vpContainsParticiple(Tree t) {
for (Tree kid : t.children()) {
if (DEBUG) {
System.err.println("vpContainsParticiple examining " + kid);
}
if (kid.isPreTerminal()) {
Label kidLabel = kid.label();
String tag = null;
if (kidLabel instanceof HasTag) {
tag = ((HasTag) kidLabel).tag();
}
if (tag == null) {
tag = kid.value();
}
if ("VBN".equals(tag) || "VBG".equals(tag) || "VBD".equals(tag)) {
if (DEBUG) {
System.err.println("vpContainsParticiple found VBN/VBG/VBD VP");
}
return true;
}
}
}
return false;
}
示例4: setMissingTags
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
/**
* Set the tags of the original tokens and the leaves if they
* aren't already set
*/
public static void setMissingTags(CoreMap sentence, Tree tree) {
List<TaggedWord> taggedWords = null;
List<Label> leaves = null;
List<CoreLabel> tokens = sentence.get(CoreAnnotations.TokensAnnotation.class);
for (int i = 0; i < tokens.size(); ++i) {
CoreLabel token = tokens.get(i);
if (token.tag() == null) {
if (taggedWords == null) {
taggedWords = tree.taggedYield();
}
if (leaves == null) {
leaves = tree.yield();
}
token.setTag(taggedWords.get(i).tag());
Label leaf = leaves.get(i);
if (leaf instanceof HasTag) {
((HasTag) leaf).setTag(taggedWords.get(i).tag());
}
}
}
}
示例5: setMissingTags
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
/**
* Set the tags of the original tokens and the leaves if they
* aren't already set
*/
public static void setMissingTags(CoreMap sentence, Tree tree) {
List<TaggedWord> taggedWords = null;
List<Label> leaves = null;
List<CoreLabel> tokens = sentence.get(TokensAnnotation.class);
for (int i = 0; i < tokens.size(); ++i) {
CoreLabel token = tokens.get(i);
if (token.tag() == null) {
if (taggedWords == null) {
taggedWords = tree.taggedYield();
}
if (leaves == null) {
leaves = tree.yield();
}
token.setTag(taggedWords.get(i).tag());
Label leaf = leaves.get(i);
if (leaf instanceof HasTag) {
((HasTag) leaf).setTag(taggedWords.get(i).tag());
}
}
}
}
示例6: transformTree
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
public Tree transformTree(Tree tree) {
Label lab = tree.label();
if (tree.isLeaf()) {
Tree leaf = tf.newLeaf(lab);
leaf.setScore(tree.score());
return leaf;
}
String s = lab.value();
s = treebankLanguagePack().basicCategory(s);
int numKids = tree.numChildren();
List<Tree> children = new ArrayList<Tree>(numKids);
for (int cNum = 0; cNum < numKids; cNum++) {
Tree child = tree.getChild(cNum);
Tree newChild = transformTree(child);
// cdm 2007: for just subcategory stripping, null shouldn't happen
// if (newChild != null) {
children.add(newChild);
// }
}
// if (children.isEmpty()) {
// return null;
// }
CategoryWordTag newLabel = new CategoryWordTag(lab);
newLabel.setCategory(s);
if (lab instanceof HasTag) {
String tag = ((HasTag) lab).tag();
tag = treebankLanguagePack().basicCategory(tag);
newLabel.setTag(tag);
}
Tree node = tf.newTreeNode(newLabel, children);
node.setScore(tree.score());
return node;
}
示例7: accept
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
public boolean accept(Dependency<G, D, N> d) {
if (d == null) {
return false;
}
if ( ! (d.dependent() instanceof HasTag)) {
return false;
}
String tag = ((HasTag) d.dependent()).tag();
return tagRejectFilter.accept(tag);
}
示例8: transformTree
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
@Override
public Tree transformTree(Tree tree) {
Label lab = tree.label();
if (tree.isLeaf()) {
Tree leaf = tf.newLeaf(lab);
leaf.setScore(tree.score());
return leaf;
}
String s = lab.value();
s = treebankLanguagePack().basicCategory(s);
int numKids = tree.numChildren();
List<Tree> children = new ArrayList<Tree>(numKids);
for (int cNum = 0; cNum < numKids; cNum++) {
Tree child = tree.getChild(cNum);
Tree newChild = transformTree(child);
// cdm 2007: for just subcategory stripping, null shouldn't happen
// if (newChild != null) {
children.add(newChild);
// }
}
// if (children.isEmpty()) {
// return null;
// }
CategoryWordTag newLabel = new CategoryWordTag(lab);
newLabel.setCategory(s);
if (lab instanceof HasTag) {
String tag = ((HasTag) lab).tag();
tag = treebankLanguagePack().basicCategory(tag);
newLabel.setTag(tag);
}
Tree node = tf.newTreeNode(newLabel, children);
node.setScore(tree.score());
return node;
}
示例9: accept
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
public boolean accept(Dependency<G, D, N> d) {
/*
System.err.println("DRF: Checking " + d + ": hasTag?: " +
(d.dependent() instanceof HasTag) + "; value: " +
((d.dependent() instanceof HasTag)? ((HasTag) d.dependent()).tag(): null));
*/
if (d == null) {
return false;
}
if ( ! (d.dependent() instanceof HasTag)) {
return false;
}
String tag = ((HasTag) d.dependent()).tag();
return tagRejectFilter.accept(tag);
}
示例10: isVerbalAuxiliary
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
private boolean isVerbalAuxiliary(Tree preterminal, Set<String> verbalSet, boolean allowJustTagMatch) {
if (preterminal.isPreTerminal()) {
Label kidLabel = preterminal.label();
String tag = null;
if (kidLabel instanceof HasTag) {
tag = ((HasTag) kidLabel).tag();
}
if (tag == null) {
tag = preterminal.value();
}
Label wordLabel = preterminal.firstChild().label();
String word = null;
if (wordLabel instanceof HasWord) {
word = ((HasWord) wordLabel).word();
}
if (word == null) {
word = wordLabel.value();
}
if (DEBUG) {
System.err.println("Checking " + preterminal.value() + " head is " + word + '/' + tag);
}
String lcWord = word.toLowerCase();
if (allowJustTagMatch && unambiguousAuxiliaryTags.contains(tag) || verbalTags.contains(tag) && verbalSet.contains(lcWord)) {
if (DEBUG) {
System.err.println("isAuxiliary found desired type of aux");
}
return true;
}
}
return false;
}
示例11: transformTree
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
@Override
public Tree transformTree(Tree t, Tree root) {
String baseCat = t.value();
StringBuilder newCategory = new StringBuilder();
//Add manual state splits
for (Pair<TregexPattern,Function<TregexMatcher,String>> e : activeAnnotations) {
TregexMatcher m = e.first().matcher(root);
if (m.matchesAt(t))
newCategory.append(e.second().apply(m));
}
// WSGDEBUG
//Add morphosyntactic features if this is a POS tag
if(t.isPreTerminal() && tagSpec != null) {
if( !(t.firstChild().label() instanceof CoreLabel) || ((CoreLabel) t.firstChild().label()).originalText() == null )
throw new RuntimeException(String.format("%s: Term lacks morpho analysis: %s",this.getClass().getName(),t.toString()));
String morphoStr = ((CoreLabel) t.firstChild().label()).originalText();
MorphoFeatures feats = tagSpec.strToFeatures(morphoStr);
baseCat = feats.getTag(baseCat);
}
//Update the label(s)
String newCat = baseCat + newCategory.toString();
t.setValue(newCat);
if (t.isPreTerminal() && t.label() instanceof HasTag)
((HasTag) t.label()).setTag(newCat);
return t;
}
示例12: transformTree
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
@Override
public Tree transformTree(Tree t, Tree root) {
String baseCat = t.value();
StringBuilder newCategory = new StringBuilder();
//Add manual state splits
for (Pair<TregexPattern,Function<TregexMatcher,String>> e : activeAnnotations) {
TregexMatcher m = e.first().matcher(root);
if (m.matchesAt(t))
newCategory.append(e.second().apply(m));
}
//Add morphosyntactic features if this is a POS tag
if(t.isPreTerminal() && tagSpec != null) {
if( !(t.firstChild().label() instanceof CoreLabel) || ((CoreLabel) t.firstChild().label()).originalText() == null )
throw new RuntimeException(String.format("%s: Term lacks morpho analysis: %s",this.getClass().getName(),t.toString()));
String morphoStr = ((CoreLabel) t.firstChild().label()).originalText();
Pair<String,String> lemmaMorph = MorphoFeatureSpecification.splitMorphString("", morphoStr);
MorphoFeatures feats = tagSpec.strToFeatures(lemmaMorph.second());
baseCat = feats.getTag(baseCat);
}
//Update the label(s)
String newCat = baseCat + newCategory.toString();
t.setValue(newCat);
if (t.isPreTerminal() && t.label() instanceof HasTag)
((HasTag) t.label()).setTag(newCat);
return t;
}
示例13: setCorrectTags
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
public void setCorrectTags(List<? extends HasTag> sentence) {
int len = sentence.size();
correctTags = new String[len];
for (int i = 0; i < len; i++) {
correctTags[i] = sentence.get(i).tag();
}
}
示例14: tagSentence
import edu.stanford.nlp.ling.HasTag; //导入依赖的package包/类
/**
* Tags the sentence s by running maxent model. Returns a sentence (List) of
* TaggedWord objects.
*
* @param s Input sentence (List). This isn't changed.
* @return Tagged sentence
*/
public ArrayList<TaggedWord> tagSentence(List<? extends HasWord> s,
boolean reuseTags) {
this.origWords = new ArrayList<HasWord>(s);
int sz = s.size();
this.sent = new ArrayList<String>(sz + 1);
for (int j = 0; j < sz; j++) {
if (maxentTagger.wordFunction != null) {
sent.add(maxentTagger.wordFunction.apply(s.get(j).word()));
} else {
sent.add(s.get(j).word());
}
}
sent.add(TaggerConstants.EOS_WORD);
if (reuseTags) {
this.originalTags = new ArrayList<String>(sz + 1);
for (int j = 0; j < sz; ++j) {
if (s.get(j) instanceof HasTag) {
originalTags.add(((HasTag) s.get(j)).tag());
} else {
originalTags.add(null);
}
}
originalTags.add(TaggerConstants.EOS_TAG);
}
size = sz + 1;
if (VERBOSE) {
System.err.println("Sentence is " + Sentence.listToString(sent, false, tagSeparator));
}
init();
result = testTagInference();
if (maxentTagger.wordFunction != null) {
for (int j = 0; j < sz; ++j) {
result.get(j).setWord(s.get(j).word());
}
}
return result;
}