0

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

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

这些 clunkers 也不将补语识别为 NP 的一部分,例如,“the fact that she's alive” 不会是一个单独的块,即使它们在这句话中一起充当名词。

有什么工具可以做这样的伎俩吗?

谢谢。

4

3 回答 3

0

恐怕拥有这样的控制将需要一个适当的统计解析器;例如,Stanford Parser 为您的示例句子提供了以下树:

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

认识到整个段是一个NP。对于动名词的情况:

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

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

于 2016-08-05T17:43:48.267 回答
0

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

于 2016-08-13T08:52:38.920 回答
0

@Roy我同意斯拉夫的观点,因为我对“开放”这个词有疑问。在我的句子中,“open”是命令式动词,但 syntaxnet 将其标记为形容词。我不是计算机科学,我写了一个非常简单和基本的算法来解决这个问题,你可以在这里看到

于 2016-08-16T20:23:50.557 回答