我正在使用 Apache 的 OpenNLP 编写命令解析器。问题在于 OpenNLP 将某些命令视为名词短语。例如,如果我解析诸如“开门”之类的内容,OpenNLP 会给我 (NP (JJ open) (NN door))
。换句话说,它将短语视为“一扇敞开的门”而不是“打开门”。我希望它解析为 (VP (VB open) (NP (NN door)))
。如果我解析“open the door”,它会产生一个 VP,但我不能指望使用限定词的人。
我目前正在尝试弄清楚如何对错误的解析树执行手术,但严重缺乏 API 文档。