Поисковая система (проект)
Материал из Wiki - Факультет компьютерных наук
Ментор | Фролов Дмитрий |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Проект можно развивать на летней практике | |
Внимание! Данный проект находится в архиве и реализован не будет. |
Что это за проект?
Одной из важнейших задач, возникающих при обработке естественного языка, является работа с большими множествами (коллекциями) текстовых документов, в частности, проблема поиска документов по запросу. Программы и программные комплексы, позволяющие решать эту задачу, называются поисковыми системами. Главными характеристиками качества поисковой системы является соответствие извлеченных документов исходному запросу и время выполнения запроса. Итогом работы над проектом должна быть программа, производящая извлечение релевантных запросу документов из коллекции.
Чему вы научитесь?
- Основные понятия из теории поисковых систем, основные алгоритмы поиска, методы обработки документов
- Базовые знания Unix Shell
- Работа с нереляционными базами данных
- Работа с системой управления версиями git
Какие начальные требования?
- Основы языка программирования Python
Какие будут использоваться технологии?
- Python 2.7
- MyStem, PyMorphy, NLTK
- Ubuntu Linux/OpenSUSE/FreeBSD, GNU Emacs или Vim - на выбор
- git, github/bitbucket
- MongoDB
Темы вводных занятий
- Общие понятия теории поисковых систем. Поисковые движки. Коллекции документов. Меры близости. Качество поиска.
- Общие методы разработки с использованием систем управления версиями.
- Нереляционные базы данных, преимущества, недостатки, особенности использования
Направления развития
- Реализация системы в виде: база данных + сервер + веб-интерфейс
- Модификация индекса в целью снижения временной сложности поиска
- Предобработка коллекции документов и поисковых запросов для возможности выполнения нечеткого поиска
Критерии оценки
- 4-5 - Система, выполняющая предобработку коллекции, строящая поисковый индекс, позволяющая производить поиск с простейшим синтаксисом запросов: слова, словосочетания, одновременная встреча слов из запроса в документе, хотя бы одно из слов, указанных в запросе. Найденные документы должны выдаваться системой в порядке убывания релевантности. Система должна быть оформлена в виде консольного приложения.
- 6-7 - Система, реализующая функции, перечисленные в Пункте (1), и, кроме того, позволяющая производить поиск вне зависимости от словоформ в запросе и в документах.
- 8-10 - Система, реализующая функции, перечисленные в Пункте (2), и, кроме того, позволяющая выполнять нечеткий поиск (например, для запросов с ошибками). Для поисковой системы необходимо произвести ее анализ на фиксированной коллекции, рассчитать метрики эффективности качества поиска.