如何检查句子中的短语“作用”

时间:2016-08-05 13:46:07

标签: machine-learning nlp opennlp syntaxnet

除了名词和名词短语之外,英语中还有一些其他结构也可以作为名词。例如,Gerundive可以用作名词:你需要良好的习惯,比如“礼貌”。

在我正在开发的应用程序中,我需要找到所有用作名词的组件。我尝试了各种组块工具(NLTK等),但它们似乎只识别名词和名词短语,而不是其他任何东西。

这些旧车也不承认补充是NP的一部分,例如,“她活着的事实”不会是一个单块,即使它们在这句话中一起充当名词。

有没有可以像这样做的工具?

感谢。

3 个答案:

答案 0 :(得分:0)

我担心这样的控制需要一个合适的统计解析器;例如,Stanford Parser为您的样本句子提供以下树:

(ROOT
  (NP (DT the) (NN fact)
    (SBAR (IN that)
      (S
        (NP (PRP she))
        (VP (VBZ is)
          (ADJP (JJ alive)))))
    (. .)))

认识到整个细分是NP。对于gerundive的情况:

(ROOT
  (S
    (VP (VB thank)
      (NP (PRP you))
      (PP (IN for)
        (NP (NN listening))))
    (. .)))

斯坦福大学解析器提供了一个API,你可以在你的应用程序中使用。

答案 1 :(得分:0)

由于SyntaxNet生成依赖解析树,因此您需要编写一些启发式方法来获取此类信息。选区解析器可以更直接地为您提供此信息,但缺少有关节点在树中扮演的角色的信息(例如,您不会知道NP是动词的主语还是直接对象)。

答案 2 :(得分:0)

@Roy我同意Slav,因为我遇到了" open" 这个词的问题。在我的句子中" open" 是必要的动词,但是syntaxnet将其标记为形容词。我不是一个计算机科学,我写了一个非常简单的基本算法来解决你可以看到它的问题here