Компьютерная лингвистика в образовательной среде

Применение корпусной лингвистики в области преподавания иностранного языка. Методология создания и разметки корпуса текстов. Проектирование упражнения для изучения политических терминов. Разработка программы для автоматизированного извлечения текстов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.10.2016
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1) @app.route('/') - служит для загрузки главной страницы сайта,

2) @app.route('/cat/<cat_id>')- содержит функцию articles_list(cat_id):, служащую для разбиения извлекаемых их файла articles.xml статей по категориям.

3) app.route('/corpora', methods=['GET', 'POST']). Рассматриваемый декоратор содержит методы обращения к данной странице:

GET - браузер говорит серверу, чтобы он просто получил информацию, хранимую на этой странице, и отослал её. Это самый распространённый метод.

POST - браузер говорит серверу, что он хочет сообщить URL некоторую новую информацию, и что сервер должен убедиться в сохранении данных единожды. Обычно, аналогичным образом происходит передача из HTML форм на сервер данных.Мигель Гринберг «Документация на Flask (русский перевод)» 2016, С.17

Функция corpora() подсчитывает общее количество статей и их количество в отдельной категории. Также она обеспечивает подгрузку списка статей, в которых встречается слово, введенное в поисковое поле над главным полем всех страниц. При этом выводится как само слово, так и количество статей.

4) @app.route('/article/<article_id>'). Функция show_article(article_id) загружает и обрабатывает статью по её URL. Хотя пользователю доступно только тело статьи, её заголовок, автор и дата, обработка с помощью MYSTEM также подгружается на данную страницу в скрытое поле для разметки слов и поиска в статье.

5) @app.route('/ex/<article_id>', methods=['GET', 'POST']). Функция exercise(article_id) отвечает за реализацию упражнения. Прежде всего, здесь идет обработка текста на наличие терминов, затем каждое найденное слово заменяется полем ввода (input). На него передаются параметры «word» - заменяемое слово и «answer» - слово, которое ввел пользователь. Далее, с помощью кода дистанции редактирования, написанного в функции distance, идет сравнение и вывод количества ошибок.

Чтобы отобразить все элементы, прописанные в данном файле на страницах сайта, используются стандартные шаблоны подстановки Jinja2:

{% ... %} - Операторы,

{{ ... }} - Выражения,

