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

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

目前我们使用openNlp来:

  1. 大块的句子
  2. 识别句子的名词短语,动词等
  3. 确定句子的所有“主题”
  4. (没有完成!)确定句子的“核心主题”

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

依赖性解析器

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

开源软件

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

  • MaltParser
  • MSTParser
  • Stanford Parser ( 演示 ,请参阅类型依赖项部分)
  • RELEX

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

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

你最好还是使用MaltParser。