Nlp 使用Stanford解析器提取子句

Nlp 使用Stanford解析器提取子句,nlp,stanford-nlp,Nlp,Stanford Nlp,我有一个复杂的句子,我需要把它分成主句和从句。 例如句子 ABC引用了许多国家禁止使用化学添加剂的事实,并认为在这个州也可能禁止使用化学添加剂。 所需的拆分 1)ABC cites the fact 2)chemical additives are banned in many countries 3)ABC feels they may be banned in this state too. 我想我可以使用斯坦福解析器树或依赖项,但我不确定如何从这里开始 树 (ROOT

我有一个复杂的句子,我需要把它分成主句和从句。 例如句子
ABC引用了许多国家禁止使用化学添加剂的事实,并认为在这个州也可能禁止使用化学添加剂。
所需的拆分

1)ABC cites the fact   
2)chemical additives are banned in many countries   
3)ABC feels they may be banned in this state too.    
我想我可以使用斯坦福解析器树或依赖项,但我不确定如何从这里开始

(ROOT (S (NP (NNP ABC)) (VP (VBZ cites) (NP (DT the) (NN fact)) (SBAR (IN that) (S (NP (NN chemical) (NNS additives)) (VP (VP (VBP are) (VP (VBN banned) (PP (IN in) (NP (JJ many) (NNS countries))))) (CC and) (VP (VBZ feels) (SBAR (S (NP (PRP they)) (VP (MD may) (VP (VB be) (VP (VBN banned) (PP (IN in) (NP (DT this) (NN state))) (ADVP (RB too)))))))))))) (. .))) (根 (S) (NP(NNP ABC)) (VBZ cites副总裁) (NP(DT)(NN事实)) (SBAR)(在该项中) (S) (NP(NN化学品)(NNS添加剂)) (副总裁) (副总裁(VBP为) (副总裁(禁止VBN) (PP(IN) (NP(JJ多)(NNS国家(()))) (抄送及) (副总裁(VBZ) (SBAR) (S) (NP(PRP) (副总裁(MD may) (副总裁(VB be) (副总裁(禁止VBN) (PP(IN) (NP(DT本)(NN状态))) (ADVP(RB-too(()(()))(())))( (. .))) 以及折叠的依赖项解析

nsubj(cites-2, ABC-1) root(ROOT-0, cites-2) det(fact-4, the-3) dobj(cites-2, fact-4) mark(banned-9, that-5) nn(additives-7, chemical-6) nsubjpass(banned-9, additives-7) nsubj(feels-14, additives-7) auxpass(banned-9, are-8) ccomp(cites-2, banned-9) amod(countries-12, many-11) prep_in(banned-9, countries-12) ccomp(cites-2, feels-14) conj_and(banned-9, feels-14) nsubjpass(banned-18, they-15) aux(banned-18, may-16) auxpass(banned-18, be-17) ccomp(feels-14, banned-18) det(state-21, this-20) prep_in(banned-18, state-21) advmod(banned-18, too-22) nsubj(cites-2,ABC-1) 根(根-0,根-2) det(事实4,事实3) dobj(cites-2,fact-4) 马克(禁赛-9,禁赛-5) nn(添加剂-7,化学品-6) nsubjpass(禁用-9,添加剂-7) nsubj(FEEL-14,添加剂-7) auxpass(禁止使用-9、are-8) ccomp(cites-2,cites-9) amod(12个国家,11个国家) 准备(禁止-9,国家-12) ccomp(cites-2、cites-14) 联合与(禁止-9,禁止-14) nsubjpass(禁止-18,禁止-15) 辅警(5月18日、5月16日) auxpass(禁止-18、be-17) ccomp(第14页,第18页) det(州-21,州-20) 预备队(18号禁赛,21号州) advmod(禁止使用-18,也禁止使用-22)
如果主要使用基于构成的解析树,而不是依赖项,则可能会更好。依赖项将是有帮助的,但只有在主要工作完成之后!我将在回答的最后解释这一点

这是因为选区分析是基于短语结构语法的,如果你想从一个句子中提取子句,这是最相关的。也可以使用依赖项来完成,但在这种情况下,您基本上是在重构短语结构——从词根开始,查看依赖节点(例如,
ABC
facts
是动词
cites
的名词主语和直接宾语,等等……)

然而,可视化解析树是有帮助的。在您的示例中,子句由SBAR标记表示,该标记是由从属连词(可能为空)引入的子句。您只需执行以下操作:

  • 识别解析树中的非根子句节点
  • 从主树中删除(但单独保留)根在这些子句节点上的子树
  • 在主树中(在步骤2中删除子树之后),删除所有悬垂的介词、从属连词和副词
  • 在第3步中,我所说的“挂起”是指在第2步中移除依赖关系的任何介词等。例如,从“ABC引用事实”中,您需要删除介词/从属连词“that”,因为它的从属节点“禁止”在步骤2中被删除。因此,您将有三个独立的条款:

    • 许多国家禁止使用化学添加剂(步骤2中SBAR的去除)
    • 在这种状态下,它们也可能被禁止(步骤2中的SBAR移除)
    • ABC引用事实(第3步)
    这里唯一的问题是ABC-感觉的联系。为此,请注意,“禁止”和“感觉”都是动词“cites”的补语,因此具有相同的主语,即“ABC”!你完成了。完成后,您将得到第四条“ABC感觉”,这是您可能希望或不希望包含在最终结果中的内容

    有关所有子句标记(以及实际上所有Penn树库标记)的列表,请参见以下列表:

    对于联机解析树可视化,您可能需要使用。它有助于形成更好的直觉。下面是为您的示例句子生成的图像:

    注意事项

  • 即使是最好的解析器也不会总是正确地解析句子,所以请记住这一点
  • 此外,许多复杂的句子都涉及语法,大多数语法分析器几乎从未正确解析过
  • 如果子句是被动语态,则可能需要稍微修改算法

  • 除了这三个陷阱之外,上述算法应该能够非常准确地工作。

    感谢您的详细解释和PenTreebank链接。当我提取SBAR时,我如何获得“感觉”,因为在SBAR上扎根的子树不包含感觉。@ChthonicProject,您所说的非根子句节点是什么意思?,它指的是SBAR标记的子树?@xzegga是SBAR下的S。您是如何获得树结果的?斯坦福德·帕瑟?