Я пытаюсь вычислить сходство между двумя документами, которые состоят из более чем тысячи предложений.
Базовая линия будет рассчитывать косинусное сходство, используя BOW.
Однако я хочу захватить большесемантическое различие между документами.
Следовательно, я построил встраивание слов и вычислил сходство документов путем генерации векторов документов путем простого усреднения всех векторов слов в каждом из документов и измерения косинусного сходства между этими векторами документов.
Однако, поскольку размер каждого входного документа довольно велик, результаты, которые я получаю при использовании описанного выше метода, очень похожи на простое косинусное сходство.
У меня два вопроса,
Q1.Я обнаружил, что модуль gensim предлагает мягкое косинусное сходство.Но мне трудно понять разницу с методами, которые я использовал выше, и я думаю, что это может быть не механизм для вычисления сходства между миллионами пар документов.
Q2.Я обнаружил, что Doc2Vec от gensim будет более подходящим для моих целей.Но я понял, что для обучения Doc2Vec требуется больше оперативной памяти, чем у меня (32 ГБ) (размер всех моих документов составляет около 100 ГБ).Будет ли какой-нибудь способ, которым я обучу модель с небольшой частью (например, 20 ГБ) всего корпуса, и использую эту модель для вычисления попарных сходств всего корпуса?Если да, то какой будет желательный размер набора поездов, и есть ли какое-нибудь руководство, которому я могу следовать?