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

时间:2015-05-18 17:10:19

标签: nlp stanford-nlp

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

She gave him a pen

我想要:

She_subject gave_predicate him a pen_object.

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

3 个答案:

答案 0 :(得分: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)))))
    (. .)))

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

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)

依赖关系nsubj显示主谓词和主题 - 在这种情况下,喜欢 dog 。数字给出了句子中单词的位置(由于某种原因,一个索引)。 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)

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

我不熟悉API,所以我无法提供准确的代码。也许知道API的其他人可以做到这一点。解析器记录在the Stanford NLP doc site。您可能还会发现Tools for text simplification (Java)的答案很有帮助。有关The Stanford Dependency Manual中依赖关系格式的更多信息。

答案 1 :(得分:2)

斯坦福解析器可以做到:)你需要查看依赖解析器。请查看此页面的底部:http://nlp.stanford.edu/software/lex-parser.shtml

 subject: nsubj(snapped, rain), 
 or direct object: dobj(shut, hub))
 ...

或者看一下这个页面(Stanford Dependencies): http://nlp.stanford.edu/software/stanford-dependencies.shtml

要了解注释,请看一下: http://nlp.stanford.edu/software/dependencies_manual.pdf

答案 2 :(得分:0)

在这种情况下,我更喜欢使用spaCy,使用spaCy置换的可视化效果如下:

enter image description here

,您可以轻松访问他们的官方网站:

Website for Displacy Demo

您可以确定主题词将具有“ nsubj”或“正常主题”的依赖关系,并且谓词是具有依赖关系的词是“ root”,这意味着对其他单词没有依赖关系。