проблемы и инвертированный индекс частоты - PullRequest
0 голосов
/ 28 апреля 2020

Инвертированный индекс (https://en.wikipedia.org/wiki/Inverted_index) - это структура данных, которая предназначена для полнотекстового поиска. Из серии документов, содержащих текст, инвертированный указатель содержит различные слова, указывающие, в каких документах они появляются и как часто. Процесс создания инвертированного индекса из набора документов называется индексацией.

При наличии документов:

{d1: «Я видел кота на ковре», d2: «Я видел» собака на коврике ", d3:" Я видел, как кошка и крыса сидели на коврике "}

генерирует MapReduce инвертированный индекс, имеющий следующую структуру:

{'W1 ': [(docId1, numOccu1),…, (docIdN, numOccuN)],' W2 ': […],…} где w - разные слова, которые появляются (I, saw, ...), docId - документ идентификаторы (docId1, docId2, ...) и numOccu - это число раз, когда слово появляется в документе.

Вас просят написать функции карты в псевдокоде, а также уменьшить и описать результаты этих функций.

1 Ответ

0 голосов
/ 01 мая 2020

Если мы индексируем по (текст, слово в тексте), индекс с местоположением в тексте будет:

 I               (1, 1); (2,1); (3,1)
 saw             (1, 2); (2,2); (3,2)
 the             (1, 3); (1, 6); (2,3); (2,6); (3,3); (3,6); (3,10)
 cat             (1, 4); (3,4)
 on              (1, 5); (2,5); (3,9)
 mat             (1, 7); (2,7); (3,11)
 dog (2,4) 
 and  (3,5)
 rat (3,7)
 sat (3,8)

Слово «I» в документе 1 («Я видел кота на коврике») начинается со слова 1, поэтому есть запись (1, 1) и Слово «кошка» находится в документе 1 и 3 в позиции «4» соответственно (здесь позиция основана на слове). Индекс может иметь веса, частоты или другие показатели.

...