Nlp 仅从字典中检测完整单词匹配

Nlp 仅从字典中检测完整单词匹配,nlp,uima,ruta,Nlp,Uima,Ruta,我试图从字典中检测城市名称,但如果有任何单词没有空格,也会被检测到。 例如: 字典开始 纽约 字典结尾 输入开始 纽约 纽约 输入端 我想说的是纽约不是纽约 我在使用下面的规则 WORDLIST USCitiesList = 'en/ruta/dictionaries/USCities.txt'; DocumentAnnotation{-> MARKFAST(USCity, USCitiesList,true)}; 下面的脚本将帮助您 PACKAGE uima.ruta.example

我试图从字典中检测城市名称,但如果有任何单词没有空格,也会被检测到。 例如:

字典开始

纽约

字典结尾

输入开始

纽约

纽约

输入端

我想说的是纽约不是纽约

我在使用下面的规则

WORDLIST USCitiesList = 'en/ruta/dictionaries/USCities.txt';
DocumentAnnotation{-> MARKFAST(USCity, USCitiesList,true)};
下面的脚本将帮助您

PACKAGE uima.ruta.example;
DECLARE USCity;
DECLARE NoSpaceUSCity;
WORDLIST USCitiesList = 'USCities.txt';

DocumentAnnotation{-> MARKFAST(USCity, USCitiesList,true)};

RETAINTYPE(SPACE);
DocumentAnnotation{-> MARKFAST(NoSpaceUSCity, USCitiesList,true)};
RETAINTYPE;

USCity{PARTOF(NoSpaceUSCity)->UNMARK(USCity)};

戈拉夫,其实这对我有用。我使用了您的示例输入。非常感谢,它现在起作用了。字典中有一个条目“YORK”,这就是我面临问题的原因。此脚本不适用于下面的用例(Kapolei是一个城市,nospace usaCity也是一个城市),因此它不会被检测为城市。如果您有任何问题,请告诉我我,我想注释:纽约,加利福尼亚作为USCity。给出的输入是:NewYork,NewYork,California Dictionary包含:NewYork,California,但使用上述大小写,我无法将California注释为USCity。在字典查找中考虑所有空格或不考虑任何空格。如果需要检查whitepces,则需要使用答案的规则,并将所有允许的空格排列的实体添加到字典中。但是,我建议使用一些级联方法,对字典查找的输出进行后处理,例如,使用两个字典,一个不区分空格,另一个带有异常。
PACKAGE uima.ruta.example;
DECLARE USCity;
DECLARE NoSpaceUSCity;
WORDLIST USCitiesList = 'USCities.txt';

DocumentAnnotation{-> MARKFAST(USCity, USCitiesList,true)};



RETAINTYPE(SPACE);
CW CW+{-> MARKFAST(NoSpaceUSCity, USCitiesList,true)};
RETAINTYPE;

USCity{PARTOF(NoSpaceUSCity)->UNMARK(USCity)};