首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >利用斯坦福OpenIE进行子句分割

利用斯坦福OpenIE进行子句分割
EN

Stack Overflow用户
提问于 2017-04-07 13:11:55
回答 2查看 823关注 0票数 1

我正在寻找一个很好的工具,可以把复杂的句子分割成分句。由于我使用CoreNLP工具进行解析,所以我了解到OpenIE在从句子中提取关系三元组的过程中处理子句分段。目前,我使用了来自github 存储库的OpenIEDemo类中提供的示例代码,但是它没有正确地将句子分割成子句。以下是代码:

代码语言:javascript
运行
复制
// Create the Stanford CoreNLP pipeline
Properties props = PropertiesUtils.asProperties(
        "annotators", "tokenize,ssplit,pos,lemma,parse,natlog,openie");

StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
//Annotate sample sentence
text = "I don't think he will be able to handle this.";

Annotation doc = new Annotation(text);
pipeline.annotate(doc);

// Loop over sentences in the document
int sentNo = 0;
for (CoreMap sentence : doc.get(CoreAnnotations.SentencesAnnotation.class)) {
      List<SentenceFragment> clauses = new OpenIE(props).clausesInSentence(sentence);
  for (SentenceFragment clause : clauses) {
    System.out.println("Clause: "+clause.toString());
  }
}

我希望get作为输出有三个子句:

  • 我不认为
  • 他就能
  • 处理这件事

相反,代码返回完全相同的输入:

  • 我不认为他能处理这件事

然而,判决

奥巴马出生在夏威夷,他不再是我们的总统。

获取两个子句:

  • 奥巴马出生在夏威夷,他不再是我们的总统。
  • 他不再是我们的总统了

(似乎协调连词是一个很好的分段指示符)

OpenIE是否通常用于子句分段,如果是,如何正确地进行分词?

欢迎任何其他实用的分词方法/工具。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-08 17:07:12

因此,子句分段器与OpenIE的集成比名称所暗示的要紧密一些。该模块的目标是生成逻辑包含的子句,然后可以将这些子句缩短为逻辑包含的句子片段。看看你的两个例子:

  1. 我不认为他能处理这件事。

我认为这3条条文中没有一条是从原来的句子中产生的:

代码语言:javascript
运行
复制
- "I don't think" -- you likely still "think," even if you don't think something is true.
- "He will be able" -- If you "think the world is flat," it doesn't mean that the world is flat. Similarly, if you "think he'll be able" it doesn't mean he'll be able.
- "to handle this" -- I'm not sure this is a clause... I'd group this with "He will be able to handle this," with "able to" being treated as a single verb.

  1. 奥巴马出生在夏威夷,他不再是我们的总统。

当然,这两个条款应该是“奥巴马出生在夏威夷”和“他不再是我们的总统”。尽管如此,子句拆分器输出原来的句子代替第一个子句,期望OpenIE提取器的下一步将去掉“conj:和”边缘。

票数 1
EN

Stack Overflow用户

发布于 2017-08-20 19:33:12

你见过这个斯坦福大学CoreNLP解析树可视化工具吗?http://nlpviz.bpodgursky.com/

我不编程,但我一直在寻找可能意味着独立子句的CoreNLP标记组(独立)。

例如:

我不认为他能处理好-

我不认为

S-NP-VP

他就能

S-NP-VP

处理这件事

VP-VB-NP

另一个例子是,研究人员正在开发算法,利用MRI的力量来引导毫米大小的机器人。

研究人员正在开发

S-NP-VP

驾驭力

VP-NN-NP

掌舵毫米大小的机器人

VP-VB-NP

红线是第一层,蓝线是第二层。

红线是第一层的

S-NP-VP

蓝线是第二层

S-NP-VP

有些金属离子可能对细胞有害,而另一些则是生化反应所必需的。

有些金属离子是有害的。

S-NP-DT

其他的是必要的

-NP-NNS

但是,这是如何决定的,往往是基于可被解释的质疑,而且许多其他州都有法律规定参与者不得在不同的天数之外。

这是如何确定的,通常是基于询问。

SBAR VP

其他许多州

VB

不知道不同的数字

VP-VPN-NP

例如,过去关于老年人和非人类灵长类动物的数据表明,饮食中的类胡萝卜素可以减缓认知能力的下降。

过去的数据表明

S-NP-VP

饮食中的类胡萝卜素会减缓

S-NP-VP

我注意到的组合:

S-NP-VP

S-NP-DT

-NP-NNS

SBAR VP

VB

VP-VPN-NP

VP-NN-NP

VP-VB-NP

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43279085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档