{# ... #} - Комментарии.

3.3 Структура сайта

Структура сайта разработана в соответствии с основными требованиями к веб-приложению. (Рис.3) Содержит в себе 3 основные страницы (одна из которых находится в разработке).

Схема структуры сайта (Рис.3)

Общим для всех страниц является элемент «navbar» (navbar.html). Это поле в верхней части страницы, в котором отображаются ссылки на основные вкладки сайта: Exercises, Dictionary, Corpora, а также поиск по статьям.

Главной является страница Exercises, (index.html), именно на неё попадает пользователь при введении в браузер адреса сайта. Основные её компоненты:

- элемент JavaScriptотBootstrap: carousel. Является частью шаблона, представляет собой три постоянно сменяющие друг друга поля с картинками, небольшим описанием и кнопками, ведущими на определенные страницы сайта. (Данный элемент пока носит ограниченный функционал, так как в планах должен отвечать за регистрацию и новостную ленту сайта);

- поле, разбитое на четыре секции. Отвечает за основную составляющую сайта, а именно - разбиение терминов на 4 категории с дальнейшим переходом к списку статей, содержащих данные слова в любых формах, с помощью кнопки «Articles».

При нажатии на кнопку, соответствующей какой-либо категории, открывается страница «Articles», (articles.html)[Приложение 3], содержащая список заголовков статей данной тематики (статьи могут повторяться, так как содержат термины из разных категорий).

Далее, при переходе по ссылке, в поле сайты появляется страница «Article», (article.html, содержащая выбранную статью с размеченным заголовком, датой, автором и непосредственно самим текстом. Основным отличием от статьи оригинала с сайта Lenta.ru, является разметка политических терминов, выделение их жирным шрифтом. Также, в конце каждой статьи присутствует кнопка, содержащая ссылку на упражнение по данной статье.

При переходе по ссылке открывается страница, которая носит название Exercise, (ex.html). Здесь представлена выбранная ранее статья, за одним исключением: все слова, выделенные на предыдущей странице жирным шрифтом, заменяются полями ввода. Именно в них пользователь должен ввести слово. В конце статьи присутствует кнопка «Verify», которая выведет количество ошибок в каждом поле. К сожалению, при разметке данных полей возникает проблема с порядком, но индексация остается статичной, а значит, особых проблем с соответствием номера поля и результатами не возникает.

Следующая вкладка в поле «navbar» - Corpora, (corpora.html). Данная страница содержит постоянно изменяющиеся данные о количестве статей в корпусе, о составе каждой из категорий. На данную страницу выводятся результаты поиска по статьям. На данный момент список состоит только из заголовков, даты и автора (в планах - вывести контекст, в котором употребляется данное слово и количество вхождений).

Вкладка Dictionary на данный момент находится в разработке. Планируется интегрировать на данную страницу онлайн-переводчик, позволяющий не только узнать перевод слова, но и его значение.

3.4 Создание веб-сервера

Завершающий шаг в создании и введении в эксплуатацию сайта - выбор и настройка веб-сервера, принимающего HTTP-запросы от клиентов (веб-браузеров), и выдающий им HTTP-ответы: HTML-страницу, файлы, медиа и другие данные. Среди доступных серверов был выбран nginx [engine x] (создатель: Игорь Владимирович Сысоев)-- это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике Netcraftnginx обслуживал или проксировал 25,64% самых нагруженных сайтов в апреле 2016 года. (http://nginx.org/ru/)

Для работы с данным сервером был установлен графический клиент SFTP (SSH FileTransferProtocol) для Windows с открытым исходным кодом - WinSCP. Его основное назначение - безопасное копирование между компьютером и серверами, поддерживающими протоколы.

WinSCP позволяет совершать различные операции над файлами:

-загрузка,

-выгрузка,

-переименование (как файла, так и папки),

-создание папки,

-изменение свойств файлов и папок,

-создание символических ссылок и ярлыков.

Присутствует интерфейс, позволяющий осуществлять управление файлами на локальном компьютере пользователя.

(http://winscp.net/eng/docs/lang:ru)

3.4.1 Адаптация сервера под файлы с расширением .py (программы на языке Python)

Для того, чтобы на сервере можно было запустить файлы с расширением .py, необходимо выполнить несколько операций:

1) Для работы с виртуальным окружением Python и pip (установщиком программных пакетов), установим virtualenv с помощью следующей строки:

Данная команда создает виртуальное окружение и активирует его:

Promt теперь начинается с имени виртуальной среды.

2) Устанавливаем Flask:

Таким образом, появляется возможность подузить или СУЗИТЬ или сжать файлы и запустить их.

Встроенный веб-сервер Flask содержит встроенный веб-сервер, позволяющий запускать приложения. Основная проблема состоит в масштабировании, он становится непригодным для production.

Для решения данной проблемы есть Gunicorn.

3) Устанавливаем Gunicorn

Запускаем его:

update- имя python-файла (без расширения), .app- имя Flask-объекта (то же самое делаем с файлом flask_app.py).

Данный способ подходит для запуска программы через консоль. Чтобы Gunicorn запускался или перезапускался автоматически, используем supervisor.

Приложение помогает при аварийном прекращении программы (возобновляя работу), а также позволяет автоматически обновлять файлы без нажатия кнопки «reload».

4) Работа с Nginx.

Создаем новую конфигурацию сервера и сохраняем файл:

Создаем символическую ссылку для директории sites-enabled:

Проверяем конфигурацию на ошибки:

Пестерев В. «Разворачиваем Flask-приложение на Nginx, используя Gunicorn» 2015г.

Завершающий шаг: настройка автоматического обновления кода, извлекающего статьи с сайта (каждые 12 часов) с помощью программы-планировщика cron. Для этого прописываем следующую команду:

Теперь сайт готов к эксплуатации.

Выводы по третьей главе

Данная часть исследования посвящена проектированию, разработке и вводу в эксплуатацию сайта с веб-приложением.

На первом этапе были разобраны основные средства оформления и выведения на страницу разных типов информации. Идет краткое описание особенностей таких языков как HTML, XML, CSS.

Далее следует разработка дизайна сайта. Описывается пример использования готового слайдер-шаблона «Carousel» с бесплатного источника Bootstrap3 (TwitterBootstrap).

Он не только прост в использовании, так как содержит элементы JavaScript и имеет дружественный интерфейс, но и позволяет легко и быстро начать работать с информацией. Проходит анализ масштабируемости данного сайта.

Одним из самых важных моментов исследования в данной главе является процесс создания веб-приложения. Здесь рассматриваются основные определения данного вида приложений, их особенности и недостатки.

Разрабатывается код с использованием функций Flask, позволяющий управлять не только упражнением, но и другими активностями, доступными пользователям.

Далее представлена подробная структура сайта, где расписан функционал каждой страницы.

