32
Министерство образования и науки Российской Федерации Южно-Российский государственный политехнический университет (НПИ) имени М. И. Платова ИНФОРМАЦИОННЫЙ ПОИСК Методические указания к практическим занятиям и выполнению лабораторных и самостоятельных работ (направления подготовки «Математическое обеспечение и администрирование информационных систем» и «Информатика и вычислительная техника») Новочеркасск ЮРГПУ (НПИ) 2017

ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

Министерство образования и науки Российской Федерации

Южно-Российский государственный политехнический

университет (НПИ) имени М. И. Платова

ИНФОРМАЦИОННЫЙ ПОИСК

Методические указания

к практическим занятиям и выполнению

лабораторных и самостоятельных работ

(направления подготовки «Математическое обеспечение и

администрирование информационных систем» и «Информатика

и вычислительная техника»)

Новочеркасск

ЮРГПУ (НПИ)

2017

Page 2: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

УДК 004.91 (076.5)

ББК 29.81

Рецензент – кандидат технических наук, доцент кафедры «Программное

обеспечение вычислительной техники» Р. М. Синецкий

Кущий Д.Н.

Информационный поиск: методические указания к практическим

занятиям и выполнению лабораторных и самостоятельных работ (направления

подготовки «Математическое обеспечение и администрирование

информационных систем» и «Информатика и вычислительная техника») /

Южно-Российский государственный политехнический университет (НПИ)

имени М.И. Платова. – Новочеркасск: ЮРГПУ (НПИ), 2017. – 32 с.

Издание содержит методические материалы по освоению навыков

информационного поиска в сети Интернет и оценке полученных результатов.

Рассмотрены вопросы построения семантических сетей, тезаурусов и

онтологий, а также методы и алгоритмы индексации и кластеризации

документов. Приведена программа лабораторных работ и контрольные

вопросы для проверки знаний.

Методические указания предназначены для студентов, обучающихся по

программам бакалавриата следующих направлений подготовки: 02.03.03

Математическое обеспечение и администрирование информационных систем,

09.03.01 Информатика и вычислительная техника.

УДК 004.91 (076.5)

ББК 29.81

Южно-Российский государственный

политехнический университет (НПИ)

имени М.И. Платова, 2017

Page 3: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

3

1. ПРАКТИЧЕСКИЕ ЗАНЯТИЯ, ИХ НАИМЕНОВАНИЕ

И ОБЪЕМ В ЧАСАХ

№ Наименование тем занятий

Кол-

во

часов

Форма

контроля

Сроки

контроля

Литература

1 Форматы представления

информации

2 Тест 20-25.09 [1–4]

2 Семантические сети. Проект

Semantic Web

2 Тест 20-25.09 [1–4]

3 Поисковые машины Интернета и

технологии их

создания. Понятие документа.

Индексация документов

2 Тест 20-25.10 [1–4]

4 Основные стандарты

метаданных. Поиск документов

различных форматов

2 Тест 20-25.10 [1–4]

5 Информационные потребности

научного сообщества.

Оценка эффективности поиска.

Алгоритмы поиска «по

аналогии»

2 Тест 20-25.11 [1–4]

6 История возникновения

тезаурусов и онтологий. Типы

классификаторов. УДК. ГРНТИ

2 Тест 20-25.11 [1–4]

7 Методы и алгоритмы индексации

документов

4 Тест 20-25.12 [1–4]

8 Измерение близости между

объектами. Основные

алгоритмы кластеризации

2 Тест 20-25.12 [1–4]

Для студентов заочной формы обучения предусмотрено

проведение практических занятий по темам 1, 4, 5, 8. На каждое

занятие отводится 1 час.

Page 4: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

4

Практическое занятие №1

Форматы представления информации

1. Перевести число из десятичной системы счисления в двоично-

десятичную:

а) 585(10); б) 673(10); в) 285(10); г) 846(10); д) 163(10).

2. Записать дополнительный код числа, интерпретируя его как

восьмибитовое целое со знаком:

а) 115(10); б) –34(10); в) –70(10); г) 98(10); д) –111(10); е) –95(10).

3. Записать в десятичной системе счисления целое число, если дан

его дополнительный код:

а) 0011010111010110; б) 1000000110101110;

в) 0111100011001000; г) 1111011101101101;

д) 0111011101000111; е) 1010110110101110.

4. Записать прямой код числа, интерпретируя его как

шестнадцатибитовое целое без знака:

а) 22491(10); б) 23832(10);

в) 18509(10); г) 28180(10);

д) 19835(10); е) 22248(10).

5. Дешифровать данный текст, используя таблицу ASCII-кодов:

а) 8A AE AC AF EC EE E2 A5 E0;

б) 50 72 6F 67 72 61 6D;

в) 50 72 6F 63 65 64 75 72 65;

г) 84 88 91 8A 8E 82 8E 84.

