gpt4 book ai didi

java - 在先前标记的句子上使用 Stanford Dependency Parser

转载 作者:行者123 更新时间:2023-11-30 09:13:35 25 4
gpt4 key购买 nike

我目前正在使用 Twitter 词性标注器 available here将推文标记到 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;
}

现在我需要确定直接对象在这些标签中的位置。经过一些搜索,我发现斯坦福解析器可以通过斯坦福类型化依赖项 ( online example ) 来做到这一点。通过使用 dobj() 调用,我应该能够获得我需要的东西。

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

Twitter POS Tagger 包含 Stanford NLP Tools 的一个实例,所以我离它不远,但是我对 Stanford 工具不够熟悉,无法将我的 POS 标记文本输入其中以获得依赖项解析器正常工作。 The FAQ does mention this functionality ,但是没有任何示例代码可以使用,我有点卡住了。

最佳答案

这里是如何完全手动创建 List 的,在 the FAQ 中讨论过:

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();

关于java - 在先前标记的句子上使用 Stanford Dependency Parser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com