Баннер
Рейтинг@Mail.ru
Doogle Печать
Рейтинг пользователей: / 3
ХудшийЛучший 
Программы - C#
16.03.2008 18:35
Doogle

Эта программа (как и прошлая) была написана в качестве тестового задания при отправке резюме, на этот раз в ACS (бывший Корус). Туда меня тоже не взяли, но программа осталась. Вроде вполне рабочая. В качестве базы данных используется MS Access.

Текст задания:

Написать «пооисковик»
Написать приложение позволяющее заводить в программу данные, содержащие текст.
Данные должны храниться в базе данных.
Программа должна позволять просматривать документы, и осуществлять поиск выбранного слова или словосочетания в других документах, сортируя результат по релевантности. Имеется в виду, что сочетание «мама мыла раму» будет соответствовать искомой строке «мама мыла», а так же строке «мама раму», но уже с меньшим коэффициентом релевантности.
Остальные предположения по условиям задачи сделайте сами, но явно опишите их в комментариях к решению. Также в комментарии приведите свои соображения относительно эффективности и корректности вашего решения.

А вот мой комментарий к решению:

Реализованный «пооисковик» осуществляет поиск документов из БД по заданному запросу и обеспечивает сортировку результатов поиска по «релевантности».

Оценка релевантности документа запросу осуществляется по следующей схеме:

  • определение расстояний между всеми парами слов в запросе;
  • определение расстояний между теми же парами слов в документе;
  • определение совпадения расстояний в документе соответствующим расстояниям в запросе, а также определение близости расстояний, для случаев отсутствия полного совпадения.

В реализации «пооисковика» предусмотрена возможность менять алгоритм подсчёта релевантности посредством создания соответствующего класса, реализующего интерфейс IRelevancer.

скачать (72 КБ)