Практическое занятие №2

Семантические сети. Проект Semantic Web

1. Разработать семантическую модель представления знаний,

содержащихся в следующих событиях:

Page 5: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

5

1.1. Директор завода «Салют» остановил 10.10.13 цех №4, чтобы

заменить оборудование.

1.2. Если станок закончил обработку, робот грузит кассету с

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

1.3. Вася предполагает, что Маша любит мороженое.

2. Построить семантическую сеть для указанной предметной

области с учетом приведенных понятий, используя для описания

необходимые типы отношений:

2.1. Предметная область – аэродинамика. Список понятий:

самолет, ИЛ-76, крылья, двигатель, керосин, летать, законы

аэродинамики, птица, орел, клюв, оперение.

2.2. Предметная область – птицы. Список понятий: птица,

животное, канарейка, желтый, петь, крылья, клюв, кожа,

дышать, летать.

2.3. Предметная область – млекопитающее. Список понятий:

млекопитающее, животное, позвоночник, кошка, шерсть,

медведь, рыба, вода, кит.

2.4. Предметная область – транспортное средство. Список

понятий: автомобиль, водитель, пассажир, человек, Иванов,

Audi, двигатель, стартер, бензин, топливо, октановое число,

АИ-98.

Практическое занятие №3

Поисковые машины Интернета и технологии их создания.

Понятие документа. Индексация документов

Занятие проводится в виде семинара.

Список вопросов для обсуждения:

1. Укрупненная структура и принцип работы поисковой

системы.

2. Какие виды поисковых системы Вы знаете?

Page 6: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

6

3. Какие модели поиска Вы можете назвать?

4. Функции индексатора.

5. Механизм поиска по индексу.

6. Как классифицируются поисковые запросы?

7. Как определить объект поиска?

8. Какие бывают типы информации?

9. Какие критерии используются при оценке информации?

10. Как осуществляется поиск файлов определённого формата?

11. Как осуществляется поиск программного обеспечения?

12. Как искать рефераты?

13. Какие онлайновые источники информации Вы знаете?

14. Какие офлайновые источники информации Вы знаете?

15. Как узнать последние новости?

16. Как найти требуемую цитату в книге?

17. Как найти толкование того или иного слова в

энциклопедиях?

18. Как перевести слово с чувашского языка на русский?

19. Как найти требуемое изображение?

20. Для чего нужны каталоги?

21. Что такое «язык запросов» в Google?

22. Какие отличия между языком запросов в Google и в Яндекс?

23. Сетевой сервис и основные сетевые стандарты.

Практическое занятие №4

Основные стандарты метаданных.

Поиск документов различных форматов

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

ниже темам. Оценить эффективность поиска с применением ряда

логических операций и документных операторов языка запросов.

1. Законодательные аспекты работы с информацией.

Page 7: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

7

2. Типологическая характеристика мировых информационных

ресурсов.

3. Поиск знаний в сети Интернет.

4. Редакторы HTML-кода.

5. IP-адрес. Классы IP-адресов.

6. Электронная коммерция.

7. Организация эффективного поиска в сети Internet.

8. Продвижение интернет-проектов.

9. Деловая информация.

10. Криптография.

Логические операции языка запросов:

а) ! – ставится перед ключевым словом и в результатах поиска

выдаются страницы, где указано точно такое же слово (без

изменений словоформы).

б) + – так же как и у Google, отображаются страницы со всеми

словами, указанными между плюсом.

в) « » – показывает точное совпадение фразы.

г) ( ) – используется для группировки слов в сложных

запросах.

д) & – нужен для поиска страниц, в которых слова,

объединенные данным оператором, встречаются в одном

предложении.

е) * – служит для поиска пропущенных слов в цитатах.

Например: Россия * душа. Один оператор * заменяет одно

слово.

Следующие операторы уже встроены в расширенный поиск

Яндекса и выполняют следующие функции:

а) title: поиск по заголовкам страниц сайтов.

б) url: поиск по страницам, размещенным по заданному адресу,

