Поисковая система (проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Ментор Фролов Дмитрий
Учебный семестр Весна 2015
Учебный курс 1-й курс
Проект можно развивать на летней практике


Внимание! Данный проект находится в архиве и реализован не будет.

Что это за проект?

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

Чему вы научитесь?

  1. Основные понятия из теории поисковых систем, основные алгоритмы поиска, методы обработки документов
  2. Базовые знания Unix Shell
  3. Работа с нереляционными базами данных
  4. Работа с системой управления версиями git

Какие начальные требования?

  1. Основы языка программирования Python

Какие будут использоваться технологии?

  1. Python 2.7
  2. MyStem, PyMorphy, NLTK
  3. Ubuntu Linux/OpenSUSE/FreeBSD, GNU Emacs или Vim - на выбор
  4. git, github/bitbucket
  5. MongoDB

Темы вводных занятий

  1. Общие понятия теории поисковых систем. Поисковые движки. Коллекции документов. Меры близости. Качество поиска.
  2. Общие методы разработки с использованием систем управления версиями.
  3. Нереляционные базы данных, преимущества, недостатки, особенности использования

Направления развития

  1. Реализация системы в виде: база данных + сервер + веб-интерфейс
  2. Модификация индекса в целью снижения временной сложности поиска
  3. Предобработка коллекции документов и поисковых запросов для возможности выполнения нечеткого поиска

Критерии оценки

  1. 4-5 - Система, выполняющая предобработку коллекции, строящая поисковый индекс, позволяющая производить поиск с простейшим синтаксисом запросов: слова, словосочетания, одновременная встреча слов из запроса в документе, хотя бы одно из слов, указанных в запросе. Найденные документы должны выдаваться системой в порядке убывания релевантности. Система должна быть оформлена в виде консольного приложения.
  2. 6-7 - Система, реализующая функции, перечисленные в Пункте (1), и, кроме того, позволяющая производить поиск вне зависимости от словоформ в запросе и в документах.
  3. 8-10 - Система, реализующая функции, перечисленные в Пункте (2), и, кроме того, позволяющая выполнять нечеткий поиск (например, для запросов с ошибками). Для поисковой системы необходимо произвести ее анализ на фиксированной коллекции, рассчитать метрики эффективности качества поиска.