Nlp 忽略自我的一部分

Nlp 忽略自我的一部分,nlp,uima,ruta,Nlp,Uima,Ruta,我正在尝试根据字典检测人名: 字典开始 David Alberto David Alberto David Alberto 字典结尾 输入开始 David Alberto David Alberto David Alberto 输入端 我想把大卫·阿尔贝托指定为人名,而不是大卫或阿尔贝托。 我在使用下面的规则 WORDLIST FirstNameList = 'en/ruta/dictionaries/FirstNames.txt'; DocumentAnnotation

我正在尝试根据字典检测人名:

字典开始

David Alberto 

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)};

但是由于大卫·阿尔贝托也是大卫·阿尔贝托的一部分,所以它也变得不明显了。任何关于如何处理这种情况的想法。

条件
PARTOFNEQ
(part of,not equal)考虑匹配的注释,并且仅当存在另一个注释时才满足

FirstNames{PARTOFNEQ(FirstNames)->UNMARK(FirstNames)};

然而,这种情况是目前实施中最慢的情况之一(除此之外,我还想将Lipi Mittal检测为名字。在Dictionary中我有Lipi Mittal,在input中我有Lipi Mittal和LipiMittal,但它也将LipiMittal注释为名字。我使用保留空间逻辑解决了这一问题。但这两个规则不能同时工作。对空格敏感的字典查找可能会变得非常烦人。)例如,只允许一个空格,还是两个空格,或者一个中断?哪条规则不起作用?您可以使用类似
FirstNames{CONTAINS(CW,2100),-CONTAINS(space)->UNMARK(FirstNames)};
的内容对注释进行后处理,并使用适当的筛选设置