например url:1ps.ru/blog/*.

в) host: производит поиск по всему хосту.

Page 8: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

8

г) site: здесь поиск производится уже по всем поддоменам и

страницам сайта.

д) inurl: поиск по страницам только данного домена с

применением ключевых слов. Например, inurl:1ps.ru блог.

е) mime: поиск документов заданного типа, например

mime:xls.

Практическое занятие №5

Информационные потребности научного сообщества.

Оценка эффективности поиска.

Алгоритмы поиска «по аналогии»

1. Создать тестовую коллекцию документов и провести

сравнительный анализ зависимости времени обработки запроса

от размера выборки и длины подстроки для следующих

алгоритмов поиска подстроки:

алгоритм Карпа-Рабина;

алгоритм Кнута-Морриса-Пратта;

алгоритм Бойера-Мура.

2. Вычислить количество операций вставки, замены, удаления и

перестановки, производимых алгоритмом расширения выборки

для слов «кот», «луг», «окно», «стол», «метель» при числе

ошибок в слове, равном 1.

3. Выписать все триграммы слов «крокодил», «семантика»,

«энергоемкость» и составить для каждой из них список из 10

слов, содержащих указанную группу букв. Вычислить среднее

время работы алгоритма.

Page 9: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

9

Практическое занятие №6

История возникновения тезаурусов и онтологий. Типы

классификаторов. УДК. ГРНТИ

1. Построить информационно-поисковые тезаурусы следующих

предметных областей:

1.1. Спецификации CSS.

1.2. Анализ изображений.

1.3. Термины локальной вычислительной сети.

1.4. Парадигмы программирования.

1.5. Геологоразведка.

1.6. Реставрация и атрибуция произведений живописи.

1.7. Биологическая систематика.

2. Построить следующие онтологические схемы:

2.1. Разработка и сопровождение ПО.

2.2. Организационная структура предприятия.

3. Составить формальное описание онтологии (рис. 1) с помощью

языка OWL. На приведенном рисунке сплошные стрелки

обозначают отношение is-a, а пунктирные – a-part-of.

Практическое занятие №7

Методы и алгоритмы индексации документов

1. Создать коллекцию текстовых документов (экономика,

автомобили, культура, экономика и т.д.) и выполнить

сравнительный анализ следующих линейных алгоритмов

рубрикации по полноте и точности:

метод опорных векторов (SVM);

алгоритм PrTFIDF;

алгоритм Байеса.

Page 10: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

10

2. Выполнить частотный анализ содержимого web-страницы и

рассчитать F-меру.

Рисунок 1 – Фрагмент онтологии предметной области

Практическое занятие №8

Измерение близости между объектами. Основные

алгоритмы кластеризации

1. Создать коллекцию текстовых документов (экономика,

автомобили, культура, экономика и т.д.) и выполнить

Page 11: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

11

графическую интерпретацию ее кластеризации с помощью

алгоритма минимального покрывающего дерева.

2. Получить древовидную структуру кластеров обучающей выборки

с разными уровнями иерархии с помощью алгоритма послойной

кластеризации.

3. Для созданной коллекции документов вычислить следующие

метрики: евклидово расстояние, квадрат евклидова расстояния,

расстояние городских кварталов, расстояние Чебышева,

степенное расстояние.

2. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ, ИХ НАИМЕНОВАНИЕ И

ОБЪЕМ В ЧАСАХ

№ Наименование тем занятий

Кол-

во

часов

Форма

контроля

Сроки

контроля Литература

1

Поисковые информационные

системы. Исследование

эффективности поиска

4 Защита

отчета 20-25.09 [5,6]

2

Разработка системы

полнотекстового поиска с

использованием Elasticsearch

6 Защита

отчета 20-25.10 [5,6]

3

Настройка php клиента Elastica

для системы полнотекстового

поиска

4 Защита

отчета 20-25.11 [5,6]

4

Настройка веб краулера Apache

Nutch для системы

полнотекстового поиска

4 Защита

отчета 20-25.12 [5,6]

Для студентов заочной формы обучения предусмотрено

выполнения всех лабораторных работ, на проверку каждой из них

отводится по 0,5 часа во время лабораторно-экзаменационной сессии.

Page 12: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

12

Лабораторная работа №1

Поисковые информационные системы. Исследование

эффективности поиска

Цель работы: получить основные навыки поиска в сети

Интернет.

Программа работы

1. Изучить возможности нескольких поисковых систем Интернет (5

на выбор).

Примечание. Список исследуемых поисковых систем студент

выбирает самостоятельно. При изучении функций и возможностей

исследуемых поисковых систем следует использовать доступную

документацию и интерактивные справочные системы.

2. Принять список критериев оценки эффективности поисковых

систем.

Предлагаются следующие критерии:

полнота поиска;

точность поиска;

возможности языка запросов;

сложность формулировки запросов.

Перечень критериев оценки эффективности поисковых систем

может быть изменен и/или расширен. Назначить весовые

коэффициенты (веса) принятым критериям, заполнив таблицу 1.

Сумма всех весов должна быть равной 1.

Таблица 1 – Весовые коэффициенты

Критерии Весовой коэффициент

Page 13: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

13

3. Сформулировать запросы по индивидуальной теме.

4. Выполнить каждый запрос в каждой исследуемой поисковой

системе.

5. Из полученных списков результатов выбрать следующую

информацию:

5.1. Общее количество найденных документов (Д).

5.2. Количество релевантных документов различной ценности

(РД).

Ценность информации определяется по 3-х бальной шкале:

2 – имеет ценность (документ полностью пертинентный);

1 – имеет частичную ценность;

0 – не имеет ценности.

Результаты выполнения запросов внести в таблицу 2. Запросы

писать в том виде, в котором были внесены в строку поиска (со

всеми специальными знаками).

Таблица 2 – Результаты выполнения запросов

№ темы/

запрос

Bing Google

Д РД Д РД

2 1 0 2 1 0

6. Выполнить обработку результатов, заполнив таблицу 3.

Таблица 2 – Результаты сравнительного анализа поисковых систем

Критерий Поисковая

система 1

Поисковая

система 2

Поисковая

система 3

Поисковая

система 4

Поисковая

система 5

6.1. Вычислить средние арифметические значения показателей Д,

РД(2), РД(1) и РД(0) для каждой поисковой системы.

6.2. Определить место каждой поисковой системы по критерию

«Полнота поиска». Для определения места использовать

среднее количество найденных документов Д. Система,

Page 14: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

14

которая нашла больше документов, считается лучшей. Самой

лучшей системе присваивается место 1, самой худшей – место

5.

6.3. Для каждой поисковой системы определить коэффициент

точности поиска P для каждой системы по следующей

формуле:

,a

Pa b

где a – число релевантных документов, выданных

поисковой системой в ответ на запрос. Вычисляется по

формуле:

РД(2)+0,5*РД(1).a

b – число полностью непертинентных документов,

выданных поисковой системой в ответ на запрос, РД(0).b

6.4. Определить место каждой поисковой системы по критерию

«Точность поиска». Система, имеющая большее значение

коэффициента точности поиска P, считается лучшей. Самой

лучшей системе присваивается место 1, самой худшей – место

5. Вычислить коэффициент поискового шума S по следующей

формуле: =1- .S P

6.5. Определить значение критерия «Возможности языка

запросов». Для этого использовать пятибалльную шкалу:

0 – плохо;

1 – посредственно;

2 – средне;

3 – хорошо;

4 – превосходно.

6.6. Определить значение критерия «Сложность формулировки

запросов». Для этого использовать пятибалльную шкалу:

0 – плохо;

1 – посредственно;

2 – средне;

Page 15: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

15

3 – хорошо;

4 – превосходно.

6.7. Вычислить рейтинг каждой исследуемой системы R по

следующей формуле:

1

= 1 ,m

i i

i

R w N q

где m – количество критериев оценки,

i – номер критерия оценки поисковой системы,

wi – весовой коэффициент для критерия оценки i,

qi – место поисковой системы по критерию оценки i.

N – количество исследуемых систем.

7. Определить лучшую поисковую систему из исследуемых.

8. Оформить результаты работы по предлагаемой форме.

Темы поисковых запросов

1. Активный отдых.

2. Охрана природы.

3. Автомобили.

4. Музыкальные течения.

5. Астрономия.

6. Растения.

7. Праздники в Японии.

8. Спорт.

9. Астрономия.

10. Экологические катастрофы.

Page 16: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

16

Лабораторная работа №2

Разработка системы полнотекстового поиска с

использованием Elasticsearch

Цель работы: разработка системы полнотекстового поиска с

использованием Elasticsearch.

Программа работы

1. Установить Elasticsearch и плагин elasticsearch-head.

1.1. Скачать архив (http://www.elasticsearch.org/download/) и

распаковывать его.

1.2. Запустить сервер

Unix : bin/elasticsearch –f

Windows : bin/elasticsearch.bat

1.3. Проверить сервер

curl -X GET http://localhost:9200/

В случае успешной установки сервер вернет JSON массив с

информацией.

1.4. Плагин elasticsearch-head доступен по ссылке

http://mobz.github.io/elasticsearch-head/.

Для установки необходимо выполнить следующие команды:

1.4.1. elasticsearch/bin/plugin -install mobz/elasticsearch-head.

1.4.2. http://localhost:9200/_plugin/head/.

2. Проиндексировать и найти документы через консоль.

2.1. Создание индекса пользователей информационной системы:

// Данные о первом пользователе

$ curl -XPUT

'http://localhost:9200/index/users/1' -d '

{

"firstname" : "Piotr",

Page 17: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

17

"surname" : "Petrov",

"birthDate" : "1981-01-01",

"location" : "Moscow, Russian Federation",

"skills" : ["PHP", "HTML", "C++", ".NET",

"JavaScript"]

}'

//Данные о втором пользователе

$ curl -XPUT 'http://localhost:9200/

index/users/2' -d '

{

"firstname" : "Ivan",

"surname" : "Sidorov",

"birthDate" : "1978-12-13",

"location" : "Briansk, Russian

Federation",

"skills" : ["HTML", "Ruby", "Python"]

}'

2.2. Поиск пользователей из России

$ curl -XGET

'http://localhost:9200/habrauser/_search?q=loca

tion:Russian%20Federation&pretty

=true'

2.3. Подсчет количества пользователей из России

$ curl -XGET

'http://localhost:9200/habrauser/_count?q=locat

ion:Russian%20Federation&pretty

=true'

3. Протестировать в Elasticsearch большой объём данных.

Скрипт для генерации данных и автоматического заполнения

индекса:

<?php

ini_set('max_execution_time', 36000);

Page 18: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

18

class userGenerator {

// список стран для генерации данных

private $countries = array(

'Russian Federation',

'USA',

'Germany',

'France',

'Lithuania',

'Latvia',

'Poland',

'Finland',

'Sweden'

);

public function run($cnt) {

for ($i = 0; $i < $cnt; $i++) {

$query = $this->generateQuery($i);

echo "generating user " . $i . " ... ";

exec($query);

echo "done" . PHP_EOL;

}

}

private function generateQuery($id) {

// возраст самого взрослого программиста

$date = new DateTime('1960-01-01');

return 'curl -XPUT

\'http://localhost:9200/habrahabr/users/' .

$id . '\' -d \'

{

"id" : "' . $id . '",

"firstname" : "' . ucfirst($this-

>generateWord(10)) . '",

"surname" : "' . ucfirst($this-

>generateWord(10)) . '",

Page 19: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

19

"birthDate" : "' . $date->modify('+' .

rand(0, 14600) . ' days')->format('Y-m-d') .

'",

"location" : "' . $this-

>generateWord(10) . ', ' . $this-

>countries[array_rand($this->countries)] .

'",

"skills" : ["' . strtoupper($this-

>generateWord(3)) . '", "' .

strtoupper($this->generateWord(4)) . '", "'

. strtoupper($this->generateWord(3)) . '"]

}\' ';

}

private function generateWord($length) {

$letters = array(

"a", "b", "c", "d", "e", "f", "g", "h", "i",

"j", "k", "l", "m", "n", "o", "p", "q", "r",

"s", "t", "u", "v", "w", "x", "y", "z");

$word = '';

for ($i = 0; $i < $length; $i++) {

$word .= $letters[rand(0, 25)];

}

return $word;

}

}

$generator = new userGenerator();

$generator->run(5000000);

echo "complete";

?>

4. Оформить отчет, который должен содержать запросы и

результаты их выполнения (комментарии обязательны).

Page 20: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

20

Лабораторная работа №3

Настройка php клиента Elastica для системы полнотекстового

поиска

Цель работы: настройка php клиента Elastica для системы

полнотекстового поиска.

Программа работы

1. Настроить php клиент Elastica.

Для использования ElasticSearch в PHP необходимо выполнение

следующих системных требований: PHP >= 5.3.9, Composer, Curl ext.

1.1. Установить в корень проекта:

composer require ruflin/elastica.

1.2. Создание клиента:

<?php

require 'vendor/autoload.php';

$client = new \Elastica\Client();

1.3. Добавление документа:

$id = 1;

$product = array(

'id' => $id,

'title' => 'test product',

'price' => 12345.00,

'_boost' => 1.0

);

$productDocument = new

\Elastica\Document($id, $product);

// Добавление продукта

$elasticaType-

>addDocument($productDocument);

// Обновление индекса

Page 21: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

21

$elasticaType->getIndex()->refresh();

2. Реализовать поиск через php.

2.1. Процедура поиска:

$query = new Elastica\Query();

$query

->setFrom(50)

->setSize(10)

->setSort(['price' => 'asc'])

->setFields(['id', 'title', 'price'])])

->setExplain(true)

->setVersion(true)

->setMinScore(0.5);

$client->setQuery($query);

var_dump($search->count()); // Кол-во

элементов по запросу

/** @var \Elastica\ResultSet */

