Так что я борюсь за концепцию поиска информации.Это касается косинусного сходства документов, заданных запросом.
Я манипулирую около 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])
Мой мыслительный процесс выглядит следующим образом:
Термин Частотная матрица [docID x термина] (строка x столбец)
Получитезапрос с терминами против корпуса
Извлечение вектора со всеми docID, с которыми встречаются эти термины
Извлечение каждой строки, соответствующей этому извлеченному docID
Вычислить косинусное сходство между всеми найденными строками?
Является ли это правильным способом вычисления косинусного подобия с многомерным массивом, подобным этому?