识别同质组中的孤立元素



我正在Python中执行文本分割任务。我正在写的文本应该分为4个部分(根据他们谈论的内容(,我们通常按这个顺序称它们为A、B、C和D。这些文本分为相对较短的文本段。章节是唯一的(每个文本只有一个(和同质的(从不拆分,这有点重复前一点(。

我有一个神经网络,可以以90%的精度识别线段所属的部分,我对此感到高兴。然而,当涉及到最后10%时,它们往往是一个被错误标记的孤立片段,被其他被正确标记的元素包围。

我可以通过如下的元组列表来可视化:

[(segment1, A), (segment2, A), (segment3, B), (segment4, A), (segment5, A), (segment6, C), (segment6, C)]

在这种情况下,分段3应该标记为A,而不是B,因为文档中的部分总是同质的。如何识别同质组,从而纠正孤立项目?

我目前的方法是说";如果前面的元素和后面的元素被标记为相同,但不是中间的元素,则校正中间的元素";但我相信有更好的方法可以做到这一点(也许可以使用不同的方式格式化我的数据?(。

然而,如果有两个孤立的itam彼此相邻,我该怎么办?

提前谢谢。

如果可以安全地假设单个异常值总是被两个正确标记的邻居包围,可以尝试使用这样的三元组(忽略第一个和最后一个元素,它们只是前置/附加的(:

def sort_by_label(items):
return sorted(items, key=lambda x: x[1])
[(unsorted[1][0], sort_by_label(unsorted)[1][1]) for unsorted in zip(segments, segments[1:], segments[2:])]

分段是元组的结果列表。

最新更新