Завершающей частью является создание и подготовка сервера для восприятия файлов написанных на языке Python.

Заключение

Целью написания данной выпускной квалификационной работы являлось создание и введение в эксплуатацию упражнения, основанного на размеченном корпусе политических статей. Данное приложение нацелено на узкую сферу изучения русского языка, а именно на терминологию в области политической журналистики.

Социально-практическая значимость данной работы заключается в том, что в настоящее время существует достаточно мало электронных приложений в свободном доступе (особенно тематических) для изучения русского языка как иностранного. Данное упражнение может быть полезно как студентам, так и журналистам, изучающим русскоязычные СМИ.

В первом разделе проводится исследование сферы корпусной лингвистики, в частности её применение в образовательной сфере. Дается подробное определение термина «корпус текстов», рассматриваются основные виды корпусов, а так же методология создания и разметки коллекции текстов. Проводится извлечение, структурирование и морфологический анализ корпуса политических статей с сайта Lenta.ru.

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

Что касается категории упражнения, предпочтение отдано виду: «вставить пропущенное слово», именно поэтому в каждой статье интересующие слова заменяется полем ввода. Для упражнения используется метод «Расстояние Левенштейна или дистанция редактирования», позволяющий подсчитать на сколько символов ошибся пользователь при проверке своих знаний.

В третьем разделе проводится разработка сайта, как платформы для упражнения. Первая часть посвящена теории рассматриваемого вопроса: происходит разбор основных языков веб-программирования HTML, XML и CSS. Идет разработка дизайна сайта с помощью шаблонов Bootstrap 3, проводится проверка масштабирования и отображения элементов главной страницы на разных платформах и сайтах. Вторая часть главы описывает процесс создания веб-приложения, его основные функции и задачи. Третья часть - содержит краткое описание подключения и адаптации сервера под файлы с расширением .py.

Хотя основные задачи данного исследования выполнены, в процессе создания веб-приложения появились идеи для развития и совершенствования данной работы. Так, из-за достаточно большого количества различных статей, в планах - увеличение количества разнообразных упражнений, а также расширение круга политической терминологии. Что касается сайта, здесь в перспективе остается импортирование онлайн-переводчика и толкового словаря во вкладку Dictionary.

1)

Список литературы и источников

1) Мигель Гринберг «Документация на Flask (рус. перевод)» 2016г. 216 С.

2) Гронская Н.Э. и Русова Н.Ю. «Словарь-тезаурус политических ассоциаций «Лексикон власти»» 2008г. 279 С.

3) Захаров В.П. «Корпусная лингвистика». //Учебно-метод. пособие. - СПб., 2005г. - 48 С.

4) Захаров В.П. «Поисковые системы Интернета как инструмент лингвистических исследований»//Русский язык в Интернете: Сборник статей. - Казань: «Отечество», 2003. - С. 48-59.

5) Квашнина О.С. «Вопросы использования корпусных данных и методов в обучении иностранным языкам»//«Филологические науки. Вопросы теории и практики» В. № 8-2 (26) 2013г. С.81-83

6) Лопатин В. В., Лопатина Л. Е. «Русский толковый словарь» М. 1997г.

7) Людоговский А. «Синтаксис и основные понятия языка XML, создание валидных документов» 2007г.

8) МакфарландД. «Новая большая книга CSS» //ООО «Питер Пресс», СПб, 2016г. 716 С.

9) Мальцев А. «Bootstrap 3 - Введение» 2014. Интернет источник: http://itchief.ru/lessons/bootstrap-3/19-introduction-to-twitter-bootstrap-3

10) Нагель О.В. «Корпусная лингвистика и ее использование в компьютеризированном языковом обучении» //«Язык и культура»В. № 4, 2008 г. 53-58С.

11) Пестерев В. «Разворачиваем Flask-приложение на Nginx, используя Gunicorn» (перевод) 2015г. Интернет источник: https://habrahabr.ru/post/267097/

12) Ссылка на оригинал статьи: http://www.onurguzel.com/how-to-run-flask-applications-with-nginx-using-gunicorn/

13) Рыков В.В. «Корпус текстов как новый тип словесного единства» // Труды Междунар. семинара «Диалог-2003». М.: Наука, 2003. С. 15-23.

14) Сичинава, Д.В. «К задаче создания корпусов русского языка» // НТИ, сер.2, 2002, N 12 25--31c.

15) Соснина Е.П. «Корпусная лингвистика в обучении языкам».// тез. докл. 36-й научно-тех. конференции проф.-препод. состава УлГТУ - Ульяновск, 2003. Интернет ресурс: http://ling.ulstu.ru/

