RegexNERAnnotator似乎无法识别撇号.
Properties properties = new Properties();
properties.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,entitymentions,regexner,tokensregex");
properties.put("regexner.mapping", "regexfile.txt");
properties.put("regexner.ignorecase", "true");
StanfordCoreNLP pipeline = new StanfordCoreNLP(properties);在regexfile.txt中,
Bachelor of (Arts|Laws|Science|Engineering) DEGREE
Lalor LOCATION PERSON
Labor ORGANIZATION它能识别出文学学士学位。不幸的是,在我把它改成,
Bachelor's of (Arts|Laws|Science|Engineering) DEGREE
Lalor LOCATION PERSON
Labor ORGANIZATION它将无法确定文学士学位。
任何帮助都将不胜感激。提前谢谢。:)
发布于 2018-03-03 15:45:49
RegexNERAnnotator需要令牌器才能工作。
考虑一个包含“文学士”字样的句子。标记化过程将把单身汉与撇号分开,创建两个不同的标记。
在选项卡分隔的文件regexfile.txt中,空格表示一个新的令牌。这意味着您的自定义规则将只匹配一个标记,这正是“单身汉”这个词。这将不会发生,因为令牌。
编写规则,您想要匹配的每个令牌都用空格分隔,一切都会正常工作。
Bachelor 's of (Arts|Laws|Science|Engineering) DEGREE
Lil ' Jon RAPPERhttps://stackoverflow.com/questions/48138642
复制相似问题