【问题标题】:software to extract word functions like subject, predicate, object etc提取词功能的软件,如主语、谓语、宾语等
【发布时间】:2015-05-18 17:10:18
【问题描述】:

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

She gave him a pen

我想要:

She_subject gave_predicate him a pen_object.

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

【问题讨论】:

    标签: nlp stanford-nlp


    【解决方案1】:

    根据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 中有更多关于依赖格式的信息。

    【讨论】:

    • 不,我不是在寻找词性标记。我已经用斯坦福 NLP 进行了 POS 标记。但是词性标注标记动词、名词、形容词等,但不区分,例如,哪些是主语,哪些是宾语。
    • @Maximus 这会教我在醒来之前写下答案。已编辑。
    • 谢谢,我尝试了链接,但似乎找不到谓词或主题。您能否将代码粘贴到您的问题中并指出它向我显示谓词的位置?
    • @Maximus 我添加了一些评论。我希望它会有所帮助。不幸的是,我不熟悉斯坦福 NLP API,所以我能提供的帮助差不多了;如果它不能回答您的问题,希望比我更有知识的人会发布更好的答案。
    • 非常感谢,我会尽力理解语法。最好的!
    【解决方案2】:

    Stanford 解析器可以做到这一点:) 不过,您需要查看依赖解析器。看看这个页面的底部: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

    【讨论】:

      【解决方案3】:

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

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

      Website for Displacy Demo

      你可以发现主语词将具有“nsubj”或“普通主语”的依赖关系,而谓词是具有依赖关系的词是“root”,这意味着对其他词没有依赖关系。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多