Главная » Просмотр файлов » Диссертация

Диссертация (1137159), страница 30

Файл №1137159 Диссертация (Математическое моделирование и программная реализация семантического преобразования поисковых запросов) 30 страницаДиссертация (1137159) страница 302019-05-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

е.продукций пустых цепочек.Словарь_Союзов— словарь слов-индикаторов, являющихся соединяющимидля двух объектов интереса (обычные союзы).Словарь_Доп_Указателейдополнительными«функционировать».—указателями.словарьслов-индикаторов,Примеры:«работать»,являющихся«вести»,199Выход:Отличит_Слово — слово-индикатор, по которому был определен типзапроса. Имеет тип Расш_Слово.Объект_Интереса1массив—элементовтипаРасш_Слово,представляющий первый объект интереса. Объект интереса может состоять изнескольких слов, поэтому все они должны быть возвращены как значимые.Объект_Интереса2массив—элементовтипаРасш_Слово,представляющий второй объект интереса.Доп_Объект_Интереса—массивэлементовтипаРасш_Слово,представляющий дополнительный объект интереса.Алгоритм «Разбор_Запр_ОП_ОСОБ»начОбъект_Найден := ложьi := f := s := a := 0пока Запрос(i) <> nil циклесли Вхождение_Слова_В_Словарь(Запрос(i)::Баз_Формы,Словарь_Доп_Слов)Отличит_Слово := Запрос(i)Объект_Найден := ложьj := i+1пока Запрос(j) <> nil циклеслиЗапрос(j-1)::Содержит_Стем(«отличительный»)Запрос(j)::Содержит_Стем(«черта»)начать цикл с j+1кеслиесли ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Запр_Слов)если Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Доп_Указателей)И200Доп_Объект_Интереса := Запрос(j)начать цикл с j+1кесликеслиесли Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Союзов)Объект_Найден := ложьначать цикл с j+1кеслиесли Объект_НайденОбъект_Интереса2(s) := Запрос(j)s := s+1иначеОбъект_Интереса1(f) := Запрос(j)f := f+1кеслиj := j+1кциклесли Объект_Интереса1 == пустой_массивj := 0пока Запрос(j) <> nil циклесли ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Доп_Слов)если ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Запр_Слов)если ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Доп_Указателей)Объект_Интереса1(f) := Запрос(j)201f := f+1кесликеслииначевыход циклкеслиj := j+1кциклкесливыходиначеесли Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Доп_Указателей)Объект_Найден := ложьДоп_Объект_Интереса(a) := Запрос(i)a := a+1j := i+1пока Запрос(j) <> nil циклесли ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Запр_Слов)если Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы,Словарь_Союзов)Объект_Найден := истинаначать цикл с j+1кесликеслиесли Объект_НайденОбъект_Интереса2(s) := Запрос(j)s := s+1иначе202Объект_Интереса1(f) := Запрос(j)f := f+1кеслиj := j+1кциклкесливыходкеслиi := i+1кциклконАлгоритм разбора части запроса с целью выявления датыВнешняя спецификация алгоритма «Определение_Даты»Назначение:Алгоритм предназначен для определения даты, относительно которой можетсодержаться информация в части запроса.

Алгоритм обрабатывает ситуациивида «позапрошлый год», «год назад», «5 лет назад», «в 1998 году», «три годаназад». Это позволяет однозначно определять год, относительно которогозапрашивается информация. Временной интервал меньшей длительности нерассматривается в силу того, что нахождение информации подобного рода наобщедоступных ресурсах маловероятно.В алгоритме используется метод «Содержит_Стем», описанный впараграфе 2.7. Данный метод возвращает истину или ложь в зависимости оттого, содержится ли поданное на вход слово в массиве базовых форм словаБаз_Формы.Используетсяследующимобразом:слово::Содержит_Стем(набор_символов), где слово — объект, имеющий типРасш_Слово, а набор_символов — некоторый текст, который необходимообнаружить в массиве Баз_Формы.203Также в алгоритме используется метод «Число?», который возвращаетзначения «истина» или «ложь» в зависимости от того, является ли текущийэлемент запроса символом, представляющим число.

