处理英文陈述

时间:2009-08-12 13:56:37

标签: nlp

语言/图书馆转换句子的任何建议,如:

  

“X碰撞了Y,后者又踢了Z.”

  1. X:Bumped
  2. Y:被撞了,踢了Z

6 个答案:

答案 0 :(得分:7)

我建议你使用斯坦福分析器(http://nlp.stanford.edu/software/lex-parser.shtml),这是开源的,而且相对简单,就像这些事情一样。有了它,您可以提取类型化的依赖关系解析。句子的依赖解析基本上将句子分解为一组二元关系r(B, A),其中单词A在语法上依赖于单词B.

接受你的判决

X撞到了Y,后者反过来踢了Z。

在这句话中,X和Y都依赖于碰撞以在这句话中得到他们的语法关系。斯坦福分析师将为他们提取以下关系:

nsubj(bumped, X)
dobj(bumped, Y)

这意味着碰撞的主体是X,碰撞的直接对象是Y.然后,您可以使用此信息来建立语法关系:bumped(X, Y)。同样,斯坦福分析师为句子的其余部分提取以下关系:

nsubj(kicked, who)
rcmod(Y, kicked)
dobj(kicked, Z)

在这种情况下,你被踢为“who”,Y为rcmod(相对子句修饰符)。我不确定你的系统的目标是什么,但你可能会发现你需要手动构建一堆规则以涵盖情况。在这种情况下,您的规则可以将rcmodnsubj等同,以生成kicked(Y, Z)

有关使用Stanford Parser类型依赖项的更多信息,请参阅Stanford Parser网站(http://nlp.stanford.edu/software/dependencies_manual.pdf)上有关该主题的优秀教程。

答案 1 :(得分:2)

要公然扯掉this answer,为什么不试试Natural Language Toolkit

答案 2 :(得分:1)

ealdent建议的Stanford Parser可以完成这项工作,我更愿意将其编码为:

  • 凹凸(X,Y,过去)
  • 踢(Y,Z,过去)

POS标记器也可以工作,但你的句子很复杂(“谁反过来”)。

答案 3 :(得分:0)

除了斯坦福解析器之外,RASP也是可能的 - 它可以产生语法关系列表作为其输出的一部分。请参阅this question

答案 4 :(得分:0)

多语言商业选择:GlobalNLP

答案 5 :(得分:0)

您似乎对确定句子中的语义角色感兴趣。 SRL工具使用相应的角色标记实体。您可以使用其中一个工具的demo

碰撞的关系中,X标记为A0(代理),Y标记为A1(患者)。

相关问题