Комментарии 4
Ой как сложно.
Может сделать так:
1) Разобрать грамматически
2) Найти все типы грамматического дерева, соответствующие именованным сущностям (adj+noun, noun, etc)
3) Используя словарь синонимов (Word2Vec, например), проверить по интересующим типам (по близости векторов)
В чем магия - с вероятностью 99% именованные сущности это подлежащее, определение (существительное+прилагательное), и т.д.
Плюсы - машинное обучение нужно только на этапе 2. Сама модель - просто образец Explainable Machine Learning.
И еще небольшой плюс:
Количество строк в каждом классе должно быть не менее 1000, иначе возможны проблемы с точностью распознавания из-за недостаточного количества данных.
Нет, при таком подходе хватит пары абзацев.
Неплохой вариант развития событий, просто я действовал отталкиваясь от того что у нас только NER (в случаях когда не нужно определять что существительное, что прилагательное и тп, а просто определять по парочке классов данные текста, будь тоназвания компаний или что-то еще)
Еще у вас появилась необходимость в 1000 примерах (чтобы найти контекстные синонимы Четверг-дата).
А для контекстных синонимов уже есть добрый десяток решений.
Ну и бонус - вы получаете сколько угодно классов именованных сущностей (без необходимости разметки).
Т.е. в общем пайплайн - находим все, что попадает под определение именованных сущностей, определяем класс.
а что делать, если сущности сложные (длинные), а скор на примере из статьи конфига дает лишь 50% (хотя на базовом дает 57-58). разметка произведена качественно.
NER для начинающих: Простое объяснение с примерами на SpaCy