Косинусное сходство между запросом и документами - PullRequest
0 голосов
/ 09 ноября 2018

Так что я борюсь за концепцию поиска информации.Это касается косинусного сходства документов, заданных запросом.

Я манипулирую около 1000 файлов, чтобы сгенерировать матрицу частотных терминов с помощью [docID x term].

У меня сгенерирована эта матрицано я нахожусь в тупике, что делать с запросом и генерировать из него косинусное сходство.

Мне дан запрос с терминами, которые я должен анализировать в корпусе, что я и сделал.И сгенерировал вектор, в котором все docID содержат хотя бы одно из слов.

Итак, я должен вычислить все эти векторы строк в терминах косинусного сходства?

Пример:

Запрос представляет собой список с расположением столбца и термином в матрице частотных терминов

OccurenceVector - это массив, в котором все документы, содержащие слова в запросе

Query = [[2796, 'crystalline'], [6714, 'lens'], [5921, 'including'], [5566, 'humans']]
OccurrenceVector = array([ 13,  14,  15,  72,  79, 138, 142, 164, 165, 166, 167, 168, 169,
   170, 171, 172, 180, 181, 182, 183, 184, 185, 186, 211, 212, 213,
   499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
   512, 513])

Мой мыслительный процесс выглядит следующим образом:

  1. Термин Частотная матрица [docID x термина] (строка x столбец)

  2. Получитезапрос с терминами против корпуса

  3. Извлечение вектора со всеми docID, с которыми встречаются эти термины

  4. Извлечение каждой строки, соответствующей этому извлеченному docID

  5. Вычислить косинусное сходство между всеми найденными строками?

Является ли это правильным способом вычисления косинусного подобия с многомерным массивом, подобным этому?

1 Ответ

0 голосов
/ 14 ноября 2018

Предлагаю вам взглянуть на 6-ю главу IR Book (особенно на 6.3).

Вы также должны рассматривать запрос как документ. Создайте вектор для вашего запроса, как вы строите его для своих документов. Затем, чтобы получить лучшие результаты, вам нужно вычислить сходство для всех векторов документа для вашего запроса.

Помните, что вы также можете выбрать вектор документа и вычислить его сходство со всеми другими документами в вашем корпусе. Таким образом, вы можете вычислить сходство между вашими документами.

Надеюсь, это поможет.

Приветствия

...