2017-04-13 101 views
2
的自體部分

我試圖根據字典來檢測人的名字:忽略自我

字典開始

David Alberto 

David 

Alberto 

詞典結束

輸入起始

David Alberto 

輸入端

我想anotate 大衛·阿爾貝託作爲人名不大衛阿爾貝託。 我正在使用以下規則。

WORDLIST FirstNameList = 'en/ruta/dictionaries/FirstNames.txt'; 
DocumentAnnotation{-> MARKFAST(FirstNames, FirstNameList,true)}; 
FirstNames{PARTOF(FirstNames)->UNMARK(FirstNames)}; 

但作爲大衛·阿爾貝託大衛·阿爾貝託的一部分,所以它也得取消。任何想法如何處理這種情況。

回答

1

條件PARTOFNEQ(部分,不等於)考慮匹配的註釋,並且只有在存在另一個註釋的情況下才能滿足。

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

但是,這種情況是當前實施中最慢的一種情況(< = 2.6.0)。我通常使用類似:

FirstNames->{@FirstNames{-> UNMARK(FirstNames)} ANY; ANY @FirstNames{-> UNMARK(FirstNames)};}; 

免責聲明:我的UIMA魯塔

+0

隨着這個我也想檢測梨皮米塔爾作爲名開發人員。 而在字典中我有Lipi米塔爾 而在輸入我有Lipi米塔爾和LipiMittal 但它也註釋LipiMittal作爲名字。 我使用保留空間邏輯解決了這個問題..但是這兩個規則在一段時間都無法正常工作。 –

+0

空白敏感字典查找會變得非常煩人,例如,只允許一個空格或者兩個空格,或者一個空格?哪一條規則不起作用?是否讓空間可見?你可以使用'FirstNames {CONTAINS(CW,2,100),-CONTAINS(SPACE) - > UNMARK(FirstNames)};''來處理註釋;'用適當的過濾設置 –