如何概括特殊实体

时间:2018-04-20 22:00:06

标签: ruta

我们使用Apache UIMA Ruta来处理我们的文档。输入文档包含我们尝试识别并转换为注释层次结构的所有类型的模式。

我们将对结果做的一件事是用链接装饰输入文本。为此我们知道找到的注释的原始位置信息。

某些注释基于值列表。我们使用MarkTable来解决它们。

我们遇到的问题是输入文档可能包含不同类型的特殊实体。例如,文档还可以包含包含&   𝌆等实体的单词。这些也可以存在于将被查询到评估者的单词/句子中。

我们正在搜索一个选项,将所有类型的选项概括(转换)为普通的“纯文本”格式,这样我们就不必添加所有类型的选项,并将特殊实体添加到值列表中。 / p>

对文档进行预处理并将其全部替换(例如使用HTMLConverter引擎)AFAIK不是一个好选择,因为这也会改变位置信息。 &应与&匹配,但仍被视为尺寸5。

我尝试使用替换操作,这将为注释添加额外的“替换”属性。当我向注释类的getCoveredText添加一个拦截器(方面),并返回替换而不是真实文本(如果可用)时,匹配将成功。但是如果替换文本包含间隔符(结束位置仍然与原始文本/第一个RutBasic相等),则会产生问题。

我们如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我通过为内容构建预处理器和后处理器解决了这个问题。

在预处理器中,我将文本片段替换为其他文本。例如,&&将替换为普通&。在预处理时,我将每个替换细节存储在替换对象中,然后将其添加到有序列表中。替换对象包含原始文本和长度差异(&比单个&长4个字符。)

使用RUTA(和其他注释器)进行注释后,我将所有找到的注释值(文本)更正为原始值,并修复注释的位置信息(开始和结束),以便它们与原始内容匹配。我在列表中使用了此过程的替换详细信息。