$resultSet = $search->search();

foreach ($search->scanAndScroll() as

$scrollId => $resultSet) {

// ...

}

2.2. Использование Phalcon.

2.2.1. Установка библиотеки:

composer require ovr/phalcon-

elasticsearch.

2.2.2. Создание сервиса:

$client = new \Elastica\Client($di-

>get('config')->elastica->toArray());

return $client;

2.2.3. Создание модели:

<?php

namespace Catalog\Model;

use

Elastica\Exception\NotFoundException;

use Elastica\Query;

use Phalcon\DI;

Page 22: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

22

use Phalcon\DI\Injectable;

class Product extends Injectable

{

use ElasticModelTrait;

protected static $index = 'my-project';

protected static $type = 'products';

public $data;

/**

* @param array $query

* @param array $options

* @return \Elastica\ResultSet

*/

public static function find(array $query

= [], array $options = null)

{

return static::getStorage()-

>search($query, $options);

}

}

2.2.4. Поисковый запрос:

$query = ['_source' => ['id', 'title'],

'size' => 5,];

var_dump(Product::find($query)-

>getResults());

3. Оформить отчет, который должен содержать запросы и

результаты их выполнения (комментарии обязательны).

Лабораторная работа №4

Настройка веб краулера Apache Nutch для системы

