Компьютерная лингвистика в образовательной среде
Применение корпусной лингвистики в области преподавания иностранного языка. Методология создания и разметки корпуса текстов. Проектирование упражнения для изучения политических терминов. Разработка программы для автоматизированного извлечения текстов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.10.2016 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
Содержание
Введение
Глава 1. Корпусная лингвистика. Разработка корпуса политических статей
1.1 Корпусная лингвистика и её применение в области преподавания иностранного языка
1.2 Методология создания и разметки корпуса текстов
1.2.1 Автоматизированное извлечение текстов для корпуса политических статей сайта Lenta.ru
1.2.2 Обработка и разметка полученной коллекции текстов. Грамматический парсер MYSTEM (библиотека «pymystem3» для языка программирования Python)
Выводы по первой главе
Глава 2. Проектирование и разработка упражнения для изучения политических терминов
2.1 Проектирование упражнения. Создание списка основных политических терминов. Поиск и разметка терминов в полученном корпусе
2.2 Разработка упражнения. Метод «расстояние Левенштейна или Дамерау - Левенштейна» как основа для упражнения
Выводы по второй главе:
Глава 3. Создание и ввод в эксплуатацию сайта, как платформы для веб-приложения
3.1 Проектирование и разработка сайта
3.1.1 Средства разработки
3.1.1.1 Язык гипертекстовой разметки HTML
3.1.1.2 Язык разметки XML
3.1.1.3 Каскадные таблицы стилей CSS
3.1.2 Веб-дизайн, создание интерфейса
3.1.2.1 Шаблоны сайта Bootstrap3
3.1.3 Адаптация страниц под все виды мониторов (включая мобильную версию) и браузеры
3.2 Создание веб-приложения с помощью микрофреймворка Flask
3.3 Структура сайта
3.4 Создание веб-сервера
3.4.1 Адаптация сервера под файлы с расширением .py (программы на языке Python)
Выводы по третьей главе
Заключение
Список литературы и источников
Приложения
Введение
Современная система образования все чаще приветствует внедрение информационных технологий, особенно это касается сферы преподавания языка - постоянно изменяющейся системы. Электронные учебники и приложения, поддерживающие функцию мгновенного редактирования и обновления материала, способны отразить современное состояние языка и содержат всю необходимую базу для самостоятельного и дистанционного изучения.
Отдельное внимание уделяется приложениям, построенным на корпусе текстов. Исследователи пишут статьи, выступают с докладами на всевозможных конференциях не только в сфере прикладной лингвистики, но и в области преподавания иностранных языков. За последнее время значительно возросло количество как печатных, так и электронных материалов со знаком corpus-based («создано с использованием корпусных данных»).Квашнина О.С. «Вопросы использования корпусных данных и методов в обучении иностранным языкам» 2013г. С.81 Как пишет в одной из работ профессор кембриджского университета, лингвист М. Маккартни, корпусная лингвистика, как пример использования инноваций в сфере языка, способна привнести значительные перемены в представление о роли преподавателя, об образовательном процессе, а так же о культурном контексте обучения.O'Keeffe A., McCarthy M., Carter R. «From Corpus to Classroom: Language Use and Language Teaching» 2007г. С13.
Что не менее важно, подобные технологии позволяют создавать программы, направленные не только на изучение языка в целом, но и дают возможность затронуть более узкую сферу и сконцентрировать внимание на отдельных её частях (например, терминология политической журналистики). Именно выделение слов определенной тематики и пример их использования в контексте помогают ускорить и облегчить процесс усвоения и понимания новых слов, особенно у иностранных студентов. Как писал в своих трудах известный философ и лингвист Л. Витгенштейн: «Значение слова - это его употребление в языке".
Актуальность данного исследования обусловлена отсутствием достаточного количества современного обучающего материала в электронном виде у студентов-лингвистов, изучающих русский язык как иностранный (его более узкую сферу: политическую терминологию (продвинутый уровень)), отечественных и иностранных журналистов, проявляющих интерес к русскоязычным электронным изданиям.
Над проблемой построения и применения корпусных технологий в сфере обучения и создания электронной образовательной среды уже работали такие отечественные и зарубежные ученые, исследователи как: Захаров В.П., Квашнина О.С., М. Маккартни, О'Кэффи А.,
Фернандес-Диас Г.,Нагель О.В., Д. В. Сичинава, Соснина Е.П. и др.
Объект исследования: корпусная лингвистика, методология создания корпуса текстов; технология создания приложений в сфере обучения (упражнения для изучения языка: терминология).
Предмет исследования: исследовательская база по созданию корпуса текстов и учебных приложений. Работы в области автоматизированного извлечения информации (informationretrieval (IR)), естественной обработки языка (NaturalLanguageProcessing(NLP)), статьи на тему «политика» с сайта Lenta.ru (Россия, мир).
Цели выпускной квалификационной работы: создание, обработка и разметка корпуса политических статей, моделирование и ввод в эксплуатацию упражнения на базе полученного корпуса.
Исходя из целей данной работы, были поставлены следующие задачи:
- проанализировать литературу, посвященную компьютерной лингвистике, в частности методику создания корпуса текстов и его применение в образовательной среде;
- написать программу на языке программирования Python, позволяющую автоматически пополнять корпус новыми и уже размеченными с помощью программы Mystem статьями на тему «политика» с сайта Lenta.ru;
- изучить технологию создания электронных приложений, выбрать наиболее подходящий формат для данного исследования;
- спроектировать и написать программу, используя работы в области NLP, позволяющую создать упражнение на базе полученного ранее корпуса статей;
- ввести упражнение в эксплуатацию;
- сделать выводы о проделанной работе.
Методы исследования: поиск и теоретический анализ литературы в области обработки и использования корпуса текстов в образовательных целях; анализ и подбор наиболее подходящих инструментов для создания электронного обучающего приложения.
Структура исследования, обусловленная поставленными целями и задачами, включает в себя: введение, три главы, заключение, список литературы и источников, приложение.
лингвистика программа политический термин
Глава 1. Корпусная лингвистика. Разработка корпуса политических статей
1.1 Корпусная лингвистика и её применение в области преподавания иностранного языка
«Корпусная лингвистика - раздел компьютерной лингвистики, занимающийся разработкой общих принципов построения и использования лингвистических корпусов (корпусов текстов) с использованием компьютерных технологий». [Захаров В.П., 2005 :3] Под корпусом текстов обычно понимают «унифицированный, структурированный и размеченный массив языковых (речевых) данных в электронном виде, предназначенный для определенных филологических и, более широко, гуманитарных изысканий». [Захаров В.П., 2003 :4 ] Корпус текстов может также рассматриваться «как сложно организованная онтология речевой деятельности, отражающая в себе все жанровое разнообразие представленного в нем рода словесности».
[Рыков В.В., 2003 :12] Он содержит в себе некую систему, позволяющую управлять как текстовыми, так лингвистическими данными, последнее время она все чаще носит название «корпусный менеджер» (или корпус-менеджер); англ. corpusmanager - специализированная поисковая система, включающая некоторые программные средства, обеспечивающие поиск данных по корпусу, сбора статистической информации и предоставляющая результаты в удобном формате.
Корпусная лингвистика как наука, направленная на анализ и создание корпусов текстов, зародилась в конце 60-х гг. в Западной Европе и США. Первый масштабный корпус на электронном носителе BrownCorpus был создан в Брауновском университете США в 1963г. учеными У. Френсисом и Г. Кучера. В его состав входили пятьсот прозаических печатных текстов (примерно по две тысячи слов), отражающих американский вариант английского языка. В корпусе было представлено пятнадцать наиболее известных жанров печатной англоязычной прозы в Северной Америке, он содержал материалы первичной статистической обработки - словари (частотный и алфавитно-частотный), всевозможные статистические распределения. Данный корпус вызвал волну всеобщего интереса и дискуссий в вопросах отбора текстов и соответствующих исследовательских задач, возникающих при их анализе.
В середине 80-х гг. с ростом компьютерных технологий, корпусная лингвистика начинает бурно развиваться, предвещая появление корпусных проектов более внушительного масштаба, на разных языках и для разных исследовательских целей.О.В. Нагель «Корпусная лингвистика и ее использование в компьютеризированном языковом обучении» 2008 г. 53-54С. Что касается английского языка, в это время были созданы такие корпуса, как Ланкастерский корпус (Lancaster-Oslo-BergenCorpus, LOB), Международный корпус английского языка (InternationalCorpusofEnglish), Британский национальный корпус (BritishNationalCorpus), лингв. Банк английского языка (BankofEnglish) и др. В области русского языка создается Уппсальским корпус, планируется и постепенно начинается работа по созданию НКРЯ (Национального корпуса русского языка).
Окончательно корпусная лингвистика как отдельный раздел науки в области языка сформировалась только в первой половине 1990-х гг. Тесно взаимодействуя с компьютерной лингвистикой, она не только использует основные её достижения, но и обогащает её посредством всевозможных исследований на базе корпуса.
Основные причины создания корпусов:
1) Большой (репрезентативный) корпус обеспечивает типичность данных и позволяет представить весь спектр языковых явлений;
2) исследуемые данные в корпусе представлены в контексте, их естественное употребление позволяет сделать наиболее объективные выводы;
3) хорошо обработанные и размеченные массивы текстов могут неоднократно использоваться при проведении различных исследований.
Главная особенность корпуса состоит в возможности построить конкорданс - список всех употреблений исследуемого слова в контексте с ссылками на источник. Также, корпус используют для всевозможных статистических данных о речевых или языковых единицах. Он позволяет отследить их частотность, грамматические категории, лексемы, понаблюдать за сочетаемостью тех или иных лексических элементов и т.д. Полученный массив текстовых данных в определенный период времени предоставляет возможность изучить процессы, касающиеся изменения лексического состава языка, позволяет проанализировать лексико-грамматические характеристики у разных авторов и в разных жанрах. Корпусы также могут быть использованы при написании разнообразных словарей. Данные корпусов могут быть основой для построения и уточнения грамматик, а также быть использованы в образовательных целях. Захаров В.П. Корпусная лингвистика: Учебно-метод. пособие. - СПб., 2005. - 2, 5 с.
Относительно типологии корпусов текстов, в прикладной лингвистике их разделяют на 6 категорий:
1) Исследовательские-предназначены для поиска и анализа аспектов функционирования языковой системы;
2) Иллюстративные, или учебные (LearnerCorpus) - созданы для наглядного представления лингвистических фактов, позволяют объяснить те или иные процессы в языке;
3) Мониторные-используются для исследования динамики языка, позволяют сделать контент-анализ различных тематических или корпусов различных жанров (например: корпус публицистики);
4) Статические-предоставляют данные о стиле (например: авторский корпус или корпуса писателей);
5) Мультимедийные -содержат в себе не только текстовые данные, но и предоставляют аудио-, видеоматериалы, иллюстрирующие живые процессы в языке;
6) Корпусы параллельных текстов- осуществляют сопоставительный анализ текста «оригинал - перевод», иллюстрируют основные механизмы и методы перевода. Данные корпуса представлены в двух видах: "оригинал-перевод/ы" (Unidirectional), "оригинал - перевод - обратный перевод" (Bidirectionalorreciprocal), упорядоченные параллельно.Соснина Е.П. «Корпусная лингвистика в обучении языкам» 2003.
В данной работе показан пример создания постоянно обновляющегося учебного корпуса.
Достижения в корпусной лингвистике все чаще находят применение и в сфере преподавания языков. В вузах по всему миру входит в практику использование корпусных данных в качестве наглядного материала как в лекциях, так и для самостоятельного изучения. На базе корпуса строятся всевозможные задания, проверочные работы и даже экзамены. Это решает одну из важнейших проблем в области преподавания: нехватка достаточного количества актуального и обновляющего материала, иллюстрирующего все процессы, происходящие в языке в определённом промежутке времени.
Корпусный подход является оптимальным для наглядного отражения таких аспектов языка, как географический, исторический, социальный; он передает основные изменения в языковой системе, а также оттачивает навыки использования в исследованиях корпусных данных.
Начиная с 90-ых г. исследователи активно использовали различные корпуса текстов для оценки реалий языка в его непосредственном употреблении. Подобные методы внесли значительный вклад в повышении качества языковых учебных пособий. На смену традиционных примеров, диктующих основные правила использования языка, приходят действительно актуальные примеры, взятые из реальных речевых актов людей (пример: устный корпус языка). Студенты, обучающиеся посредствам консервативных учебников, содержащих общепринятое описание письменного синтаксиса нередко не готовы воспринимать и понимать естественную речь, содержащую в себе нестандартные словоупотребления и сложные предложения.
В основном, использование корпусов является частью компьютеризированного языкового обучения (КЯО) (computerassistedlanguagelearning (CALL)). Современные системы образования (как в языковой, так в компьютерной сферах) все чаще внедряют так называемые NLP (naturallanguageprocessing) технологии, использующие «умные» методики в области обработки естественного языка. Они позволяют не только ответить на большинство вопросов в процессе изучения, но и способны дать оценку проделанной работе студента (например: анализ свободно оформленных эссе).
Бесспорно, использование компьютерных технологий значительно отличается от традиционных методов преподавания. Подобная подача материала позволяет фокусироваться на отдельных частях, привносит в процесс изучения некий элемент творчества.
Стоит отметить, что корпусные методы преподавания не всегда ограничены работой с компьютером. Результаты, полученные в ходе анализа корпусов (составление конкордансов) могут быть перенесены на раздаточный материал, использованы при составлении методического пособия, являться частью традиционного способа преподавания (на уроках, лекциях и т.д.). Особенно полезны современные печатные словари, базирующиеся на основе методик корпусной лингвистики (Oxford, Longman, Collins); книги, отражающие переосмысленную грамматику английского языка (LongmanGrammarofSpokenandWrittenEnglish, 2000 г.).McEnery T., Wilson A. «Corpus linguistics: an introduction. ». Edinburgh, 2001.
«В настоящее время корпусные методы зарекомендовали себя в мировой практике лингвистических исследований и преподавании иностранных языков. Эти методы сочетают в себе такие аспекты, как междисциплинарность, эмпирическая адекватность, аутентичность, гибкость и адаптация к конкретным задачам и целевым группам, возможность самостоятельной работы студента, применение метода «открытия» в обучении». [Нагель О.В, 2008: 10]
1.2 Методология создания и разметки корпуса текстов
1.2.1 Автоматизированное извлечение текстов для корпуса политических статей сайта Lenta.ru
Для создания полезного обучающего корпуса требуется постоянное пополнение коллекции текстов. Именно поэтому в ходе исследования было принято решение о написании программы, которая будет автоматически подгружать сразу несколько статей с заданного сайта, а также мгновенно обрабатывать и размечать их.
Из множества доступных интернет-изданий, в ходе анализа текстовой информации, структуры и формата страницы веб-сайта, выбор пал на одно из ведущих российских периодических интернет-изданий -«Lenta.ru», основанное при содействии Фонда эффективной политики
Антоном Борисовичем Носиком (1999г). Наличие мобильной версии с минимальной разметкой и постоянное обновление новостной ленты значительно упрощают создание корпуса и позволяют достаточно быстро наполнить его текстами различной тематики. В данном исследовании были использованны рубрики, посвященные российской и мировой политики.
Программа написана на высокоуровневом языке программирования -Python.Он позволяет подгружать достаточно большое количество различных библиотек, значительно расширяющих функционал создаваемой программы.
Так, при написании кода, извлекающего тексты с сайта, были использованны библиотеки [Приложение1]:
1) lxml.html- позволяет обрабатывать файлы html формата, а так же записывать текстовую информацию в подходящий для обработки формат (расширение файла xml);
2) requests - отвечает за запрос на сайте Lenta.ru для извлечения статей и необходимой метаразметки: заголовок, дата, автор статьи (при отсутствии автора, срабатывает подстановка универсального имени author='lenta.ru') и др.;
3) os.path - требуется для создания или подгруздки и дальнейшей записи уже созданного ранее файла.
Основные функции, используемые в коде:
- get_page(url) - функция запроса страницы в Интернете. Сайт Lenta.ru не позволяет делать запрос, используя встроенный «User-Agent». Как только запускается код, он посылает веб-серверу информацию о себе. Это текстовая строка - часть HTTP запроса, начинается с User-agent: или User-Agent:, и обычно содержит такую информацию, как версию и название приложения (частью которого является код), операционную систему компьютера и язык. Именно поэтому в программе приходится прописывать нового «User-Agent»: 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'. (http://www.useragentstring.com) Данная строка принимается сайтом и позволяет коду, находящемуся в локальном доступе, обращаться и извлекать данные со страницы.
- update(filename) - служит для обновления статей. Используя функции извлечения элементов по классу, представленных библиотекой lxml.html, мы можем позволить себе извлечь только те элементы, которые необходимы для создания корпуса:
- title - заголовок статьи,
- date - дата создания статьи,
- author - автор стати,
- body - сама статья.
Также, данная функция записывает полную ссылку <url> на данную статью, позволяющую присваивать каждому тексту особый идентифицирующий его «код». Именно хранение его в памяти дает возможность пропускать и не обрабатывать заново уже существующие тексты, что значительно сокращает время работы программы.
Стоит отметить, что информация извлекается только из заданных рубрик 'russia/politic/' и 'world/politic/'.
- load_articles (filename) - данная функция использует основные инструменты модуля «os.path».
os.path.isfile (path) -позволяет узнать существует ли данный файл.
Если файл отсутствует - функция вернет пустую базу статей. Если файл есть - он будет загружен.
1.2.2 Обработка и разметка полученной коллекции текстов. Грамматический парсер MYSTEM (библиотека «pymystem3» для языка программирования Python)
При извлечении текста из Интернета, он не имеет никой разметки и представлен в виде сплошного набора предложений. Для дальнейшего использования необходимо обработать полученный материал и перевести его в удобочитаемый формат для дальнейшей работы с ним. Именно поэтому в программе, позволяющей извлекать и сохранять статьи, создается функция:
save_articles (db,filename) - она служит для записи и сохранения полученных статей в файл с расширением «.xml». Использование модуля etree делает возможным разделение текста на части и составление некой иерархии.
article = etree.SubElement (root, "atricle") - основной элемент (корень), содержащий в себе несколько дочерних элементов:
Таким образом, на выходе мы получаем текст, разбитый на части: заголовок, дата, автор и непосредственно сама статья. Пример полученной разметки. Данная обработка текста позволяет обособить разные элементы статьи, а также создает теги, по которым можно легко обращаться к тем или иным частям. Следующий шаг в разметке полученных статей - морфологическая разметка полученных текстов.
Морфологическая разметка осуществляется при помощи бесплатного синтаксического анализатора MYSTEM (парсер или «синтаксический анализатор» -- компьютерная программа, которая принимает данные (как правило, предложения) на естественном языке в качестве входных данных и генерирует структуру вывода, подходящую для анализа)ElaKumar. «ArtificialIntelligence». 2008г. С.316.
Данная программа, написанная И.В. Сегаловичем и В.А. Титовым (программисты компании “Яндекс”), существует в свободном доступе. MYSTEM создана в среде Linux, но имеется возможность работы и в среде MicrosoftWindows (хоть и с некоторыми проблемами относительно кодировки командной строки).
Основу данной программы составляет алгоритм “Грамматического словаря русского языка” А.А. Зализняка. Для обработки текста, на входе требуется файл в формате HTML, XML или TXT (кодировка Windows), на выходе получаем файл с необходимым вариантом разбора:
{словоформа1, [грамматические признаки,лексема1]…}.Д. В. Сичинава «К задаче создания корпусов русского языка» 2002г.
Словоформы, отсутствующие в словаре, указываются со знаком “?” или приводится гипотеза (пример: мурелки{мурелка?}).Статья на сайте Yandex.ru«MYSTEM» https://tech.yandex.ru/mystem/
В данном исследовании используется внешняя библиотека для Python«pymystem3», предоставляющая весь функционал программы. Это позволяет избежать подключение внешних приложений и значительно ускоряет работу с текстами.
При импортировании модуля «Mystem» появляется возможность разметить полученную коллекцию текстов. Первый шаг: определение леммы каждого слова. Такой подход позволяет настроить поиск слов по начальной форме, так, при дальнейшем поиске по статьям, будет учитываться не только словоформа. Второй шаг: полный грамматический разбор слова.
Данные разборы также записываются в .xml файл, являются дочерними от главного элемента <article> и имеют свои собственные теги <lemmas> и <analyze>..
Импорт модуля «json» позволяет перевести полученную библиотеку данных под тегом <analyze> в читаемый формат.
Хотя подобный разбор несовершенен и требует ручной обработки, на этапе применения корпуса в качестве базы для упражнения, ошибки никак не скажутся и не помешают адекватной работе программы.
Выводы по первой главе
Анализ теоретической составляющей данной главы позволяет сделать следующие выводы:
-Корпусная лингвистика набирает популярность и все чаще используется не только в исследовательской сфере, но и в области преподавания языка.
- Материалы для занятий, основанные на корпусных данных, отражающие всю глубину языка, позволяют разбирать не только простые случаи употребления слов, но и реальные языковые средства.
- Корпусный подход является оптимальным для наглядного отражения таких аспектов языка, как географический, исторический, социальный; он передает основные изменения в языковой системе.
Что касается практической части:
- В данной главе описывается процесс написания программы, которая позволяет создавать автоматически пополняющийся и само-обрабатывающийся корпус политических статей интернет-источника Lenta.ru.
1) Первая часть программы нацелена на сохранение и дополнение коллекции текстов;
2) Вторая часть включает: структурирование текста, разделение его на части, а также морфологическую разметку полученного корпуса.
Глава 2. Проектирование и разработка упражнения для изучения политических терминов
2.1 Проектирование упражнения. Создание списка основных политических терминов. Поиск и разметка терминов в полученном корпусе
После создания корпуса статей встает вопрос о применении его в образовательной среде. Разметка текста позволяет нам обращаться к отдельному слову, предоставляет его начальную форму. Это значительно упрощает нахождение и выделение в тексте ключевых политических терминов. Темрмин (от лат. terminus -- предел, граница) -- слово или словосочетание, являющееся названием некоторого понятия какой-нибудь области науки, техники, искусства и так далее. В отличие от слов общей лексики, которые зачастую многозначны и несут эмоциональную окраску, термины в пределах сферы применения однозначны и лишены экспрессии.Лопатин В. В., Лопатина Л. Е. Русский толковый словарь : 1997
На основании словаря-тезауруса политических ассоциаций «Лексикон власти» Н.Э. Гронской и Н.Ю.Русовой, терминологию можно разделить на 4 основных тематики:
«Вертикаль власти»: 1.Власть 2.Государство 3.Президент 4.Правительство 5.Премьер-министр 6.Государственная Дума 7.Депутат 8.Армия 9.Милиция 10.Губернатор 11.Мэр 12.Чиновник
«Выборы»: 1.Выборы 2.Кандидат 3.Предвыборная программа 4.Агитация 5.Партия 6.Оппозиция 7.Избиратель
«Полномочия власти»: 1.Закон 2.Конституция 3.Контроль 4.Бюджет 5.Оборона 6.Свобода слова 7.Цензура
«Образ власти»: 1. Патриотизм 2. Безопасность 3. Социальная защита 4. Привилегии 5. Коррупция 6. Бюрократия 7. Олигархи
Рубрика «Вертикаль власти» содержит в себе властную структуру общества, а также силы, направленные на охрану и поддержку названных структур. Категория «Выборы» -- формирование избирателями властной вертикали. «Полномочия власти» -- представление граждан о функциях избранной ими власти. Рубрика «Образ власти» --наиболее характерные черты нынешней власти и те ожидания, которые граждане с ней связывают.Н.Э. Гронская и Н.Ю.Русова «Словарь-тезаурус политических ассоциаций «Лексикон власти»» 2008г. С.8-9
Создав список данных терминов и поместив его в код извлечения и обработки статей, у нас появляется возможность моментального нахождения слова в тексте, сортировки и соотнесение статьи с той или иной категорией на моменте обработки в функции: save_articles(db,filename).
Происходит процесс создания нового тега -<categories>.
При дальнейшем использовании корпуса как части приложения, появляется возможность выбора тех или иных терминов для заучивания.
Исходя из уже проделанной работы, среди большого количества методик составления языковых упражнений («выбрать один из трех вариантов», «составить предложение из слов» и т.д.) предпочтение было отдано методу - «вставить пропущенное слово». Это позволяет не только запомнить сам термин, но и условия его употребления (контекст).
2.2 Разработка упражнения. Метод «расстояние Левенштейна или Дамерау - Левенштейна» как основа для упражнения
При проектировании упражнения встал вопрос о его реализации. Было необходимо найти такой метод, который не только соответствовал основным требованиям составления упражнений на заучивание терминологии, но и мог быть использован в коде на языке программирования Python.
Проанализировав работы в сфере обработки естественного языка, был выбран метод «расстояние Левенштейна» (также редакционное расстояние или дистанция редактирования), впервые он был упомянут в 1965 г. советским математиком В.И. Левенштейном.В. И. Левенштейн. «Двоичные коды с исправлением выпадений, вставок и замещений символов» 1965г.
Расстояние Левенштейна находит применение:
- при исправлении ошибок в слове при вводе текста, в процессе автоматического распознавания письменного текста или речи;
- в ходе сравнения текстовых файлов (за единицу в подобном анализе берется строка);
- в биоинформатике (сравнение хромосом, генов и белков).
Данное понятие основано на определении «редакционное предписание». Редакционное предписание - последовательность действий, необходимых для получения из первой строки второй кратчайшим способом. Набор действий, допустимый при изменении элементов, имеет следующие обозначения: D (delete) - удаление символа; I (insert) - добавление символа; R (replace) - замена символа; M (match) - совпадение символа.В. М. Черненький, Ю. Е. Гапанюк «Методика идентификации пассажира по установочным данным» 2012г.
Пример редакционного предписания (Таблица 1):
(Таблица 1)
Действие |
I |
M |
I |
M |
M |
R |
D |
|
Исходное слово |
М |
Г |
Л |
А |
||||
Результат |
С |
М |
У |
Г |
Л |
Ы |
Й |
Сумма всех действий кроме M и будет расстоянием Левенштейна. В данном примере дистанция редактирования равна 4.
Существует масса способов, при которых можно преобразовать одно слово в другое. Если выбран метод «расстояние Левенштейна», необходимо свести действия к минимуму.
В тех случаях, когда поиск того или иного слова производится в тексте, набранном с клавиатуры, вместо расстояния Левенштейна используется усовершенствованное расстояние Дамерау - Левенштейна.Damrau F. A. «Technique for Computer Detection and Correction of SpellingErrors» 1964.171P.
В своих исследованиях Ф. Дамерау показал, что наиболее часто совершаемая ошибка - транспозиция T(transposition) - перестановка двух соседних символов. При расстоянии Левенштейна количество действий при транспозиции будет равно 2, тогда как при корректировке Дамерау данное действие принимается за единичное расстояние.
Пример (Таблица 2):
(Таблица 2)
Действие (расстояние Дамерау - Левенштейна) |
I |
T |
M |
M |
R |
D |
||
Действие(расстояние Левенштейна) |
I |
R |
R |
M |
M |
R |
D |
|
Исходное слово |
С |
М |
У |
Г |
Л |
Ы |
Й |
|
Результат |
С |
У |
М |
Г |
Л |
Ы |
Й |
Основные недостатки данного метода в отношении слов и текстовых полей заключаются в следующем:
1) достаточно большие расстояния при изменении положения слова (частей слов) в тексте;
2) небольшое расстояние между совершенно разными короткими словами и значительная разница между достаточно длинными, но похожими словами.
Несмотря на представленные недочеты, в качестве упражнения данный алгоритм вполне соответствует нашим требованиям. Дистанция позволит отследить соответствие вставленного в текст термина с его оригиналом и вывести количество ошибок, допущенных при вводе (на сколько символов одно слово отличается от другого).
В настоящее время существует достаточно большое количество примеров реализации данного метода на языке программирования Python. Многие из них требуют подгрузки дополнительных библиотек. Чтобы избежать лишней перегрузки программы, предпочтение было отдано достаточно простому решению: [Приложение 2].
Адаптировав его под полученные данные, становится возможным создание полей ввода для занесения пользователем печатных слов, а на выходе - получение количества ошибок, что и будет дистанцией редактирования.
Выводы по второй главе:
В данной главе отражены основные этапы проектирования и создания упражнения для заучивания политических терминов:
1) Формирование списка основных политических терминов, разделение их на 4 категории: «Вертикаль власти», «Выборы», «Полномочия власти, «Образ власти».
2) Поиск и разметка слов в статьях корпуса политических статей. Сортировка их в соответствии с группой.
3) Выбор тематики упражнения был сделан в пользу вида «Вставить пропущенное слово», была разработана основная концепция задания.
4) Осуществление проектирования упражнения с использованием метода «Расстояние Левенштейна или дистанция редактирования». В данной части исследования были рассмотрены основные положения данного метода. Среди уже существующих вариантов реализации, был выбран наиболее емкий и соответствующий тематике упражнения вариант.
Глава 3. Создание и ввод в эксплуатацию сайта, как платформы для веб-приложения
3.1 Проектирование и разработка сайта
3.1.1 Средства разработки
3.1.1.1 Язык гипертекстовой разметки HTML
В Интернете сосредотачивается и передается достаточно большое количество информации. Возможность её распространения осуществляется за счет протоколов прикладного уровня, позволяющих пересылать гипертекстовую информацию, файлы, почту и т.д. Одним из популярных сервисов для передачи и хранения данных стал WorldWideWeb (WWW).
Всемирная Паутина (или WWW) - это большой объем информации, доступ к которым осуществляется посредством Web-браузеров. Данные технологии предоставляют возможность создавать страницы, связывать их друг с другом или с другими ресурсами в сети, используя при этом гиперссылки.
WWW базируется на "3 китах":
- URL (UniformRecourseLocator, Унифицированный указатель ресурса)
- HTTP (HyperTextTransferProtocol, Протокол передачи гипертекста)
- HTML (Hyper Text Mark-Up Language, Язык разметки гипертекста)
(http://www.w3.org/)
URL -индивидуальный адрес различных ресурсов в сети Интернет. Каждая страница уникальна, путь состоит из названия протокола - http, затем двоеточие и две дробные черты, имя сервера (например: politic.kwido.net), дробная черта "/" в качестве пути к ресурсу.
HTTP - протокол, осуществляющий распространение информации между компьютером и сервером, компьютером и клиентом. Как правило, пользователю необязательно знать особенности протокола, чтобы работать с информацией.
HTML (HyperTextMarkupLanguage, язык разметки гипертекста) задаёт структуру содержимого и его смысл, определяя такой контент как, к примеру, заголовки, абзацы или изображения. [Шей Хоу, 2016: 15]
Семантика HTML не что иное, как особый способ представления структуры информации при использовании соответствующих элементов. Код семантики служит для описания содержимого и не зависит от внешнего стиля и вида. Преимущества данного способа разметки - адекватное прочтение поисковой системой, компьютером или любым другим электронным ридером содержимого веб-страницы, а также разделение фрагментов контента для дальнейшей работы с ними.
Подробнее разберем элементы обработки информации в языке HTML:
<div> и <span> (существуют исключительно в целях стилизации).
Основная функция данных тегов - контейнер. Они не несут за собой смысла и глобального значения, однако используются как проводники стиля к содержимому контейнера.
- <div> является блочным элементом. Используется для обозначения большой группы информации, позволяя сконструировать макет и спроектировать дизайн веб-страницы.
- <span> строчный элемент. Используется для обозначения небольших групп текста внутри элемента <div>
Обычно данные элементы используются в совокупности с атрибутами class или id для стилизации страницы.
Текст является преобладающим видом информации на веб-странице. Именно поэтому у данной категории существует целый набор различных элементов для размещения и стиля. Наиболее популярные касаются таких частей, как заголовки, абзацы, жирное или курсивное выделение отдельных частей.
Заголовки (блочные элементы).
Имеют 6 различных рангов (<h1> - <h6>). Они помогают разделить содержимое на части и установить иерархию. Служат особыми индикаторами как для пользователей, так и для поисковой системы, определяющей содержание веб-страницы.
Необходимо соблюдать порядок использования тегов. Так, основной заголовок обязательно будет заключен в элемент <h1>. Каждый последующий уровень используется с семантическим смыслом, а не служит для выделения текста заголовка.
Абзацы. Определяются блочным элементом <p>. Следуют один за другим, помогают более наглядно структурировать текст, позволяя применять разные стили к отдельным его частям.
Жирный текст (<strong> или <b>). Существует для привлечения внимания к тексту.
<strong>используется для выделения «сильного» значения текста.
<b>служит для выделения незначительных, не заслуживающих внимания частей.
Курсивный текст(<em>или <i>). Расставляет особые акценты в тексте.
<em> - наиболее популярный вариант курсива. Применяется для сильного акцентирования.
<i> - используется для текста в кавычках, для передачи текста, написанного другим тоном.
Представленные выше элементы существуют для незначительной обработки текста. Что касается структуры («шапка», «статья», «подвал» и др.), здесь используется следующий набор элементов:
Достаточно продолжительное время за структуру страницы отвечали контейнеры <div> и <span>, передавая семантическое значение, но не отражая смысл разделяемых частей.
В 5 версию HTML были введены новые базовые элементы, отвечающие за структуру: <head>, <body>, <nav>, <article>, <section>, <aside> и <footer> и др. Они не имеют позиции или стиля , так как используются в качестве блочных элементов. Могут быть использованы неограниченное количество раз.
<head> Служит для обозначения верхней части какого-либо элемента (статьи, страницы и т.д.). Может содержать заголовок, вводный текст, а также навигацию, но стоит помнить, что для последнего существует отдельный элемент:
<nav> - блок ведущих ссылок на странице. Отображает исключительно главные разделы навигации. Внутри данного элемента могут быть всевозможные одноразовые ссылки, но их использование обязательно должно сопровождаться элементом <a>.
<body> Используется для обозначения общего раздела, может содержать в себе все «тело» сайта, включая заголовки. Функция данного элемента частично схожа с <div>, но имеет более глобальную направленность.Шей Хоу «Знакомство с HTML» 2016.
3.1.1.2 Язык разметки XML
XML - это расширяемый язык разметки (ExtensibleMarkupLanguage). Был разработан в соответствии с основными требованиями сервера WWW.
Является достаточно популярным языком разметки веб-страниц. Основные отличия XML от HTML - неограниченный набор элементов, которым можно задавать собственные имена и свойства.
Также, XML имеет некоторые полезные функции, отсутствующие в HTML , например:
- возможность обслуживания любого типа информации (текста, аудио, математических уравнений и др.);
- особая обработка информации (поиск, сортировка, фильтрация);
- поддержка создания иерархий (структурирование данных).
Документы с расширением xml могут быть валидными ("valid") или верно сформированными ("well-formed").
При создании верно сформированного документа, следует следовать следующим правилам:
- Все элементы должны быть ограничены некими «тэгами» вида <TAG />, он может передавать любой вид информации посредствам своих атрибутов. Тэг может быть пустым.
- Каждый вложенный элемент определяется тем элементом, частью которого он является.
- Элемент верхнего уровня присутствует только в одном экземпляре.
- Следует помнить, что все имена чувствительны к регистру.
Существует 3 способа отображения данного файла в браузере:
1) Язык CSS (CascadingStyleSheet) - каскадная таблица стилей.
2) Взаимодействие HTML-страницы и XML-документа.
3) Написание сценария. Данный пункт имеет такую же идею, как и в №2, но в данном случае, доступ к элементам осуществляется с помощью кода сценария JavaScript или VBScript.
Обычный документ XML содержит в себе 2 части: пролог и корневой элемент. Пролог представляет собой вводную часть, указывающую на версию XML и то, что это документ соответствующего расширения.
Также, XML-документ поддерживает вставку комментариев, также используемых и в HTML. Оформляются с помощью символов "<!-- … -->".
В данном теге поддерживается любой текст кроме "--".
XML-документ создается в любом текстовом редакторе. После сохранения файла с расширением «.xml», он будет открываться двойным щелчком в InternetExplorer. Людоговский А. «Синтаксис и основные понятия языка XML, создание валидных документов» 2007г.
3.1.1.3 Каскадные таблицы стилей CSS
Язык CSS отвечает за стиль в том или ином документе. Он используется для того, чтобы придать страницам на HTML -- фундаментальном языке WWW -- совершенный вид.
[МакфарландД. 2016: 7] Стили в данном языке представлены каскадом (сверху вниз), позволяющим добавлять или переписывать их. Происходит развитие таблиц стилей. Каждый добавленный на веб-страницу элемент может быть обработан инструментами CSS. Так, селекторы служат для присвоения отдельным элементам индивидуальных стилей (цвет, положение, размер). Они могут содержать как один показатель, так и в сочетании нескольких характеристик.
Селекторы взаимодействуют со значением атрибута (id или class), а также наименованием элемента ( <h1> , <р> и др.).
Основным их обозначением являются фигурные скобки {}. Они охватывают весь список стилей, применяемых к тому или иному элементу. Пример: селектор <p>- p { ... }
Свойства CSS:Шей Хоу «Знакомство с CSS» 2016.
Цвета: Что касается цвета в данном языке, - значения здесь определяются как цветовое пространство sRGB (стандартные красный, зелёный и синий). Все оставшиеся цвета образуются путем смешивания трех основных. Таким образом, мы получаем около миллиона цветов для окраски элементов на сайте.
На данный момент, используют 4 основных способа обозначения цвета sRGB в CSS: ключевые слова, шестнадцатеричная запись, значения RGB и HSL. Пример:
.class {
background: #800678;
}
.p {
background: #f10;
}
Размеры: Разные размеры в CSS служат разным целям. Так, есть два варианта реализации данного стиля - абсолютный и относительный, с соответствующими только им единицами измерения:
1) Абсолютные размеры: Это простейшие значения, привязанные к физическим единицам (дюймы, миллиметры, сантиметры). Но самая популярная единица измерения в компьютерной среде - пиксели (px):
p {
font-size: 10px;
}
Размер пикселя составляет примерно 1/96 дюйма. Но у данной единицы измерения присутствует небольшой недостаток - устройства с высокой и низкой плотностью пикселей могут отображать разные показатели.
2) Относительные размеры: Не являются фиксированными единицами измерения, существуя в зависимости от размеров другого объекта. Проценты обозначаются стандартным знаком %, что является одним из самых популярных среди относительных значений. Определяется в соответствии в размерностью другого объекта (например, 20% от ширины элемента p)
p {
width: 20%;
}
Единица em- определяется на основе размера шрифта какого-либо текста. Одна единица em эквивалентна размеру шрифта элемента. Например, если текст представлен в размере 10 пикселей, а width как 2 em, ширина будет равна 20 п. (10Ч2):
.body {
font-size: 10px;
width: 2em;
}
3.1.2 Веб-дизайн, создание интерфейса
3.1.2.1 Шаблоны сайта Bootstrap3
Веб-дизайн является одним из основных элементов в процессе создания сайта. Именно от него зависит, насколько удобно и комфортно пользователю будет при работе с информацией на той или иной странице.
Именно поэтому предпочтение в выборе стиля и общего вида сайта было отдано современной платформе Bootstrap3 (или TwitterBootstrap) -- свободному и доступному набору необходимых инструментов для создания сайтов и веб-приложений. Данные шаблоны, написанные на языке HTML и CSS, включают в себя оформление текста, различных форм, кнопок, блоков навигации и других компонентов веб-интерфейса, так же данный сервис обеспечивает поддержку JavaScript-расширения. (http://bootstrap-3.ru/index.php)
Преимущества Bootstrap 3:
- совместимость со всеми популярными видами браузеров (GoogleChrome, Safari, InternetExplorer, MozillaFirefox, YandexBrowser, MicrosoftEdge и Opera),
- гармоничный дизайн - соответствие стилей между отдельными элементами, грамотно проработанный графический интерфейс посредством центральной библиотеки,
- высокая скорость и масштабируемость - все динамические макеты масштабируются в соответствии с разрешением экрана без особых изменений в разметке страницы,
- открытый доступ ко всем элементам.
Платформа TwitterBootstrap3 является бесплатной как для коммерческого, так и для личного использования. Она содержит в себе открытые исходные коды, что позволяет осуществлять доступ для просмотра, изучения и изменения внутри программ.Шей Хоу «Знакомство с CSS» 2016.
После тщательного отбора шаблонов, предпочтение было отдано «Сarousel» - шаблону-слайдеру с внедрение элементов JavaScript. Это делает сайт удобным в использовании, придает ему соответствующий вид и открывает возможность для действительно творческого подхода при продумывании дизайна.
( Ссылка на шаблон: http://bootstrap-3.ru/examples/carousel/)
В соответствии с тематикой, были подобраны изображения, отредактированы основные поля шаблона. Стоит заметить, что слайдер сarousel присутствует только на главной странице сайта, так как несет в себе больше организационную функцию (ссылка на регистрацию, новостная лента и корпус).
3.1.3 Адаптация страниц под все виды мониторов (включая мобильную версию) и браузеры
Bootstrap использует самые современные разработки на языках CSS и HTML, именно поэтому необходимо проверить поддержку в разных ОС и в старых браузерах.
Для подобных целей существует большое количество сайтов, обеспечивающих прогрузку заданной страницы в выбранных операционных системах и различных браузерах. На выходе пользователь получает скриншот той страницы сайта, адрес которой был передан для обработки. Подобные возможности позволяют оценить качество дизайна и выявить основные недостатки для дальнейшей адаптации доработки.
Так, загрузив скриншоты главной страницы, мы видим небольшие ошибки в отображении элементов JavaScript, а также не совсем корректное отображение в мобильных версиях. Данный недочет исправляется небольшой корректировкой параметров полей слайдера. Остальные элементы прогружаются и отображаются исправно.
3.2 Создание веб-приложения с помощью микрофреймворка Flask
На данном этапе разработки мы уже имеем веб-сайт, наполненный определенным видом информации. Основная задача состоит в его конвертировке в веб-приложение. Веб-приложение (web application) - это любая программа, которая использует веб-браузер в качестве клиента. Приложение может быть в виде доски объявлений, поддерживающей только вход в гостевую книгу на сайте, или сложным, таким как текстовый процессор или электронная таблица.
"Клиент" - это приложение, используемое для ввода информации.
"Сервер" - это приложение, используемое для хранения информации. Daniel Nations «WebApplications. What is a Web Application?»2014.
Сейчас можно назвать получившийся сайт информационным, так как пользователь не может вмешаться в его работу, ему доступна лишь небольшая текстовая информация. БреттМакЛафлин«От Web-сайтов к Web-приложениям: Часть 1. Web-сайт или Web-приложение?» 2012. Необходимо привнести динамику, создать поля, позволяющие что-то найти, изменить, проверить и т.д.
Рассмотрим основные этапы создания веб-приложения:Пьюривал С. «Основы разработки веб-приложений» 2015
1. Установка текстового редактора SublimeText.: SublimeText (Sublime) -- популярный многофункциональный текстовый редактор, идеально подходящий для веб-разработки. Одно из его основных преимуществ - кросс-платформенность, он работает одинаково эффективно с Windows, Mac OS и Linux.
Большое количество инструментов и горячих клавиш в данной программе позволяют значительно ускорить работу над созданием и редактированием кода. (Скриншоты всех программа делаются именно в этом редакторе).
2. Установка инструмента разработки веб-приложения на языке Python. Flask -- наиболее подходящий микрофреймворк для создания веб-приложений на языке программирования, который используется в данном исследовании. “Микро”указывает на то, что Flask стремится придерживаться простого, но расширяемого ядра.
Установка Flask в систему осуществляется с помощью команды:
Теперь, при импортировании Flask в код, становится доступным большое количество инструментов обработки и использования информации.
3. Проектирование приложения. Определение основных задач.
Планируется, что данное приложение будет содержать не только упражнение по корпусу статей, но и выполнять другие задачи, продиктованные структурой и направлением сайта:
- в первую очередь, это оформление корпуса статей. Настройка поиска как словоформ, так и леммы запрашиваемого слова;
- фильтр статей по категориям. Генерация списка. Настройка гиперссылок;
- отображение выбранной статьи. Разметка полей страницы. Выделение жирным шрифтом политических терминов в тексте;
- реализация упражнения.
4. Разработка приложения. Прежде чем начать разработку приложения, необходимо подгрузить следующие элементы:
- непосредственное импортирование библиотеки Flask для дальнейшей работы с использованием инструментов данного каркаса;
- request - импорт встроенной переменной, отвечающей за текущий обрабатываемый запрос (поля ввода);
- render_template - данный метод импортируется для создания шаблонов. Для их разработки необходимо использовать метод render_template(). Достаточно просто передать имя шаблона в ключевые аргументы;
-re- регулярные выражения необходимы для поиска и разметки словоформ в статьях. Так как при первичной обработке текста выяснилось, что если в тексте присутствует слово, содержащее в себе лемму, выделение отображается некорректно. Например, в слове «политиком» выделяется только лемма данного слова «политиком».
Остальные библиотеки импортируются в соответствии с используемыми в коде частей из файла update.py [Приложение1]:
-os.path
-etree
-json
Также стоит упомянуть, что в коде используются декораторы @. Они указывают Flask, какие функции соответствуют заданной странице.
Основные функции [Прилажение3]:
- load_articles(filename):- также как и в файле извлечения и обработки статей, создает файл для записи извлекаемого текста по URL.
- distance(a, b): - данная функция отвечает за дистанцию редактирования и непосредственно за выполнение упражнения по статьям.
Далее следуют функции, принадлежащие исключительно задаваемой странице (с помощью декоратора @)
Подобные документы
Корпус текстов школьников в контексте корпусной лингвистики, его содержание и пополнение. Пунктуационная разметка текстов, классификация ошибок. Использование языка разметки 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