Программная обработка текстов на естественном языке

Функциональные возможности, преимущества и недостатки существующих лингвистических процессоров. Проектирование интерфейса взаимодействия облачного хранилища с лингвистическим процессором и компонентов доступа к сервисам. Программный продукт IKVM.NET.

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

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

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

protected void ContentTable_RowCommand(object sender, GridViewCommandEventArgs e)

{

string objType = ContentTable.Rows[Convert.ToInt32(e.CommandArgument)].Cells[2].Text;

int objID = Convert.ToInt32(ContentTable.Rows

[Convert.ToInt32(e.CommandArgument)].Cells[3].Text);

...

// Загрузка и (или) удаление объектов

...

}

В этом событии аргумент CommandArgument используется для получения из таблицы типа скачиваемого/удаляемого объекта. Пример элемента управления GridView с настраиваемыми шаблонами для столбцов представлен на рисунке 3.3. Здесь пользователь выбрал функцию «Скачать» файл с названием «oplotnikova»:

Рисунок 3.3 Элемент управления GridView с настраиваемыми шаблонами

Как было сказано в начале главы, структура находящихся в хранилище объектов представлена в веб-приложении в виде дерева с помощью элемента управления TreeView. Для построения дерева был создан метод GetTree(), который выполняется при загрузке страницы, а также при добавлении/удалении объектов. Этот метод практически полностью состоит из конструкций «if-else» и оператора «foreach». Метод GetTree() полностью можно просмотреть в приложении Г. Код программы. На рисунке 3.4 показано, как выглядит дерево объектов после получения данных из хранилища и их структурирования.

Рисунок 3.4 Дерево объектов

Вывод: в главе «разработка программных компонентов» представлены основные моменты реализации программного продукта. Разработка каждого из трех компонентов (GATE API, взаимодействие с пользователем, взаимодействие с облачным хранилищем) описана в отдельном пункте. При создании модуля для GATE API использовался дополнительный инструментарий - программа IKVM, с помощью которой Java-библиотека GATE Embedded была конвертирована в .NET_библиотеку. Во время разработки компонента для взаимодействия с хранилищем использовался веб-сервис «User Service», осуществлен доступ к информации в хранилище, реализована возможность просмотра, удаления, загрузки объектов. Компонент для взаимодействия с пользователем - это веб-приложение, реализующее пользовательский интерфейс. Интерфейс создан по аналогии с проводником Windows - на левой панели находится дерево объектов, на правой панели пользователь может выполнять работу с каждым конкретным объектом. Для этого используется сторонний элемент управления - сплиттер от компании «Obout Suite».

Заключение

Данная работа описывает этапы создания компонентов прикладного уровня облачного хранилища корпусов текстов. Цель работы - реализация программных компонентов для доступа к сервисам лингвистического процессора при разработке облачного хранилища. Облачное хранилище - программный продукт, реализованный Р.Н. Бушуевым. Работа является частью большой системы компьютерной обработки естественного языка, которую создают четыре разработчика. На основе обзора и анализа наиболее популярных лингвистических процессоров было решено создавать компоненты прикладного уровня на основе лингвистического процессора GATE. Часть целой системы, описанная в данной работе, состоит из трех компонентов: модуль для взаимодействия с облачным хранилищем, модуль для GATE API и модуль для взаимодействия с пользователем.

Модуль для GATE API осуществляет доступ к лингвистическому процессору GATE при помощи подключения к библиотеке GATE Embedded, специально оптимизированной для использования в различных приложениях. Для реализации данного компонента использовался программный продукт IKVM, с помощью его инструментариев была выполнена конвертация Java-библиотеки GATE Embedded в библиотеку для платформы .NET, после чего GATE Embedded был внедрен в приложение.

Модуль для взаимодействия с облачным хранилищем осуществляет обмен информацией между хранилищем и остальными компонентами. Доступ к хранилищу получен путем использования веб-сервиса «UserService». Реализованы все необходимые функции для работы с данными: пользователю доступны просмотр, загрузка и удаление информации. Кроме этого, существует возможность скачивания файлов из хранилища на компьютер пользователя.

Модуль для взаимодействия с пользователем является веб-приложением и предоставляет интерфейс, с помощью которого конечный пользователь системы использует, изменяет и добавляет информацию, существующую в хранилище, выполняет семантическую аннотацию документов. Веб-приложение реализовано технологией ASP.NET Web Forms, при проектировании интерфейса наряду со стандартными элементами управления использовались сторонние элементы от компании «Obout Suite».

