Господа, кто может подсказать по предобработке текстов для использования предобученного трансформера universal sentence encoder 3. Задача docs similarity. Тексты длинные по 10 тыс слов каждый.
Вопросы:
1. Стоп слова актуально убирать?
2. Предлоги убирать?
3. Лемматизация?
4. Разбивать на предложения и векторизовать по отдельности, а потом усреднять вектора в пределах одного текста? Или разбивать текст на 128 слов (количество токенов на вход модели) и усреднять по 128?
5. Выделять из текста ключевые фразы с помощью модели keyBERT и их использовать вместо всего текста, векторизуя каждую фразу по отдельности, а потом усреднять для всего текста.
6. Определять предварительно тематику текста и осуществлять поиск только по текстам с такой же тематикой.
Что из этого актуально в общем случае?
первые три пункта не кажутся мне релевантными в контексте использования предобученного трасформера . 4. можно попробовать, но на длинных текстах особенно ожидать чуда от сентенс энкодера я бы не стал . (может лучше обычный берт? можно сделать какой-то пулинг, т.е. чанки по 768 , можно даже в overlap если есть длинные связи и потом это либо среднее, либо максимум и потом можно использовать уже это в сиамскую лстм. ) можно быстро это проверить, получить вектора от документов и посмотреть knn, umap. 5. можно попробовать, но у меня есть сомнения. 6 в этом больше смысла, по крайней мере это можно использовать как доп фичу. аутпут от LDA , или даже контекстуальные топики на базе берта. 7. если документы прям совсем длинные, но связи несильно интересны, можно попробовать суммаризировать. 8. в продолжении 7 , сделать VAE на берте и использовать репрезентацию документа в виде пониженной размерности. 9. когда будет нащупан метод long_doc2vec - faiss и кластеризация p.s. можно попробовать еще longformer , я его правда один раз пробовал и на моей небольшой задаче он не сильно помог, но была возня с загрузкой не стандартной модели. не знаю как сейчас