Я нашел мощный RegexNER и это суперсет TokensRegex от Stanford CoreNLP.
Есть несколько правил, которые должны дать мне прекрасные результаты, как рисунок для лиц с названиями:
«г. Мехо Мехик» или «gdin. N. Neko» (g. И gdin. Являются аббревиатурами на боснийском языке для mr.).Стэнфордский CoreNLP слияния токенов
У меня возникли проблемы с существующим токенизатором. Он разбивает несколько строк на два токена, а некоторые листья - как один, например, токен «g». остается как слово <word>g.</word>
и токен "gdin." разделяется на 2 жетона: <word>gdin</word>
и <word>.</word>
.
Это вызывает проблемы с моим регулярным выражением, мне приходится иметь дело с одним-токенов и мульти-токенов случаях (обратите внимание на два «может быть-точка» с), RegexNER пример:
(/g\.?|gdin\.?/ /\./? ([{ word:/[A-Z][a-z]*\.?/ }]+)) PERSON
Кроме того, это вызывает другая проблема, с расщеплением предложения, некоторые предложения не хорошо распознаются, поэтому regex терпит неудачу ... Например, когда предложение содержит «gdin». он разделит его на два, так что точка закончится (несуществующим) предложением. Мне удалось обойти это с ssplit.isOneSentence = true
.
Вопросы:
- Должен ли я сделать свой Tokenizer, и как? (для объединения некоторых токенов типа «gdin.»)
- Есть ли какие-либо настройки, которые я пропустил, что могло бы помочь мне в этом?
Спасибо, я подумал об этом сам вчера. Было бы неплохо, если бы токенизатор мог быть параметризован некоторыми из этих вещей ...: D –
Я сделал itttttttt, спасибо еще раз! : D В 'build.xml' есть задача, называемая' flexeverything'. Мне просто нужно было заменить старую банку этой новой. –
Также я не могу получить ответ на этот важный вопрос о corenlp. Http://stackoverflow.com/questions/39688652/german-corenlp-model-defaulting-to-english-models – stackit