рассмотреть вариант и применимость сжатия нер на стадии извлечения нер 2-мя моделями, путем поглощения более коротких неры, более длинными, полностью включаищими в себя короткие (например stanza: "МИД", "РФ", а natasha "МИД РФ", в итоге останется только "МИД РФ"); не забыть, что мы поглотим неверно извлеченными нер с пунктуацией по типу МИД" или "МИД." более короткие, так что этот способ немного маргинальный, если применять его "в лоб";
для нер препросчитывать эмбеддинг-вектора, сопоставлять на основе близости;
Применимо/задачи:
[x] для всех уже существующих в базе ner (т.е. необходимо провести анализ близости, сжатие найденных дублей, пересмотр имен по умолчанию для данных дублей и для самых популярных нер)
[x] в алгоритме entity linking ner-pipeline => 1) в таблицу синонимов добавлено доп. поле name_for_match (для каждого имени сущности, убираются все знаки препинания, кроме -, каждое слово по отдельности приводится в нормальную форму через pymorphy), дополнительный матчинг производится по данному полю, что существенно улучшает результаты ошибок моделей; 2) теперь список извлеченых ner строиться только на основе stanza, при этом natasha используется для нормализации извлеченных ner (т.к. только natasha позволяет нормализовать фразы из нескольких слов в "Общество защиты животных", а не "Общество защита животные"). Т.к. natasha регулярно допускает ошибки при подобной нормализации, это является открытой задачей, которую необходимо было бы решить при дальнейшем развитии проекта (т.е. нужен модуль/модель, которые это будут делать лучше, возможным вариантом решения является логика поверх pymorphy2, который умеет ставить слова в заданную форму падежа, склонения и т.д., но возможно все сложнее, чем предполагается и простой логикой не обойтись)
[x] в процессе обработки запроса от пользователя для сопоставления введенного в поле ввода ner
Возможные варианты:
Применимо/задачи: