Введение
Постановка задачи
Обзор существующих решений
Глава 1. Описание работы системы. Основные проблемы и решения.... 8
Глава 2. Алгоритмы сбора обучающей коллекции и обработки
документов.
2.1. Поиск по алгоритму Бойера - Мура.
2.2. Скачивание документов.
2.3. Декодирование символов из UTF8 в CP1251 и обратно………22
2.4. Выделение предложений………………………………………...23
2.5. Лемматизация…………………………………………………….27
2.6. Сравнение строк с помощью хэш таблиц………………………27
2.7. Кодирование документов………………………………………..31
2.8. Управление коллекцией………………………………………….32
2.9. Настройки
Глава 3. Алгоритмы подсчёта частот и поиска аналогов документа. ... 36
3.1. Подсчёт частотного словаря пар слов.
3.2. Поиск документов аналогов.
Глава 4. Результаты
Глава 5. Выводы
Заключение
Список литературы
Приложение
В жизни современного человека всё большую ценность приобретает владение информацией. Обладая знаниями о чужих ошибках, человек может избежать аналогичных неудач. При наличии необходимой информации можно намного быстрее и, зачастую, эффективнее решать типичные задачи.
Благодаря всемирной сети Интернет, можно найти практически любые данные по интересующей теме. За годы своего существования человечество накопило огромное количество информации. Человеку не хватит всей жизни, чтобы освоить хотя бы тысячную долю всех доступных ему знаний. Данная ситуация не столь радужна, как кажется. Как правило, своевременно и оперативно получить необходимую информацию практически невозможно.
Это обусловлено большими объемами доступной в Интернете информации, не всегда корректно структурированной.
Для облегчения задачи разработаны специальные поисковые системы, к примеру, Яндекс или Google, которые могут по запросу из нескольких слов выводить ссылки на релевантные документы или web-сайты. Однако, результат зависит от корректности формулировки запроса. Периодически возникают ситуации, в которых по существующему документу необходимо получить дополнительную информацию, уточняющего или дополняющего характера. Но пользователю достаточно сложно правильно составить запрос для получения нужных ему документов. В рамках данной работы выдвигается гипотеза о возможности упрощения задачи корректной формулировки запроса с помощью автоматического составления списка слов для построения релевантного запроса.4
Постановка задачи.
Целью данной работы является разработка программного комплекса, позволяющего по исходному документу составить список слов, которые пользователь сможет использовать для поиска аналогов документа и нахождения необходимой ему информации.
Необходимо разработать программный продукт, обладающий следующими возможностями:
Автоматическая сборка обучающей коллекции документов из Интернет
Разделение текстов на предложения, очистка от HTML кода и всего что не является предложением (ссылки, списки таблицы и т. д.).
Лемматизация слов – приведение слов к так называемой нормальной форме: именительный падеж и единственное число для существительных, инфинитив для глаголов и т. д.
Составление нумерованного словаря и кодирование документов по нему
Подсчёт частоты встречи комбинаций пар слов в пределах предложения во всем наборе документов обучающей коллекции.
Составление списка слов исходного документа, расчёт их релевантности для использования в запросе к поисковой системе, сортировка в порядке снижающейся релевантности и их вывод,
вместе с данными позволяющими оценить полученные значения релевантности.
В ходе написания данной работы было рассмотрено применение данных о частоте встрече пар слов в предложении для поиска аналогов документа.
Были разработаны следующие модули программного комплекса:
1). Сбор коллекции путём скачивания документов по заданным темам.
2), Выделение предложений и очистка от HTML кода.
3). Лемматизация.
4). Кодирование документов и составление нумерованного словаря.
5). Составление частотного словаря встречи пар слов в предложении.
6) Применение частотного словаря для поиска аналогов документа.
Помимо этого были разработаны алгоритмы хранения данных хэш таблиц и собственная реализация алгоритма Бойера-Мура.
В дальнейшем планируется улучшить результаты исследования, а так же применить полученные данные частотного словаря для решения прикладных задач информационного поиска
1. Аликов А. Ю, Калиниченко А. В. Применение нечёткой
кластеризации для автоматизации поиска похожих документов //
«Вопросы науки и техники»: материалы международной заочной
научно-практической конференции. Часть I. (16 января 2012 г.) —
Новосибирск: Изд. «ЭКОР-книга» , 2012. С. 80-85.
2. Википедия, латентно семантический анализ. https://ru.wikipedia.org
/wiki/%D0%9B%D0%B0%D1%82%D0%B5%D0%BD%D1%82%D0%
BD%D0%BE-%D1%81%D0%B5%D0%BC%D0%B0%D0%BD%D1
%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%
B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7
3. Netpeak blog, Алгоритм LSA для поиска похожих документов.
http://blog.netpeak.ru/algoritm-lsa-dlya-poiska-pohozhih-dokumentov/
4. Википедия, Количество статей в русской Википедии.
https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D
0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9A%D0%BE%D0
%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B
E_%D1%81%D1%82%D0%B0%D1%82%D0%B5%D0%B9_%D0%B2
_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B9_
%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%
D0%B8%D0%B8
5. Компьютерная грамматика русского языка: лексика, морфология,
синтаксис, Лемматизатор в грамматическом словаре.
http://www.solarix.ru/for_developers/api/lemmatizator-api.shtml
6. Частотный словарь, Вторая версия частотного списка.
http://www.artint.ru/projects/frqlist.php
7. CIS projects, TreeTagger - a part-of-speech tagger for many languages.
http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/48
8. Википедия, Алгоритм Бойера — Мура.
https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%
D1%80%D0%B8%D1%82%D0%BC_%D0%91%D0%BE%D0%B9%D
0%B5%D1%80%D0%B0_%E2%80%94_%D0%9C%D1%83%D1%80
%D0%B0
9. Microsoft центр разработки для Windows, About WinINet.
https://msdn.microsoft.com/ruru/library/windows/desktop/aa383630.aspx
10. Яндекс.XML, Документация, GET-запросы.
https://tech.yandex.ru/xml/doc/dg/concepts/get-request-docpage/
11.Википедия, Windows-1251. https://ru.wikipedia.org/wiki/Windows-
1251
12.Википедия, ACSII. https://ru.wikipedia.org/wiki/ASCII
13.Википедия, UTF-8 https://ru.wikipedia.org/wiki/UTF-8
14.Компьютерная грамматика русского языка: лексика, морфология,
синтаксис, Грамматический Словарь Русского Языка.
http://www.solarix.ru/index.shtml