Ответ 1
Это, пожалуй, не совсем ответ, чтобы быть довольным, но я думаю, что ответ заключается в том, что в любом месте нет такой функциональности, хотя вы можете самостоятельно ее кодировать без особых трудностей. Предоставление конспекта того, как я буду делать это с CoreNLP:
-
Все еще запускается coref. Это скажет вам, что "человек" и "человек" являются ключевыми, и поэтому вы можете заменить второе местоимение.
-
Запустите аннотатор
gender
от CoreNLP. Это плохо документированный и даже более плохо рекламируемый аннотатор, который пытается привязать пол к токенам в предложении. -
Как-то вычислить множественное число. В большинстве случаев вы можете использовать тег части речи: множественные существительные получают теги NNS или NNPS, но есть некоторые сложности, поэтому вы можете также рассмотреть (1) существование союзов в антецеденте; (2) лемма слова отличается от его текста; (3) особенно в сочетании с 2, слово, заканчивающееся на 's' или 'es' - это может различать лемматизации, которые вытесняют множественные числа по сравнению с лемматизацией, которые вытесняют времена и т.д.
-
Этого достаточно, чтобы выяснить правильное местоимение. Теперь это просто вопрос об измельчении предложения и его повторном объединении. Это немного больно, если вы делаете это в CoreNLP - код просто не настроен для изменения текста предложения, но в худшем случае вы всегда можете просто повторно аннотировать новую поверхностную форму.
Надеюсь, что это поможет немного!