Таким образом, во время работы изучена информация о лингвистических процессорах, рассмотрены наиболее популярные их разработки. Использован инструмент ikvmc для конвертации Java-библиотеки в .NET-библиотеку. Изучены и применены на практике возможности использования веб-сервисов, спроектирован и реализован интерфейс приложения.

Результаты работы представлены на конференции «Математика и междисциплинарные исследования - 2016», проходящей в рамках форума «Математика и глобальные вызовы XXI века», посвященного столетию Пермского государственного национального исследовательского университета и опубликованы в статье «Система для обработки корпусов текстов» [20].

Библиографический список

1. Андреев А.М., Березкин Д.В., Брик А.В., Смирнов Ю.М. Об одном способе построения синтаксического анализатора текстов на естественном языке. Известия ВУЗов «Приборостроение», 1997. Т. 40, № 5. С. 34--42.

2. Рыков В.В. Прагматически ориентированный корпус текстов. Таруса: Диалог_99, 1999.

3. Рыков В.В. Труды конференции по лексикографии // Корпусная лингвистика и лексикография - проблема репрезентативности. 2002.

4. Энциклопедия информационного общества. Глоссарий по стандартам платформы XML. URL: http://wiki.iis.ru/wiki/Аннотация_семантическая (дата обращения 15.04.2016).

5. The University of Sheffield. GATE - General Architecture for Text Engineering. URL: https://gate.ac.uk (дата обращения 04.04.2016).

6. Сокирко А.В. «АОТ» - Автоматическая Обработка. URL: http://www.aot.ru/history.html (дата обращения 04.04.2016).

7. Сокирко А.В. Берлинская и Бранденбургская Академия наук // Морфологические модули на сайте www.aot.ru. 2004.

8. Сокирко А.В., Толдова С.Ю. Сравнение эффективности двух методик снятия лексической и морфологической неоднозначности для русского языка (скрытая модель Маркова и синтаксический анализатор именных групп). М.: Интегрум-техно, 2005.

9. Скотт М. WordSmith Tools - Windows software for finding word patterns. URL: http://www.lexically.net/wordsmith/ (дата обращения 04.04.2016).

10. Cathleen K., Kutter A. How to get rid of the Noise in the Corpus: Cleaning Large Samples of Digital Newspaper Texts. University of Stuttgart, Dept of International Relations & European Integration International Relations Online Working Paper Series, 2011.

11. Wilcock G. Linguistic Annotation and Text Analytics. Univesity of Helsinki. 2009. С. 95.

12. Laurence A. AntConc HomePage. URL: http://www.laurenceanthony.net/software/antconc/ (дата обращения 04.04.2016).

13. Anthony L. Developing AntConc for a new generation of corpus linguists. Proceedings of the Corpus Linguistics Conference. UK: Lancaster University, 2013. С. 14-16.

14. Microsoft ASP.NET. Get Started with ASP.NET Web Sites. URL: http://www.asp.net/get-started/websites (дата обращения: 20.04.2016).

15. MSDN. Использование веб-служб ASP.NET. URL: https://msdn.microsoft.com/ru-ru/library/t745kdsh(v=vs.100).aspx (дата обращения 17.04.2016).

16. Microsoft DreamSpark. Бесплатные возможности для участников программы DreamSpark. URL: www.dreamspark.ru/ (дата обращения: 18.04.2016).

17. MSDN. Инструмент языка описания веб-служб. URL: https://msdn.microsoft.com/ru-ru/library/7h3ystb6(v=vs.100).aspx (дата обращения: 22.04.2016).

18. Obout software inc. High performance and simplicity #1 Suite for ASP.NET. URL: https://www.obout.com (дата обращения: 24.04.2016).

19. Cunningham H., Maynard D., Bontcheva K., et al.: Developing Language Processing Components with GATE Version 7 (a User Guide). The University of She?eld, 2013.

20. Бармина Е.И., Бушуев Р.Н., Котельникова Н.В., Ланин В.В., Плотникова О.А. Сборник докладов всероссийской научно-практической конференции молодых ученых «МАТЕМАТИКА И МЕЖДИСЦИПЛИНАРНЫЕ НАУКИ - 2016» // Система для обработки корпусов текстов. 2016. С. 245-251.

