【发布时间】:2016-09-21 16:31:39
【问题描述】:
我找到了强大的 RegexNER,它是来自 Stanford CoreNLP 的超集 TokensRegex。
有一些规则应该会给我很好的结果,比如带有头衔的人的模式:
“g. Meho Mehic”或“gdin. N. Neko”(g. 和 gdin. 在波斯尼亚语中是 mr. 的缩写)。
我在使用现有的分词器时遇到了一些问题。它将一些字符串拆分为两个标记,而将一些字符串拆分为一个,例如标记“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”。)
- 是否有任何我错过的设置可以帮助我解决这个问题?
【问题讨论】:
标签: token stanford-nlp