有没有办法使用OpenNLP获得句子的主语?

2022-09-04 20:01:06

有没有办法使用OpenNLP获得句子的主语?我试图确定用户句子中最重要的部分。通常,用户将向我们的“引擎”提交句子,我们想知道该句子的核心主题是什么。

目前,我们正在使用openNlp来:

  1. 将句子分块
  2. 识别句子的名词短语、动词等
  3. 识别句子的所有“主题”
  4. (尚未完成!确定句子的“核心主题”

如果您有任何好主意,请告诉我。


答案 1

依赖关系解析器

如果你对提取语法关系感兴趣,比如哪个单词或短语是句子的主语,你应该真正使用依赖解析器。虽然OpenNLP确实支持短语结构解析,但我认为它还没有进行依赖关系解析。

开源软件

用 Java 编写的支持依赖关系解析的包包括:

其中,斯坦福解析器是最准确的。然而,MaltParser的某些配置可能非常快(Cer et al. 2010)。


答案 2

对于语法主题,您需要依赖树中的配置信息。如果解析看起来像(TOP(S(NP ----)(VP ----))),那么您可以将NP作为主题;通常,尽管并非总是如此,但情况会是这样。但是,只有一些句子具有此配置;人们可以很容易地想象出主体不在那个位置的结构 - 例如被动结构。

不过,使用MaltParser可能会更好。


推荐