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


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

Работа №142513

Тип работы

Бакалаврская работа

Предмет

прикладная информатика

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

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


Введение 3
Постановка задачи 5
1. Обзор предметной области 6
1.1. Текстовый редактор 6
1.2. Аналоги 7
1.3. Jetpack Compose и Compose Desktop 12
1.4. Kotlin Multiplatform 14
1.5. Grazie 15
2. Разработка редактора 16
2.1. Архитектура 16
2.2. Пользовательский интерфейс 18
2.3. Взаимодействие со встроенными сервисами 22
3. Компонент CoreTextField в Jetpack Compose 25
3.1. Состояние компонента и отрисовка текста 25
3.2. Оптимизация отрисовки текста 26
3.3. Изменения в API CoreTextField и BasicTextField 28
4. Работа с текстом 30
4.1. Документная модель 30
4.1.1 Определение 30
4.1.2 Внешний вид элементов документной модели в редакторе 31
4.1.3 Экспорт в форматы Markdown и LaTeX 32
4.2. Класс TextState 34
4.3. Отрисовка результатов анализа 36
Заключение 39
Список литературы 40

С момента появления персональных компьютеров пользователи работа­ют с текстовыми файлами: создают, сохраняют и редактируют их. Для работы с текстовыми файлами были созданы текстовые редакторы — программы, предоставляющие возможность работы с текстом в интерактивном режиме.
С развитием технологий и появлением языков разметки функциональ­ность текстовых редакторов расширялась для упрощения работы с новыми форматами файлов.
Существуют редакторы не только для работы с естественными языками, но и с языками программирования. Для языков программирования разраба­тываются так называемые редакторы программ. Редакторы программ обычно входят в состав интегрированных сред разработки — программных средств, используемых программистами для разработки программного обеспечения. Редакторы программ являются более продвинутыми в сравнении с редакто­рами для текстов на естественном языке. Языки программирования обладают формальным набором синтаксических, лексических и семантических правил, по коду можно построить дерево абстрактного синтаксиса, и поэтому стано­вится возможным выполнение следующих задач:
• проверка наличия ошибок до компиляции программ
• разбиение на синтаксические конструкции для создания удобной под­светки кода
• автодополнение названия функции или другой конструкции языка на основе первых введенных символов
Открытия в области обработки естественных языков сегодня позволяют создавать модели машинного обучения, способные выполнять различные дей­ствия над естественными текстами [1]: разбивать на предложения, выделять термины или морфемы, проверять орфографию и пунктуацию, производить перевод на другой язык, генерировать новый текст и так далее. Стало возмож­ным работать с естественными текстами схожим с языками программирова­ния образом. Однако существующие текстовые редакторы не предоставляют возможность простого внедрения таких моделей, потому что они проектиро­вались без учета возможности сложной обработки текста.
Создание редактора, способного внедрять сервисы, обрабатывающие естественный текст, позволит людям без опыта в программировании полу­чить редактор с нужной им проверкой текста. Копирайтеры, журналисты, редакторы, писатели и другие люди, профессия которых связана с написани­ем текстов, получат возможность ускорить и автоматизировать свою работу, так как у них будет доступ к результатам анализа текста в самом редакторе.
Стоит также отметить, что многие современные редакторы являются кроссплатформенными и позволяют пользователям редактировать файлы с разных устройств: телефонов, планшетов, браузеров и т.д. Поэтому возмож­ность работы редактора на разных платформах станет отдельным преимуще­ством.


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

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

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


В рамках работы был проведен обзор аналогов как среди редакторов текста, так и среди редакторов программ. Было выявлено, что они либо не решают поставленную задачу, либо предоставляемые ими возможности яв­ляются неудобными для конечного пользователя. Для реализации мульти- платформенного редактора была выбрана технология Kotlin Multiplatform. Реализованный редактор доступен на следующих платформах: MacOs, Linux, Windows, Android. Интерфейс для первых трёх платформ был реализован с использованием фреймворка Compose for Desktop, а интерфейс для Android и общая для всех платформ функциональность и компоненты интерфейса были реализованы с помощью фреймворка Jetpack Compose. Архитектура ре­дактора, таким образом, состоит из общего модуля и модулей для Android и десктопа, её диаграмма представлена в 2.1.
Основная функциональность редактора — возможность встроить соб­ственный сервис для проверки грамматики и автодополнения. Реализация ин­терфейса TextAnalyzer дает пользователям возможность встроить собствен­ные сервисы. Руководство для встраивания сервиса также приведено в репо­зитории [36].
Дополнительно редактор позволяет экспортировать текст в такие из­вестные форматы как Markdown и LaTeX, а так же есть возможность откры­вать ссылки, написанные в редакторе, в браузере.
В будущем планируется расширить множество элементов, поддержива­емых документной моделью. Вдобавок хочется предоставить пользователям возможность дополнительно декорировать текст (менять размер шрифта и его тип, и тому подобное), а также позволить редактировать языки разметки и анализировать их в самом редакторе.
Реализация редактора представлена в репозитории [36].


[1] Joseph S. R. et al. Natural language processing: A review //International Journal of Research in Engineering and Applied Sciences. - 2016. - Т. 6. -№. 3.-С. 207-210.
[2] Воройский Ф.С. Информатика. Новый систематизированный толковый словарь-справочник. (Введение в современные информационные и теле­коммуникационные технологии в терминах и фактах). 3-е изд, 2003, стр. 368
[3] Windows Notepad. URL: https://www.microsoft.eom/ru-ru/p/
windows-notepad/9msmlrh6lzf3 (дата обр. 25.04.2022).
[4] CKEditor. URL: https://ckeditor.com/ckeditor-5 (дата обр. 25.04.2022).
[5] IntelliJ IDEA. URL: https://www. jetbrains.com/ru-ru/idea (дата обр. 25.04.2022).
[6] Текстовый редактор Google Docs. URL: https://www.google.ru/intl/ ru/docs/about (дата обр. 25.04.2022).
[7] Текстовый редактор Notepad++. URL: https://notepad-plus-plus.org (дата обр. 25.04.2022).
[8] ИСР Visual Studio Code. URL: https://code.visualstudio.com (дата обр. 25.04.2022).
[9] Плагин DSpellCheck для Notepad++. URL: https://github.com/ Predelnik/DSpellCheck (дата обр. 05.05.2022)
[10] Форум для Notepad++. URL: https://community.notepad-plus- plus.org/ (дата обр. 05.05.2022)
[11] Code Spell Checker (plugin for VS Code).
URL: https://marketplace.visualstudio.com/items?itemName=
streetsidesoftware.code-spell-checker (дата обр. 25.04.2022).
[12] VS Code API. URL: https://code.visualstudio.com/api/references/ vscode-api (дата обр. 25.04.2022).
[13] Spell and Grammar Checker. URL: https://github.com/microsoft/ vscode-spell-check (дата обр. 25.04.2022).
[14] Платформа Android. URL: https://www.android.com/intl/ru_ru/ (да­та обр. 05.05.2022)
[15] Smyth N. Jetpack Compose Essentials: Developing Android Apps with Jetpack Compose, Android Studio, and Kotlin. (n.p.): Payload Media, Incorporated, 2022.....36


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



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


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