我发现来自Stanford CoreNLP的功能强大的RegexNER及其超集TokensRegex。
有一些规则应该给我很好的结果,例如标题为PERSON的模式:
“g。Meho Mehic”或“gdin。N. Neko”(g。和gdin。是波斯尼亚语中的缩写, )。Stanford CoreNLP合并令牌
我在使用现有的标记器时遇到了一些麻烦。它将一些字符串拆分为两个令牌,其中一些离开为一个字符,例如令牌“g”。保留为单词<word>g.</word>
和令牌“gdin”。分为2个标记:<word>gdin</word>
和<word>.</word>
。
这会导致麻烦我正则表达式,我必须处理一个令牌和多令牌的情况下(注意两个“可能点”上),RegexNER例如:
(/g\.?|gdin\.?/ /\./? ([{ word:/[A-Z][a-z]*\.?/ }]+)) PERSON
而且,这会导致另一个问题,句子拆分,一些句子不被很好地识别,所以正则表达式失败......例如,当一个句子包含“gdin”时。它会将它分成两部分,因此一个点将结束(不存在的)句子。我设法绕过ssplit.isOneSentence = true
现在。
问题:
- 我必须使自己的标记生成器,以及如何? (合并一些象“gdin”的令牌)
- 有没有我错过的设置可以帮助我?
谢谢,我昨天就想到了这个。这将是很好,如果tokenizer可以用这些东西参数化...:D –
我已经做了itttttttt,再次感谢! :D在'build.xml'中有一个叫'flexeverything'的任务。我只需要用这个新的替换旧的罐子。 –
另外我无法得到这个重要的corenlp问题的答案http://stackoverflow.com/questions/39688652/german-corenlp-model-defaulting-to-english-models – stackit