Например, «9», «2010».Работа данного метода основана на регулярных выражениях, реализациякоторых специфична для выбираемой платформы реализации.Дополнительно используется подалгоритм «Символ-Цифра», которыйпозволяет преобразовать числительные «один», «два», «пара», «три», «четыре»,«пять», «шесть», «семь», «восемь», «девять» и «десять» в соответствующие имцифры. Данный алгоритм является тривиальным и основан на прямомсопоставление входного слова одному из числительных. Если совпадениенайдено, то возвращается соответствующая цифра, в противном случаевозвращается nil. Обращение к подалгоритму происходит следующим образом:Результат:=Символ-Цифра(слово),гдерезультат—эторезультатвыполнения подалгоритма, а слово — это объект типа Расш_Слово,подлежащий проверке.Вход:Запрос — массив слов поискового запроса, состоящий из элементов типаРасш_Слово.f — индекс элемента, с которого начинается проход по части массива Запрос.Тип_Запр — тип запроса.Выход:Дата — массив элементов типа Расш_Слово, содержащий информацию одате, если таковая обнаружена в оставшейся части запроса.Результат — логическая переменная, принимающая значение истина, еслидата была найдена в части запроса и ложь — в противном случае.Внутренние переменные:Текущий_Словарь — текущий словарь слов-индикаторов с типом ДОП_ТР.Определяется в зависимости от типа запроса поданного на вход.Дельта — цифровое обозначение для вычисления дат вида «прошлый год» и«позапрошлый год».204Текущий_Год — переменная, обозначающая цифровое представлениетекущего года.

Например, 2011.Значение устанавливается методами,специфичными для выбранной платформы реализации.Алгоритм «Определение_Даты»начесли Тип_Запр == В_ДЦТекущий_Словарь := Словарь::Получить_Словарь(В_ДЦ, ДОП_ТР)кеслиесли Тип_Запр == В_ИМТекущий_Словарь := Словарь::Получить_Словарь(В_ИМ, ДОП_ТР)кеслиесли Вхождение_Слова_В_Словарь(Запрос(f)::Баз_Формы,Текущий_Словарь)Дельта := 0еслиЗапрос(f)::Содержит_Стем(«прошедший»)Запрос(f)::Баз_Формы::содержит(«прошлый»)Дельта := -1иначеесли Запрос(f)::Содержит_Стем(«позапрошлый»)Дельта := -2кесликеслиесли Запрос(f+1) <> nilесли Запрос(f)::Содержит_Стем(«год»)Дата(0) := Текущий_Год + ДельтаДата(1) := Запрос(f+1)ИЛИ205если Запрос(f+2) == nilРезультат := истинавыходиначеРезультат := ложьвыходкесликесликесликеслиесли Запрос(f)::Число?если Запрос(f+2) <> nilеслиЗапрос(f+1)::Содержит_Стем(«год»)Запрос(f+1)::Содержит_Стем(«назад»)Дата(0) := Текущий_Год — Запрос(f)Дата(1) := Запрос(f+1)если Запрос(f+2) == nilРезультат := истинавыходиначеРезультат := ложьвыходкесликеслииначеесли Запрос(f+1) <> nilесли Запрос(f+1)::Содержит_Стем(«год»)Дата(0) := Текущий_Год — Запрос(f)Дата(1) := Запрос(f+1)И206если Запрос(f+2) == nilРезультат := истинавыходиначеРезультат := ложьвыходкесликесликеслииначеДата(0) := Текущий_Год — Запрос(f)если Запрос(f+1) == nilРезультат := истинавыходиначеРезультат := ложьвыходкесликесликеслиесли Запрос(f)::Содержит_Стем(«год»)если Запрос(f+1) <> nil И Запрос(f+1)::Содержит_Стем(«назад»)Дата(0) := Текущий_Год — 1Дата(1) := Запрос(f)если Запрос(f+1) == nilРезультат := истинавыходиначеРезультат := ложь207выходкесликесликеслиесли Символ-Цифра(Запрос(f)) >0если Запрос(f+2) <> nilеслиЗапрос(f+1)::Содержит_Стем(«год»)Запрос(f+2)::Содержит_Стем(«назад»)Дата(0) := Текущий_Год — Слово-Цифра(Запрос(f))Дата(1) := Запрос(f+1)если Запрос(f+1) == nilРезультат := истинавыходиначеРезультат := ложьвыходкесликеслииначеесли Запрос(f+1) <> nil И Запрос(f+1)::Содержит_Стем(«год»)Дата(0) := Текущий_Год — Слово-Цифра(Запрос(f))Дата(1) := Запрос(f+1)если Запрос(f+1) == nilРезультат := истинавыходиначеРезультат := ложьвыходкеслиИ208кесликесликеслиРезультат := ложьконАлгоритм разбора статьи WiktionaryВнешняя спецификация алгоритма «Разбор_Wiki_Статьи»Назначение: Алгоритм предназначен для разбора статей из базы данныхWiktionary с целью выделения значений слова, его синонимов, гипонимовигиперонимов.Алгоритмтакжепредназначендляфильтрациинезначимых символьных последовательностей.