полнотекстового поиска

Цель работы: настройка веб-краулера Apache Nutch для

системы полнотекстового поиска.

Page 23: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

23

Программа работы

1. Настроить веб-краулера Apache Nutch для индексации сайтов в

Elasticsearch.

Для настройки подсистемы сканирования ресурсов сети

необходимо внести изменения в файл urls. Файл urls находится в

корневой директории системы.

Данный файл должен содержать список всех компьютеров, по

которым будет вестись поиск. Структура файла – набор записей (по

одной на каждую строку) следующего вида:

smb://host/,

где smb – протокол используемый Java для доступа к ресурсам

локальной сети (не изменять);

host – имя или IP адрес компьютера в локальной сети

(закрывающая косая черта после имени компьютера обязательна).

Пример файла urls:

smb://comp1/

smb://server/

smb://192.168.18.204/

smb://mycomp/

2. Реализовать возможность удаления, добавления ссылок в

индексе.

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

внести изменения в файл nutch-site.xml. Файл nutch-site.xml находится

в директории /conf программы. Он представляет собой набор

настроек, которые регулируют механизм индексации документов и

влияют на производительность системы в целом.

Рассмотрим необходимые настройки с кратким описанием для

каждой:

1. smb.content.limit – размер индексируемого файла в байтах.

