Поиск информации: как рассчитать tf-idf для нескольких условий поиска?

У меня есть корпус из следующих 4 документов:

‹1> Это первый документ.
‹2> А это второй документ.
‹3> Третий документ длиннее первого и второго.
‹4> Это последний документ.

И используйте очередь поиска «первый ИЛИ последний», как я должен вычислить tf-idf?

В настоящее время я использую это:

tf(x, D) = raw frequency of term x in document D / raw frequency of most occurring term in D

idf(x) = log(1 + total number of documents / number of documents containing x)

Итак, для очереди я получаю
<1> = (1 / 1) * log(1 + 4/3)
<3> = (1 / 2) * log(1 + 4/3)
<4> = (1 / 1) * log(1 + 4/3)

Это верно? Как вы делаете это правильно? Я рассчитываю значение для всех поисковых запросов отдельно, а затем добавляю? умножить?


person sollniss    schedule 03.11.2018    source источник


Ответы (1)


Предполагая, что вы имеете в виду "поисковый запрос", когда говорите "очередь поиска", и ваш запрос построен с помощью логического оператора ИЛИ, вы можете создать поток, который увеличивает частоты, когда встречается одно из условий. Это на самом деле то, что вы сделали выше.

Как вы сказали в своем посте, другим подходом будет вычисление сумм векторов терминов после вычисления их векторов по отдельности. Однако умножение не будет вариантом, который вы ищете.

Таким образом, в любом случае вы строите абстрактный термин из нескольких терминов, вычисляя таким образом.

person berkin    schedule 14.11.2018