Тип работы:
Предмет:
Язык работы:


Поиск документов по математическим выражениям, представленный средствами языка MathML

Работа №32779

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы107
Год сдачи2019
Стоимость6500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
302
Не подходит работа?

Узнай цену на написание


Введение 4
1. Расширяемый язык разметки XML. Язык разметки MathML. ОБЗОР 6
1.1. XML - язык мета-разметки 6
1.2. Средства и основные приложения языка XML 16
1.3. Средства и основные приложения языка MathML 24
2. Деревья математических выражений языка MathML: их сходство и
различие 32
2.1 Преобразования математических выражений в Presentational MathML 32
2.2. Основные меры схожести между деревьями, а также
алгоритмы, вычисляющие их 36
2.3. Модель приложения языка MathML 39
2.4. Выбор средства разработки программного модуля 41
3. Разработка программного модуля, предоставляющего средства
поиска документов по математическим формулам 43
3.1. Создание консольного приложения на платформе .NET Core 44
3.2. Разработка прикладного программного интерфейса деревьев 45
3.3. Отображение XML-документов в деревья 64
3.4. Простой генератор лексиколизированных деревьев 69
3.5. Строковое представление деревьев 70
3.6. Интеграция внешних программ в приложение: парсер формул
MathML и программа реализующая алгоритм AP- TED 71
3.7. Сортировка данных и реализация словаря 74
3.8. Собираем всё вместе: простая поисковая машина ... 92
Заключение 104
Список использованных источников

Попытки найти информацию, удовлетворяющую основным потребностям пользователя, были ещё до появления первых ЭВМ. Первым шагом к построению целой системы поиска были библиотеки с их картотеками и каталогами. Затем, с появлением ЭВМ, появились новые возможности в организации поиска данных. Стали создаваться первые информационные поисковые системы. Сначала информационные поисковые системы выполняли поиск научной информации и литературы. Многие университеты и библиотеки использовали такие системы для обеспечения доступа к их журналам, научным статьям и книгам. Далее, в связи с появлением интернета и развитием вебтехнологий поисковые системы получили широкое распространение. Благодаря развитию технологий в области вычислительных сетей, стали возможными хранение и обработка больших данных. Из-за быстрого роста и громадного объема данных задача информационного поиска становится всё более востребованной. Появляются задачи семантического поиска, т.е. поиска документов не по ключевым словам и метаданным, а по содержимому [11].
Целью моей работы является изучение специального вида языка разметки XML - MathML, его приложения в сфере информационного поиска, а именно: поиск документов по формулам. Также анализ модели векторного поиска среди документов языка XML и возможности её применения для языка MathML.
Объектом исследования является информационный поиск в коллекции документов, написанный на специальном виде языка разметки XML - MathML. Предметом исследования являются сам язык MathML, модели векторного поиска XML-документ ов [6] и построенная на их основе система информационного поиска, её приложение к поиску по математическим формулам, а также алгоритмы определения меры схожести между содержимым двух XML-документов [1, 7, 8].
Для достижения обозначенной цели поставлен ряд задач:
1. Изучить спецификацию языка XML, затем MathML.
2. Ознакомиться с основной структурой поисковой системы.
3. Найти и проанализировать определения схожести между двумя документами.
4. Найти для каждого такого определения эффективный алгоритм.
5. Выбрать подходящее определение.
6. Смоделировать систему поиска на основе векторной модели поиска MathML документов по математическим формулам и выбранного определения схожести, и на её основе разработать программный модуль.
7. Выбрать подходящее средство разработки.
8. Оценить производительность и эффективность программного модуля.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В результате было реализовано приложение, использующее средство языка MathML, в частности, его древовидную форму. Приложение представляет из себя простую поисковую машину на основе векторной модели поиска, которая ищет документы в коллекции не по словам, а по математическим выражениям. В рамках разработки приложения были разработаны типы для решения ряда подзадач (LinkedTree, ArrayTree - представляющие структуру дерева для решения множества ряд задач на них, а также тип ArrayHeap, выполняющий сортировку данных по переданному ему делегату, инкапсулирующий указатель на функцию, и тип Counter, представляющий счётчик).
Сложность по времени для постройки индекса благодаря текущей реализации алгоритма AP-TED, занимает O(n2 * А), где N = количество документов в коллекции. В текущей реализации для представления разницы используется тип данных float. Кроме того, для определения стоимости операций вставки, удаления, переименования узлов дерева используется реализация интерфейса CostModel - StringUnitCostModel, возвращающая 1 для вышеупомянутых операций. Можно определить собственный тип (на языке Java), задающий свою модель стоимости операций, главное, чтобы он реализовывал интерфейс CostModel. Для этого понадобится модифицировать скачанный исходный код библиотеки и построить новый архив jar, заменяющий предыдущий.
Второе узкое место приложения - конвертация дерева в его строковое представление, занимающее сложность O(n). Если брать каждый узел дерева в качестве нового, то преобразование их всех в строку займёт O(n2).
Также из-за того, что тип ключа словаря (индексатора) является строкой и для реализации словаря используется нагруженное дерево, время обработки также пропорционально длине ключа.
Рекомендуется разработать хеш-функцию, создающую уникальное множество ключей для словаря.
На данный момент тип IndexBuilder, строящий индекс, возвращает конкретный тип индексатора - Trie. Для большей гибкости, можно создать интерфейс, определяющий методы класса Trie (собственные методы), указать, что тип Trie реализует данный интерфейс, и заменить возвращаемое значение метода ReadData экземпляра класса IndexBuilder на тип интерфейса (также потребуется изменить код класса Program).
Методы API деревьев нормально работают, если принимают в качестве параметра узел текущего экземпляра класса дерева (сами методы также являются методами экземпляра). Если им передать узел другого объекта дерева, то возможны ошибки в работе программы. Поэтому, для предотвращения подобных коллизий следует определить абстрактный класс AbstractTree, реализующий интерфейс IPositionalTree, задача которого всего лишь при вызове соответствующих методов API проверить, что переданный узел принадлежит текущему экземпляру класса (для проверки надо воспользоваться унаследованным методом GetHashCode (который можно переопределить)). Затем, всем неабстрактным классам, реализующих API деревьев, надо наследоваться от класса AbstractTree.
Что касается релевантности документов, то её значение получалось одинаковым для тех документов, у которых одинаковая древовидная структура (вложенность узлов). А те документы, у которых была большая разница в структуре по сравнению с деревом формулы введённой пользователем имели нулевую релевантность.



1. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.: Пер. с англ. - М.: Мир, 1979. -536с.
2. Ахо А. В., Хопкрофт Д. Э., Ульман Дж. Д. Структуры данных и
алгоритмы.: Пер. с англ.: Уч. Пос. - М.: Издательский дом “Вильямс”,
2000. - 384с.: ил. - Парал. тит. англ.
3. Елизаров А. М., Липачев Е. К., Малахальцев М. А. Веб-технологии для математика: основы MathML. Практическое руководство. - М.: ФИЗМАТЛИТ, 2010. - 192c. - ISBN'978-5-9221-1220-8.
4. Маннинг К., Рагхаван П., Шютце Х. Введение в информационный поиск.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2011. -528с.: ил. - Парал. тит. англ.
5. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. 4-е изд. - СПб.: Питер, 2013. - 896 с.: ил. - (Серия «Мастер-класс»).
6. Троелсен, Э. Язык программирования C# 5.0 и платформа .NET 4.5,
6- е изд.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2013. - 1312 с.: ил. - Парал. тит. англ.
7. Cobena G., Abiteboul S., Marian A. Detecting changes in XML documents. Proceedings of the18th International Conference on Data Engineering, San Jones, 2002, pp. 41-52. doi: 10.1109/ICDE.2002.994696
8. Lange C. Ontologies and languages for representing mathematical knowledge on the Semantic Web. //SEMANTIC WEB. - 2013. - Т.4. - №2. - С. 119-158. doi: 10.3233/SW-2012-0059
9. Pyshkin E., Ponomarev M. Mathematical Equation Structural Syntactical
Similarity Patterns: A Tree Overlapping Algorithm and Its Evaluation
//INFORMATICA-JOURNAL OF COMPUTING AND INFORMATICS. - 2016. - Т.40. - №4. -С.377-385
10. Pawlik M., Augsten N. Tree edit distance: Robust and memory-efficient
//INFORMATION SYSTEM. - 2016. - Т.56. - С.157-173. doi:
10.1016/j.is.2015.08.004
11. Trotman A., Jia X.-F., Geva S. Fast and effective focused retrieval. Proceedings of the 8th International Workshop of the Initiative for the Evaluation of XML Retrieval, Brisbane, 2010, Vol. 6203, pp. 229-241
12. Inorder Tree Traversal without Recursion // Geeksforgeeks.org: a computer science portal for geeks [Электронный ресурс] URL: https: //www. geeksforgeeks. org/inorder-tree-traversal-without-recursion/ (Дата обращения: 4.12.2018)


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2024 Cервис помощи студентам в выполнении работ