我已经编写了一个递归方法,该方法基于CoreNLP选区解析器的输出返回文档中所有成分/块的列表-很乐意分享我的代码。但是,一个问题是此列表中的项目可能有重叠。这是因为当我解析选区树时,很可能我们在通往孩子的同一条路径上有多个相同类型的标签(例如VP或NP)。例如,对于输入的句子:
我买了这本书是因为我对它有很好的评价。
块列表如下(这是我方法的输出,在这种情况下,我只列出了VP,NP和SBAR):
[['NP', 'I'],
['NP', 'the book'],
['NP', 'I'],
['NP', 'good reviews'],
['NP', 'it'],
['SBAR', 'because I read good reviews about it'],
['VP', 'bought the book because I read good reviews about it'],
['VP', 'read good reviews about it']]
如您所见,两个VP和SBAR之间存在重叠。
现在,我的问题/困惑是,我应该如何处理块之间的重叠?是否取决于我要在哪里使用这些块?我应该遵循独特的策略/规则来解决重叠问题吗?我不是在这里寻找代码,这就是为什么我现在还没有共享我的实际代码,但是我正在寻找我应该使用的算法(如果有的话)来解决重叠问题。