用于提取主题,谓词,对象等单词函数的软件

Max*_*kyi 8 nlp stanford-nlp

我需要在句子中提取单词的关系.我最感兴趣的是识别一个主题,谓词和一个对象.例如,对于以下句子:

She gave him a pen
Run Code Online (Sandbox Code Playgroud)

我想:

She_subject gave_predicate him a pen_object.
Run Code Online (Sandbox Code Playgroud)

斯坦福NLP能做到吗?我试过他们的relation注释器,但它似乎没有像我预期的那样工作?也许有其他软件可以产生这个结果?

tsl*_*son 7

根据http://nlp.stanford.edu/software/lex-parser.shtml,斯坦福NLP确实有一个解析器,可以识别句子的主语和谓词.你可以在网上试试http://nlp.stanford.edu:8080/parser/index.jsp.您可以使用类型化的依赖项来标识主题,谓词和对象.

从示例页面,句子我的狗也喜欢吃香肠会给你这个解析:

(ROOT
  (S
    (NP (PRP$ My) (NN dog))
    (ADVP (RB also))
    (VP (VBZ likes)
      (S
        (VP (VBG eating)
          (NP (NN sausage)))))
    (. .)))
Run Code Online (Sandbox Code Playgroud)

解析器还可以生成依赖项:

poss(dog-2, My-1)
nsubj(likes-4, dog-2)
advmod(likes-4, also-3)
root(ROOT-0, likes-4)
xcomp(likes-4, eating-5)
dobj(eating-5, sausage-6)
Run Code Online (Sandbox Code Playgroud)

依赖关系nsubj显示主谓词和主题 - 在这种情况下,喜欢.数字给出了句子中单词的位置(由于某种原因,一个索引).该dobj相关性显示了谓语和宾语之间的关系.的xcomp依赖提供了有关谓词的内部信息.

当谓词不是动词时,这也有效:我的狗很大并且负责给出:

poss(dog-2, My-1)
nsubj(large-4, dog-2)
cop(large-4, is-3)
root(ROOT-0, large-4)
cc(large-4, and-5)
conj(large-4, in-6)
pobj(in-6, charge-7)
Run Code Online (Sandbox Code Playgroud)

这告诉我们这large是主谓词(nsubj(large-4, dog-2)),但是有一个copula(cop(large-4, is-3)),以及与对象的连接和介词.

我不熟悉API,所以我不能给出确切的代码.也许知道API的其他人可以做到这一点.解析器记录在Stanford NLP doc站点上.您可能还会发现文本简化工具(Java)的答案很有帮助.有关"斯坦福依赖关系手册"中的依赖关系格式的更多信息.