16) Фернандес-диас Г. «Корпус языка политики и его приложение к преподаванию языка» //"Политическая лингвистика" В. № 24 / 2008г.

17) Хоу Ш. «Знакомство с CSS» 2016. Интернет источник: https://webref.ru/layout/learn-html-css/getting-to-know-css

18) Хоу Ш. «Знакомство с HTML» 2016. Интернет источник: https://webref.ru/layout/learn-html-css/getting-to-know-html

19) Черненький В.М., Гапанюк Ю.Е. «Методика идентификации пассажира по установочным данным» // Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012, 30-39С.

20) Damerau F. A. «Technique for Computer Detection and Correction of SpellingErrors» // Communications of the ACM. 1964. Vol. 7. No. 3.

21) ElaKumar «ArtificialIntelligence»// InternationalPvtLtd, 2008. 480p.

22) McEnery, A.M., Wilson, A.«Corpus linguistics: an introduction» //Edinburgh : Edinburgh University Press.2001. 235 p.

23) O'Keeffe A., McCarthy M., Carter R. «From Corpus to Classroom: Language Use and Language Teaching» //Cambridge University Press, 2007. 315 p.

24) «MYSTEM» статья на сайте Yandex.ru Интернет ресурс: https://tech.yandex.ru/mystem/

25) Источники реализации алгоритма - "дистанция Левенштейна" Интернет ресурс:https://ru.wikibooks.org/wiki/Реализации_алгоритмов /Расстояние_Левенштейна#Python

Приложение 1

Приложение 1

Файл update.py

Приложение 2

Файл flask_app.py

Приложение 3

Файл articles.html

Размещено на Allbest.ru


Подобные документы

  • Корпус текстов школьников в контексте корпусной лингвистики, его содержание и пополнение. Пунктуационная разметка текстов, классификация ошибок. Использование языка разметки TEI для кодировки пунктуации. Обработка корпуса с помощью программы Интерробанг.

    дипломная работа [1,9 M], добавлен 08.11.2015

  • Место и роль компьютерной лингвистики в лингвистических исследованиях. Лингвистические средства, создаваемые и применяемые в компьютерной лингвистике. Современные интерфейсы компьютерной лингвистики. Перспективная задача компьютерной лингвистики.

    курсовая работа [28,5 K], добавлен 22.11.2009

  • Инструменты анализа академического стиля английского языка. Проектирование архитектуры портала для анализа и оценки стиля научных публикаций на основе методов корпусной лингвистики. Моделирование жизненного цикла системы и взаимодействия её компонентов.

    дипломная работа [2,4 M], добавлен 27.08.2017

  • Появление искусственных систем, способных воспринимать и понимать человеческую речь. Автоматическая обработка естественного языка. Анализ, синтез текстов. Системы автоматического синтеза. Проблема понимания, оживление текстов. Модели коммуникации.

    реферат [19,0 K], добавлен 02.11.2008

  • Компьютерная лингвистика - особая прикладная дисциплина. Когнитивный инструментарий компьютерной лингвистики, омонимичность его основных понятий. Использование компьютерных средств обработки языковых данных. Гипертекстовые технологии представления текста.

    реферат [37,2 K], добавлен 08.08.2010

  • Разработка алгоритма автоматического создания отзывов на русском языке с использованием лексико-синтаксических шаблонов. Процесс создания текста при помощи цепей Маркова. Принцип работы Томита-парсера. Применение автоматических генераторов текстов.

    курсовая работа [150,6 K], добавлен 27.09.2016

  • Базовые основы программы Prolog - языка и системы логического программирования. Работа с текстами и предложениями. Электронный казахско-русско-английский словарь. Дистанционный комплекс обучения государственному языку специалистов технического профиля.

    реферат [45,6 K], добавлен 15.09.2014

  • Определение понятия гипертекста. Основные части документа SGML. История создания стандартного языка разметки документов HTML. Отличия синтаксиса XHTML от HTML. RSS - семейство XML-форматов для описания лент новостей. Применение языка разметки KML.

    презентация [4,3 M], добавлен 15.02.2014

  • Морфологические анализаторы (морфологизаторы) на различных языках программирования. Анализ методов и технологий автоматической обработки ЕЯ-текстов. Разработка модуля графематического анализа и создания таблицы лексем. Программная реализация классов.

    дипломная работа [3,0 M], добавлен 06.03.2012

  • Компьютерная программа как последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Анализ стандартов перевода текстов компьютерных игр. Рассмотрение особенностей ИТ-перевода, примеры грубейших ошибок.

    реферат [65,5 K], добавлен 29.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.