Java 对先前标记的句子使用斯坦福依赖项解析器

Java 对先前标记的句子使用斯坦福依赖项解析器,java,twitter,nlp,stanford-nlp,part-of-speech,Java,Twitter,Nlp,Stanford Nlp,Part Of Speech,我目前正在使用Twitter POS标记器将推文标记到Penn Tree Bank标记中 这是代码: import java.util.List; import cmu.arktweetnlp.Tagger; import cmu.arktweetnlp.Tagger.TaggedToken; /* Tags the tweet text */ List<TaggedToken> tagTweet(String text) throws IOException { //

我目前正在使用Twitter POS标记器将推文标记到Penn Tree Bank标记中

这是代码:

import java.util.List;

import cmu.arktweetnlp.Tagger;
import cmu.arktweetnlp.Tagger.TaggedToken;

/* Tags the tweet text */
List<TaggedToken> tagTweet(String text) throws IOException {

    // Loads Penn Treebank POS tags
    tagger.loadModel("res/model.ritter_ptb_alldata_fixed.txt");

    // Tags the tweet text
    taggedTokens = tagger.tokenizeAndTag(text);

    return taggedTokens;
}
import java.util.List;
输入cmu.arktweetnlp.Tagger;
导入cmu.arktweetnlp.Tagger.TaggedToken;
/*标记tweet文本*/
列表标记Tweet(字符串文本)引发IOException{
//加载Penn Treebank POS标签
tagger.loadModel(“res/model.ritter_ptb_alldata_fixed.txt”);
//标记tweet文本
taggedTokens=tagger.tokenizeAndTag(文本);
返回标签;
}
现在我需要确定直接对象在这些标记中的位置。经过一些搜索,我发现Stanford解析器可以通过Stanford类型的依赖项()实现这一点。通过使用dobj()调用,我应该能够得到我需要的东西

然而,我还没有找到任何关于如何将已经标记的句子输入这个工具的好文档。据我所知,在使用依赖关系解析器之前,我需要从句子的标记/标记创建一个树。这是怎么做到的?我还没有找到任何示例代码


Twitter POS标记器包含斯坦福NLP工具的一个实例,因此我并不遥远,但是我对斯坦福工具不够熟悉,无法将POS标记的文本输入其中,以使依赖项解析器正常工作,但是没有任何示例代码可供使用,我有点卡住了。

以下是完全手动创建
列表的方法,讨论内容如下:

String[]sent3={“It”、“can”、“can”、“It”、“It”};
//解析器在没有帮助的情况下第二个“can”错误(将其解析为模态MD)
字符串[]tag3={“PRP”、“MD”、“VB”、“PRP”、“};
列表语句3=新的ArrayList();
对于(int i=0;i
String[] sent3 = { "It", "can", "can", "it", "." };
// Parser gets second "can" wrong without help (parsing it as modal MD)
String[] tag3 = { "PRP", "MD", "VB", "PRP", "." };                                                 
List<TaggedWord> sentence3 = new ArrayList<TaggedWord>();
for (int i = 0; i < sent3.length; i++) {
  sentence3.add(new TaggedWord(sent3[i], tag3[i]));
}
Tree parse = lp.parse(sentence3);
parse.pennPrint();