У меня есть два набора коротких сообщений, я хочу вычислить сходство между этими двумя наборами и определить, говорят ли они об одной и той же подтеме, на основе их семантического сходства. Я знаю, как использовать попарное сходство, моя проблема. Я хочу вычислить общее сходство между всеми предложениями в двух наборах, а не для двух предложений. Есть ли способ использовать tf-idf или word2vec / doc2vec с косинусом сходства для расчета общей оценки?
вычисление семантического сходства между наборами предложений
comment
Похоже, вы знаете ответ! Возьмите среднее количество вложений слов для всех предложений в каждом наборе, а затем вычислите косинусное сходство между двумя результирующими векторами?
- person ongenz   schedule 02.08.2019
comment
@ongenz это возможно для модели tf-idf?
- person user_88   schedule 02.08.2019
Ответы (2)
По сути, я взял векторы каждого слова в каждом предложении.
Затем возьмите среднее значение двух векторов и выполните косинусное сходство.
Конечно, прежде чем вы это сделаете, вам понадобится обученная модель word2vec. Подобие doc2vec делает то же самое, поскольку внутренне сохраняет модель word2vec.
Итак, у вас есть два варианта: обучить doc2vec и использовать его сборку по подобию или обучить word2vec и выполнить работу самостоятельно.
person
Borislav Stoilov
schedule
02.08.2019
Могу ли я взять среднее значение попарной матрицы, полученной в результате вычисления косинусного сходства?
- person user_88; 02.08.2019
Если я вас правильно понимаю, да, можете. Просто преобразуйте каждое предложение в векторы с помощью Word2Vec и передайте полученный массив векторов в модель Tf-idf. Я использую gensim, см. Этот radimrehurek.com/gensim/tut2.html
- person Borislav Stoilov; 02.08.2019
Infersent помогает найти семантическое сходство
person
sree lakshmi
schedule
17.06.2021