рандомных вопросов и вручную найти лимит схожести, где всё что ниже - не подходит ни к одной теме?
Я бы сделал так: 1. взять то, что уже размечено по категориям, (хотя бы 1-2 примера) - это будет основа выборки. 2. Используя LaBSE, USE или сберовскую sberbank-ai/sbert_large_mt_nlu_ru, сделать эмбеддинги размеченной выборки и неразмеченной. Посмотреть по косинусному сходству, отсечка для семантически схожих фраз должна быть выше 0,75 - 0,80. Ну, нужно вручную посмотреть, какая модель лучше работает, и какую отсечку лучше выбрать. Всю эту процедуру можно выполнить в несколько строк кода с помощью библиотечки sentence-transformers. 3. Итак, наша выборка станет уже побольше. Далее - можно немного расширить её аугментацией - например, методом back-translation, или выбрать что-то из библиотечки nlpaug (не особо с ней усердствуйте, а то переобучение потом будет). Ну, если есть возможность, можно заставить поработать ruGPT. 4. И теперь, собственно, обучение классификатора. Для очень маленьких выборок я бы порекомендовал сравнительно новую библиотечку Тай-Чи - https://github.com/salesforce/TaiChi Она, помимо классификации на категории, будет показывать вам ещё и так называемый out-of-domain - те тексты, которые не подходят ни к какой категории. Ну, тоже поэкспериментировать придётся, например, взять неаугментированную выборку, потом - аугментированную (или несколько, по-разному аугментированных), посмотреть, где лучше результат. Тай-Чи тоже легко и без багов запускается - буквально в 3 сточки кода.
Огонь пожар. Пошла гуглить, спасибо 👍
Обсуждают сегодня