我正在尝试根据词典检测人名:
字典开始
David Alberto
David
Alberto
字典结束
输入开始
David Alberto
输入结束
我想将 David Alberto 作为人名不是 David 或 Alberto 。 我正在使用以下规则。
WORDLIST FirstNameList = 'en/ruta/dictionaries/FirstNames.txt';
DocumentAnnotation{-> MARKFAST(FirstNames, FirstNameList,true)};
FirstNames{PARTOF(FirstNames)->UNMARK(FirstNames)};
但是,由于 David Alberto 也是 David Alberto 的一部分,所以它也会得到unmark。知道如何处理这种情况。
答案 0 :(得分:1)
条件PARTOFNEQ
(部分,不等于)会考虑匹配的注释,只有在有另一个注释时才会满足。
FirstNames{PARTOFNEQ(FirstNames)->UNMARK(FirstNames)};
然而,这种情况是当前实现中最慢的条件之一(< = 2.6.0)。我通常使用类似的东西:
FirstNames->{@FirstNames{-> UNMARK(FirstNames)} ANY; ANY @FirstNames{-> UNMARK(FirstNames)};};
免责声明:我是UIMA Ruta的开发者