Реализация Поисковой Системы С Ранжированием На Python (Часть 2)

В предыдущая часть Мы создали индекс, но по-прежнему не можем его запросить.

Об этом я расскажу в этой статье.



Выполнение индексных запросов

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

Я не буду вдаваться в подробности, поскольку это тривиально, но это следует сделать до выполнения запроса.

Примечание.

Во всех приведенных ниже примерах кода каждая функция будет использовать переменную с именем invertedIndex, которая была создана в предыдущей части статьи.

Чтобы полностью понять, что происходит ниже, вы можете увидеть окончательный результат на странице GitHub .

Сначала мы собираемся реализовать стандартные запросы.

Простой способ их реализации — разбить запрос на слова (токены, как описано выше), получить список для каждого слова, документы, в которых они встречаются, а затем объединить все эти списки.

Вот как мы будем запрашивать одно слово:

   

def one_word_query(self, word):

Теги: #Поисковые технологии #поисковая система #поисковые алгоритмы #Google #перевод #Поисковые технологии #python
Вместе с данным постом часто просматривают: