有没有办法使用OpenNLP获得句子的主题?
有没有办法使用OpenNLP获得句子的主题? 我试图找出用户句子中最重要的部分。 通常,用户将向我们的“引擎”提交句子,并且我们想要确切知道该句子的核心主题是什么。
目前我们使用openNlp来:
- 大块的句子
- 识别句子的名词短语,动词等
- 确定句子的所有“主题”
- (没有完成!)确定句子的“核心主题”
如果您有任何好主意,请告诉我。
依赖性解析器
如果您对提取语法关系感兴趣,例如单词或短语是句子的主语,那么您应该使用依赖解析器 。 虽然OpenNLP确实支持短语结构解析,但我认为它还没有进行依赖解析。
开源软件
用Java编写的支持依赖解析的包包括:
- MaltParser
- MSTParser
- Stanford Parser ( 演示 ,请参阅类型依赖项部分)
- RELEX
其中,斯坦福分析器是最准确的。 但是,MaltParser的某些配置可能非常快( Cer et al.2010)。
对于语法主题,您需要依赖树中的配置信息。 如果解析看起来像(TOP(S(NP —-)(VP —-)))那么你可以把NP作为主语; 通常,虽然根本不是,但事实并非如此。 但是只有一些句子会有这种配置; 人们可以很容易地想象出那些不在那个位置的主体的结构 – 例如被动结构。
你最好还是使用MaltParser。