При указании неотрицательного (>=0) значения содержимое

файла, большее указанного в данной настройке, будет

Page 24: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

24

отбрасываться. При указании отрицательного значения

будет индексироваться все содержимое файла. Большое

значение данного свойства уменьшит производительность

системы. Рекомендуемое значение не более10000000.

2. http.max.delays – указывает сколько раз поток будет

приостанавливаться при попытке индексации файла.

Каждый раз, когда компьютер, на котором находится файл,

оказывается занят, поток приостановится на

fetcher.server.delay секунд. После http.max.delays попыток

система перейдет к индексации следующего файла.

3. fetcher.server.delay – количество секунд, на которые система

приостановится, перед повторным обращением к одному и

тому же компьютеру.

4. plugin.includes – регулярное выражение, перечисляющее

имена расширений, используемых системой. Фактически

это название текстовых форматов, которые будут

индексироваться. Значение по умолчанию parse-

(text|html|pdf|msword|rtf). Это означает, что будут

индексироваться следующие текстовые документы:

обычные текстовые файлы (расширение .txt);

документы Microsoft Word (расширение .doc);

html файлы (расширение .html и .htm);

документы в формате RTF (расширение .rtf);

документы в формате PDF (расширение .pdf).

Если нет необходимости индексировать файлы

определенных форматов, то нужно удалить

соответствующий тип из данной настройки (вместе с

вертикальной чертой).

5. plugin.excludes – регулярное выражение, перечисляющее

имена расширений, которые не следует индексировать

системе (имеет тот же формат, что и предыдущая

Page 25: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

25

настройка). Для индексации всех поддерживаемых

форматов, необходимо оставить это поле пустым.

6. fetcher.store.content – если установлено в значение true в

системе будет храниться содержимое документа. Это может

быть полезно, если при просмотре результатов поиска

добавить возможность просмотреть документ из кэша

системы (аналогично данной функции на сайте Google).

Однако включение данной опции значительно увеличит

объем индекса. Значение по умолчанию false.

7. fetcher.threads.fetch – количество потоков, которые будут

использоваться при индексировании. Это значение также

означает максимальное количество запросов к

компьютерам, которые будут выполнены в один момент

времени (каждый поток обрабатывает один запрос-

соединение). Чем больше указанное значение, тем быстрее

пройдет процесс индексации, но данная настройка

оказывает большое влияние на использование

процессорного времени.

8. fetcher.threads.per.host – максимальное количество потоков,

которые будут обращаться к одному и тому же компьютеру

в один момент времени. Чем больше указанное значение,

тем быстрее пройдет процесс индексации. Но не

рекомендуется использовать большие значения, так как это

вызывает существенное замедление работы удаленного

компьютера.

9. db.default.fetch.interval – количество дней, через которое

документ будет снова проиндексирован.

3. Оформить отчет, который должен содержать запросы и результаты

их выполнения (комментарии обязательны).

Page 26: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

26

2. САМОСТОЯТЕЛЬНАЯ РАБОТА СТУДЕНТОВ (СРС)

Очная форма обучения

СРС – темы и (или) разделы тем для самостоятельного изучения,

в том числе конспектирование – 89,1 ч.

№ Наименование тем Кол-во

часов

Литература

1 Тема 1. Основы теории семантической

информации

9,1 [1–4]

2 Тема 4. Основные стандарты метаданных.

Поиск документов различных форматов

10 [1–4]

3 Тема 5. Информационные потребности научного

сообщества. Оценка эффективности поиска.

Алгоритмы поиска «по аналогии»

20 [1–4]

4 Тема 6. История возникновения тезаурусов и

онтологий. Типы классификаторов. УДК.

ГРНТИ

10 [1–4]

5 Тема 7. Методы и алгоритмы индексации

документов

20 [1–4]

6 Тема 8. Измерение близости между объектами.

Основные алгоритмы кластеризации

20 [1–4]

Задания для самостоятельного изучения и конспектирования

Тема 1. Введение. Рассмотреть следующие вопросы:

основы теории семантической информации;

определение информатики как науки о семантической

информации;

виды семантической информации;

соотношение между понятиями «данные», «информация» и

«знания».

Тема 4. Метаданные и обработка электронных ресурсов.

Рассмотреть следующие вопросы:

различия между данными и метаданными;

классификация метаданных;

классификация форматов метаданных;

Page 27: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

27

основные стандарты метаданных (GSDGM, ISO и т.д.);

специальные программы для работы с метаданными;

поиск документов различных форматов.

Тема 5. Модель информационно-поисковой системы.

Рассмотреть следующие вопросы:

информационные потребности научного сообщества;

оценка эффективности поиска: полнота, точность, F-мера;

базовые алгоритмы ранжирования;

алгоритмы поиска «по аналогии»: алгоритм расширения

выборки, метод n-грамм, хеширование по сигнатуре, BK-

деревья.

Тема 6. Построение тезаурусов и онтологий информационно-

поисковых систем. Рассмотреть следующие вопросы:

история возникновения тезаурусов и онтологий;

типы классификаторов;

типы онтологий;

язык OWL;

классификатор УДК;

государственные рубрикатор ГРНТИ.

Тема 7. Извлечение метаданных из слабоструктурированных

документов. Рассмотреть следующие вопросы:

взаимосвязь нечеткого поиска и индексации;

частотный анализ;

предварительная индексация документов;

метод опорных векторов (SVM);

алгоритм PrTFIDF;

алгоритм «наивный Байес».

Тема 8. Кластеризация текстовых документов на основе меры

сходства. Рассмотреть следующие вопросы:

типы входных данных;

измерение близости между объектами;

цели кластеризации;

основные методы кластеризации;

евклидово расстояние;

квадрат евклидова расстояния;

Page 28: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

28

расстояние городских кварталов;

расстояние Чебышева;

степенное расстояние.

Заочная форма обучения

СРС – темы и (или) разделы тем для самостоятельного изучения

– 125,4 ч.

№ Наименование тем Кол-во

часов

Литература

1 Тема 1. Метаданные и обработка электронных

ресурсов. Типы и иерархия метаданных.

Особенности аналитико-синтетической

переработки электронных документов. Основные

стандарты метаданных. Поиск документов

различных форматов.

20,4 [1–4]

2 Тема 2. Модель информационно-поисковой

системы.

Информационные потребности научного

сообщества.

Структура логических компонентов

информационно-поисковой системы. Основные

принципы системного анализа. Формулировка

требований к информационно-поисковой

системе. Модель информационно-поисковой

системы, отвечающая основным системным

принципам. Модели поиска: контекстный,

атрибутивный, «по аналогии». Создание

каталогов информационно-поисковых систем.

Оценка эффективности поиска. Алгоритмы поиска

«по аналогии»

30 [1–4]

3 Тема 3. Построение тезаурусов и онтологий

информационно-поисковых систем.

История возникновения тезаурусов и онтологий.

Типы классификаторов. УДК. ГРНТИ. Типы

тезаурусов и онтологий. Автоматизированная

технология построения тезаурусов и онтологий.

20 [1–4]

4 Тема 4. Извлечение метаданных из

слабоструктурированных документов.

25 [1–4]

Page 29: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

29

№ Наименование тем Кол-во

часов

Литература

Технологии, основанные на разметке документа.

Получения метаданных документа с

использованием удаленных библиографических

описаний. Автоматическое извлечение из текстов

ключевых слов. 5 Тема 5. Кластеризация текстовых документов

на основе меры сходства.

Выбор шкал для определения меры сходства.

Апостериорные правила нахождения весовых

коэффициентов. Основные алгоритмы

кластеризации.

30 [1–4]

СРС зач. – самостоятельная работа по подготовке к зачету с

оценкой в период лабораторно-экзаменационной сессии – 5,75 ч.

Зачетные вопросы по курсу

1. Обсуждение понятия «информация».

2. Краткая история информатики как науки о семантической

информации.

3. Многоуровневая модель информации.

4. Соотношение между понятиями «данные», «информация» и

«знания».

5. Семиотика и проблема восприятия информации.

6. Знак, концепт, денотат – треугольник Фреге.

7. Подходы к классификации метаданных.