Основные обозначения и сокращения

1. СУБД - система управления базами данных.

2. XML - eXtensible Markup Language, расширяемый язык разметки.

3. WSDL - Web Services Description Language, язык описания веб-сервисов.

4. LGPL - GNU Lesser General Public License, ослабленная версия GPL, предназначенная для некоторых библиотек программного обеспечения.

5. IDE - Integrated Development Environment, интегрированная среда разработки.

6. API - Application Programming Interface, интерфейс программирования, интерфейс создания приложений.

7. JAR - Java ARchive, представляет собой ZIP-архив, в котором содержится часть программы на языке Java.

8. WCF - Windows Communication Foundation, программный фреймворк, используемый для обмена данными между приложениями, входящий в состав .NET Framework.

Приложение А

Рисунок А.1 Диаграмма вариантов использования разрабатываемой системы

Приложение Б

Рисунок Б.1 Диаграмма компонентов разрабатываемой системы

Приложение В. Скриншоты программы

Рисунок В.1 Главная страница приложения

Рисунок В.2 Выбор корпуса, в котором содержатся файлы

Рисунок В.3 Выбор файла без семантических аннотаций

Рисунок В.4 Выбор файла, у которого есть семантические аннотации

Приложение Г. Код программы

Г.1. Метод «GetUser», получает пользователя из базы данных по логину и паролю

private void GetUser()

{

UserServiceClient client = null;

try

{

client = new UserServiceClient();

_currentUser = client.GetByLoginPassword(USER_LOGIN, USER_PASSWORD);

}

catch (FaultException ex)

{

string exception =

string.Format("<script type=\"text/javascript\">alert({0});</script>", ex.Message);

Response.Write(exception);

}

finally

{

client.Close();

}

}

Г.2. Метод «GetTree», получает объекты из хранилища и выстраивает элемент управления TreeView

private void GetTree()

{

TreeView.Nodes.Clear();

TreeView.Nodes.Add(new TreeNode("Главная страница"));

foreach (UserTextCorpus x in _currentUser.TextCorpora)

{

int corporaID = x.TextCorpus.Id;

TreeNode corporaNode = new TreeNode();

corporaNode.Value = "Корпус: " + "\"" + x.TextCorpus.Name + "\"" +

" ID: " + x.TextCorpus.Id;

List<int> files = x.TextCorpus.Files.Select(y => y.Id).ToList();

if (files.Count != 0)

{

foreach (UserTextCorpusFile tcf in _currentUser.TextCorpusFiles)

if (files.Contains(tcf.TextCorpusFile.Id))

{

TreeNode fileNode = new TreeNode();

fileNode.Value = "Файл: " + "\"" + tcf.TextCorpusFile.Name + "\"" +

" ID: " + tcf.TextCorpusFile.Id;

List<int> annotations = tcf.TextCorpusFile.Annotations.Select(y => y.Id).ToList();

if (annotations.Count == 0) corporaNode.ChildNodes.Add(fileNode);

else

{

foreach (UserAnnotation ann in _currentUser.Annotations)

if (annotations.Contains(ann.Annotation.Id))

{

TreeNode annNode = new TreeNode();

annNode.Value = "Аннотация: " + "\"" + ann.Annotation.Name + "\"" +

" ID: " + ann.Annotation.Id;

List<int> templates = ann.Annotation.Template.Select(y => y.Id).ToList();

if (templates.Count == 0)

fileNode.ChildNodes.Add(annNode);

else

{

foreach (UserTemplate templ in _currentUser.Templates)

if (templates.Contains(templ.Template.Id))

{

TreeNode templNode = new TreeNode();

templNode.Value = "Шаблон: " + "\"" + templ.Template.Name + "\"" +

" ID: " + templ.Template.Id;

annNode.ChildNodes.Add(templNode);

corporaNode.ChildNodes.Add(fileNode);

}

fileNode.ChildNodes.Add(annNode);

}

}

corporaNode.ChildNodes.Add(fileNode);

}

}

}

TreeView.Nodes.Add(corporaNode);

TreeView.DataBind();

}

}

Г.3. Часть события, которое происходит при щелчке на кнопку «Удалить» или «Скачать» в элементе управления GridView

protected void ContentTable_RowCommand(object sender, GridViewCommandEventArgs e)

{

string objType = ContentTable.Rows[Convert.ToInt32(e.CommandArgument)].Cells[2].Text;

int objID = Convert.ToInt32(ContentTable.Rows

[Convert.ToInt32(e.CommandArgument)].Cells[3].Text);

switch (objType)

{

case "Файл":

{

TextCorpusFile tcf = _currentUser.TextCorpusFiles.FirstOrDefault

(x => x.TextCorpusFile.Id == objID).TextCorpusFile;

if (e.CommandName == "Download")

{

#region Скачиваем файл

UserServiceClient client = null;

try

{

client = new UserServiceClient();

tcf.File = client.DownloadFile(_currentUser, tcf);

using (var fileStream = new FileStream(@"C:\temp\downloads\files\" +

tcf.Name +

"." +

tcf.FileType,

FileMode.Create,

FileAccess.ReadWrite))

{

tcf.File.WriteTo(fileStream);

fileStream.Close();

MessageLabel.Text = "Файл \"" + tcf.Name + "\"" + @" загружен в C:\temp\downloads\files\";

}

}

catch (FaultException ex)

{

MessageLabel.Text = "Ошибка при скачивании: " + ex.Message;

}

finally

{

client.Close();

}

#endregion

}

else if (e.CommandName == "Delete")

{

#region Удаляем файл

UserServiceClient client = null;

try

{

client = new UserServiceClient();

client.RemoveFile(_currentUser, tcf);

MessageLabel.Text = "Файл \"" + tcf.Name + "\" удалён";

}

catch (FaultException ex)

{

MessageLabel.Text = "Ошибка при удалении: " + ex.Message;

}

finally

{

client.Close();

}

#endregion

}

} break;

...

...

Г.4. HTML-разметка элемента управления GridView с настраиваемыми шаблонами для столбцов

<asp:GridView ID="ContentTable" OnRowCommand="ContentTable_RowCommand"

OnRowDeleting="ContentTable_RowDeleting"

HorizontalAlign="Center"

Font-Names="Trebuchet MS" Font-Size="10pt"

runat="server" CellPadding="2">

<Columns>

<asp:TemplateField>

<ItemTemplate>

<asp:LinkButton ID="Download" runat="server"

CommandName="Download"

CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"

Text="Скачать" />

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField>

<ItemTemplate>

<asp:LinkButton ID="Delete" runat="server"

CommandName="Delete"

CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"

Text="Удалить" />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

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


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

  • Преимущества и недостатки облачного хранилища данных. Установление приложения на компьютер, устройство Android, iOS. Создание аккаунта. Начало работы с Google диском. Способы загрузки файлов на него. Предоставление доступа к файлам другим пользователям.

    курсовая работа [1,3 M], добавлен 31.05.2016

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

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

  • Описание ДСМ-метода автоматического порождения гипотез. Исследование результатов влияния компонентов ДСМ-метода на качество определения тональности текстов. Алгоритм поиска пересечений. N-кратный скользящий контроль. Программная реализация ДСМ-метода.

    курсовая работа [727,0 K], добавлен 12.01.2014

  • Разработка программного продукта, предназначенного для имитации физического взаимодействия между объектами на основе игрового симулятора. Проектирование программы "LonelySpaceRanger", код которой представлен на языке VisualС++. Разработка интерфейса.

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

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

    дипломная работа [770,5 K], добавлен 08.02.2017

  • Особенности процесса взаимодействия пользователя с компьютером. Графический интерфейс ОС Windows, его преимущества и недостатки. Основы простейшего SILK-интерфейса. Основные черты и специфика структуры WIMP-интерфейса. Общепринятые соглашения для меню.

    реферат [26,8 K], добавлен 02.10.2012

  • Обеспечение непосредственной связи контроллера прямого доступа к памяти (ПДП) и памяти микроЭВМ. Совместное использование шин системного интерфейса процессором и контроллером. Последовательность и алгоритм программирования контроллера прямого доступа.

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

  • Этапы проектирования и программная реализация интернет-магазина. Методы разработки его интерфейса - элементов и компонентов программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением. Защита интернет-магазина.

    контрольная работа [28,7 K], добавлен 02.10.2010

  • Понятие таблицы, анализ способов ее формирования и организации, особенности создания доступа по имени. Сущность хеширования данных. Преимущества и недостатки связывания. Применение бинарного (двоичного) поиска и характеристика интерфейса программы.

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

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

    курсовая работа [448,2 K], добавлен 20.06.2011

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