除了名词和名词短语外,英语中还有一些其他的结构也可以用作名词。例如,动名词可以用作名词:您需要良好的习惯,例如“彬彬有礼”。
在我正在开发的应用程序中,我需要找到所有用作名词的组件。我尝试了各种分块工具(NLTK 等),但它们似乎都只能识别名词和名词短语,而不能识别其他任何东西。
这些 clunkers 也不将补语识别为 NP 的一部分,例如,“the fact that she's alive” 不会是一个单独的块,即使它们在这句话中一起充当名词。
有什么工具可以做这样的伎俩吗?
谢谢。
除了名词和名词短语外,英语中还有一些其他的结构也可以用作名词。例如,动名词可以用作名词:您需要良好的习惯,例如“彬彬有礼”。
在我正在开发的应用程序中,我需要找到所有用作名词的组件。我尝试了各种分块工具(NLTK 等),但它们似乎都只能识别名词和名词短语,而不能识别其他任何东西。
这些 clunkers 也不将补语识别为 NP 的一部分,例如,“the fact that she's alive” 不会是一个单独的块,即使它们在这句话中一起充当名词。
有什么工具可以做这样的伎俩吗?
谢谢。
恐怕拥有这样的控制将需要一个适当的统计解析器;例如,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,您可以在您的应用程序中使用。
由于 SyntaxNet 生成依赖解析树,因此您需要编写一些启发式方法来获取此类信息。选区解析器可以更直接地为您提供此信息,但会缺少有关节点在树中所扮演角色的信息(例如,您不知道 NP 是动词的主语还是直接宾语)。
@Roy我同意斯拉夫的观点,因为我对“开放”这个词有疑问。在我的句子中,“open”是命令式动词,但 syntaxnet 将其标记为形容词。我不是计算机科学,我写了一个非常简单和基本的算法来解决这个问题,你可以在这里看到