8. Связь между многоуровневой моделью информации и

семиотическими моделями.

9. История возникновения тезаурусов и онтологий.

10. Типы тезаурусов.

11. Многообразие определения онтологий.

12. Определение документа как носителя информации.

13. Типы классификации документов.

14. Форматы представления документов (текстовых, графических,

аудио, видео…) и их особенности.

Page 30: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

30

15. Цели и задачи аналитико-синтетической переработки

документов.

16. Основные этапы аналитико-синтетической переработки

документов.

17. Индексация документов.

18. Сравнение наиболее распространенных классификаторов (УДК,

ГРНТИ, MSC).

19. Понятие метаданных.

20. Типы и иерархия метаданных.

21. Стандарт Dublin Core.

22. Особенности аналитико-синтетической переработки электронных

документов.

23. Библиометрика: исследование количественных характеристик

документов.

24. Понятие об импакт-факторе.

25. Основные библиометрические индексы: индекс цитирования,

индекс Хирша и его модификации.

26. Вебометрика: особенности количественного анализа интернет-

ресурсов.

27. Применение теории графов в вебометрических исследованиях.

28. Модель информации по В. Гитту: 5 уровней сообщения.

Контактная внеаудиторная работа

Очная форма обучения:

СРС – групповые консультации с преподавателем в течение

семестра – 0,9 ч.

Заочная форма обучения:

СРС – групповые консультации с преподавателем во время

лабораторно-экзаменационной сессии – 0,6 ч.

СРС зач. – сдача зачета с оценкой – 0,25 ч.

Page 31: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

31

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Исаев Г.Н. Информационные технологии [Электронный ресурс]:

учебное пособие / Г.Н. Исаев. – Электрон. дан. – М.: Омега-Л ,

2012. – 464 с. – Режим доступа:

http://www.knigafund.ru/books/106847 – Загл. с экрана.

2. Блюмин А.М. Мировые информационные ресурсы

[Электронный ресурс]: учебное пособие / А.М. Блюмин, Н.А.

Феоктистов. – Электрон. дан. – М.: Дашков и К, 2015. – 680 с. –

Режим доступа: http://www.knigafund.ru/books/55384 – Загл. с

экрана.

3. Музипов Х.Н. Автоматизированное проектирование средств и

систем управления [Электронный ресурс]: учебное пособие /

Х.Н. Музипов, О.Н. Кузяков. – Электрон. дан. – Тюмень:

ТюмГНГУ (Тюменский государственный нефтегазовый

университет), 2011. – 168 с. – Режим доступа:

http://e.lanbook.com/books/element.php?pl1_id=28311 – Загл. с

экрана.

4. Шкляр М.Ф. Основы научных исследований [Электронный

ресурс]: учебное пособие. – Электрон. дан. – М.: Дашков и К,

2014. – 244 с. – Режим доступа:

http://e.lanbook.com/books/element.php?pl1_id=56263 – Загл. с

экрана.

5. Дружинин Г.В. Эксплуатационное обслуживание

информационных систем [Электронный ресурс]: учебник / Г.В.

Дружинин, И.В. Сергеева. – Электрон. дан. – М.: УМЦ ЖДТ

(Маршрут), 2013. – 220 с. – Режим доступа: http://www.knigafund.ru/books/173402 – Загл. с экрана.

6. Кудинов Ю.И. Практикум по основам современной

информатики [Электронный ресурс]: учебное пособие / Ю.И.

Кудинов, Ф.Ф. Пащенко, А.Ю. Келина. – Электрон. дан. – СПб.:

Лань, 2011. – 351 с. – Режим доступа:

http://e.lanbook.com/books/element.php?pl1_id=68471 – Загл. с

экрана.

Page 32: ИНФОРМАЦИОННЫЙ ПОИСКfitu.npi-tu.ru/assets/fitu/povt/files/RP/PRAVILMETHOD/2015/ip-kushhij..pdf · Настройка php клиента Elastica для системы

Учебно-методическое издание

Кущий Дарья Николаевна

Информационный поиск

Методические указания к практическим занятиям и

выполнению лабораторных и самостоятельных работ

(направления подготовки «Математическое обеспечение и

администрирование информационных систем» и «Информатика и

вычислительная техника»)

Редактор Н.А.Юшко

Подписано в печать 10.07.2017.

Формат 60x84 1/16. Бумага офсетная. Печать цифровая.

Усл. печ. л. 1,86. Уч.-изд.л. 2,0. Тираж 50 экз. Заказ .

Южно-Российский государственный политехнический университет

(НПИ) имени М.И. Платова

Редакционно-издательский отдел ЮРГПУ (НПИ)

346428, г. Новочеркасск, ул. Просвещения, 132

Отпечатано в ИД «Политехник»

346428, г. Новочеркасск, ул. Первомайская, 166

[email protected]