用于提取单词功能的软件,例如主题,谓词,宾语等

问题描述 投票:8回答:3

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

She gave him a pen

我想拥有:

She_subject gave_predicate him a pen_object.

Stanford NLP可以做到吗?我尝试过使用他们的relation注释器,但它似乎没有按我预期的那样工作?也许还有其他软件可以产生此结果?

nlp stanford-nlp
3个回答
8
投票

根据http://nlp.stanford.edu/software/lex-parser.shtml,Stanford 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显示主谓词和主语-在这种情况下,为likesdog。数字给出了单词在句子中的位置(由于某种原因,它被索引了一次)。 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)),但是有一个系词(cop(large-4, is-3))以及与宾语的连词和介词。

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


3
投票

Stanford解析器可以做到:)不过,您需要查看依赖解析器。看看本页底部:http://nlp.stanford.edu/software/lex-parser.shtml

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

或浏览此页面(斯坦福依赖关系):http://nlp.stanford.edu/software/stanford-dependencies.shtml

并且要了解注释,请查看以下内容:http://nlp.stanford.edu/software/dependencies_manual.pdf


0
投票

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

enter image description here

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

Website for Displacy Demo

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

© www.soinside.com 2019 - 2024. All rights reserved.