В алгоритме используютсябазовые функции работы со строками, присутствующие практически влюбом высокоуровневом языке программирования.Вход: МасСтр — массив строк, представляющий разбитый построчно текстстатьи.Выход: Значения, Синонимы, Гипонимы, Гиперонимы — значения, синонимы,гипонимы и гиперонимы соответственно, представленные структуройданных список.Внутренние переменные: ВремСписок — указатель на один из выходныхсписков. Используется для переключения между списками синонимов,гипонимов и т.д.; Строка, Шаблон, Pipe — логические переменные,выступающие в роли флагов; ВрСтрока — строковый массив дляхранения промежуточных результатов; РезСтрока, ВрСтрока2, Символ—строки для хранения промежуточных результатов.Алгоритм «Разбор_Wiki_Статьи»нач209Значения := Синонимы := Гипонимы := Гиперонимы := ВремСписок :=пустой_списокi := 0;пока МасСтрок[i] <> nil циклесли МасСтрок[i] <> пустая_строкаесли МасСтрок[i].содержит ("=== Значение ===")ВремСписок := Значенияиначе если МасСтрок[i].содержит ("=== Синонимы ===")ВремСписок := Синонимыиначе если МасСтрок[i].содержит ("=== Гипонимы ===")ВремСписок := Гипонимыиначе если МасСтрок[i].содержит ("=== Гиперонимы ===")ВремСписок := Гиперонимыиначе если МасСтрок[i].содержит ("==") выходесли МасСтрок[i].начинается_с ("#")ВрСтрока = пустой_массивесли МасСтрок[i].содержит("{{пример")ВрСтрока:=МасСтрок[i].подстрока(0,МасСтрок[i].позиция_строки("{{пример")).посимвольная_разбивкаиначеВрСтрока := МасСтрок[i].посимвольная_разбивкакесликеслиСтрока := Шаблон := Pipe := ложьРезСтрока := ВрСтрока2 := пустая_строка210j := 0пока ВрСтрока[j] <> nil циклСимвол := ВрСтрока[j]если Символ == "#" или Символ == "" продолжить цикл соследующего шагаесли Символ == "{"Шаблон := истинаесли ВрСтрока[j-1] =="]" или ВрСтрока[j-1] =="}"РезСтрока.добавить(" ")продолжить цикл со следующего шагакеслиесли Символ == "["Ссылка := истинаесли ВрСтрока[j-1] =="]" или ВрСтрока[j-1] ==РезСтрока.добавить(" ")продолжить цикл со следующего шагакеслиесли Символ == "]"Ссылка := ложьесли Шаблон == ложьРезСтрока.добавить(ВрСтрока2)ВрСтрока2 := пустая_строкакеслипродолжить цикл со следующего шагакесли"}"211если Символ == "}"Шаблон := ложьесли Pipe == истинаРезСтрока.добавить(ВрСтрока2)ВрСтрока2 := пустая_строкаPipe == ложьиначеВрСтрока2 := пустая_строкакеслипродолжить цикл со следующего шагакеслиесли Символ == "|"Pipe := истинаесли Ссылка == истина ИЛИ Шаблон == истинаВрСтрока2 := пустая_строкакеслипродолжить цикл со следующего шагакеслиесли Ссылка == истина ИЛИ Шаблон == истинаВрСтрока2.добавить(Символ)продолжить цикл со следующего шагакеслиесли Ссылка == ложь И Шаблон == ложьВрСтрока2.добавить(Символ)212кесликциклесли РезСтрока <> "" И РезСтрока <> "uk"ВрСписок.добавить (РезСтрока)кесликеслиi := i+1кциклконАлгоритм построения множества ExtSet для запросов о достижении целейВнешняя спецификация алгоритма «Расширение_В_ДЦ»АлгоритмНазначение:предназначендляпостроениямножествасемантически преобразованных запросов ExtSet для запросов о достиженияхцелей.

Характеристики

Список файлов диссертации

Математическое моделирование и программная реализация семантического преобразования поисковых запросов
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее