Диссертация (1137159), страница 21
Текст из файла (страница 21)
Рассмотрим компонентную архитектурупрограммного комплекса (рисунок 4.2).Программный комплекс получил название AOS Engine от английскогоAspect-Oriented Search Engine (Аспектно-Ориентированная Поисковая Система)исостоитизтрехосновныхподсистем:AOSEngine(Аспектно-Ориентированная Поисковая Система), ЛБЗ (Лингвистическая База Знаний) иАОБЗ (Аспектно-Ориентированная База Знаний). Рассмотрим каждую из этихподсистем в отдельности.Следует отметить, что во всех подсистемах, взаимодействующих с базамиданных, будет использоваться система объектно-реляционного связывания122(ORM, Object-Relational Mapping) и пул соединений.
Использование ORMобусловлено сокращением времени цикла проектирование-разработка, аиспользование пула соединений позволяет сократить время на создание новыхсоединений с базой данных, что сокращает время доступа к данным.Рисунок4.2.Диаграммаподсистемикомпонентовпрограммногокомплекса.4.1.2.2 Лингвистическая база знанийПодсистема предназначена для хранения и предоставления доступа кинформацииограмматическихсвойствахслов,дляопределениясемантического контекста того или иного слова, для построения взаимосвязей123между словами, а также для осуществления стемминга слов. Доступ к системереализованпосредствомвеб-интерфейса(интерфейсавеб-сервиса),чтопозволяет использовать ее независимо от всего программного комплекса.Данноеархитектурноерешениеобусловленотем,чтодоступклингвистическим данным должен быть максимально открыт не только дляразработчика одной конкретной системы, но и для всего сообщества разработкиприложений, связанных с ЕЯ-анализом.В качестве источника данных для лингвистической базы знаний (ЛБЗ) былавыбрана коллективно разрабатываемая база знаний Wiktionary[100], котораяимеет ряд преимуществ по сравнению с традиционными решениями, такимикак WordNet [50] и некоторые его разновидности [100].
Согласно [50],актуальность информациии частота ее обновлений в коллективноразрабатываемых базах знаний выше, чем в традиционных (таблица 4.2).Таблица 4.2. Сравнение коллективно разрабатываемых (КРЛБЗ) итрадиционных лингвистических баз знаний (ТЛБЗ)СоздателиТЛБЗКРБЗЛингвистыВолонтеры,непрофессионалыПроцесс созданияОснован на теоретической Основанмодели и доказательствахнауказаниям по заполнениюСтоимость создания ЗначительнаяБесплатноАктуальностьПрактическиБыстро устареваютданныхОбъемследованиивсегдаактуальныеОграничен бюджетомОгромныйилибыстрорастущийКачество данныхРедакторский контрольСоциальныйконтрольсообществаДоступные языкиОсновные языкиМногиеязыкивзаимосвязанные124Тем не менее, этот источник данных не является полностью приемлемым всилу различных ограничений как структурных, так и технологических.
Этообусловлено тем, что статьи в Wiktionary хранятся в такой форме записи,котораязатемкомпонентами,обрабатываетсяпредназначеннымиспециализированнымидлягенерациипрограммнымиграфическоговеб-интерфейса. Структура базы данных Wiktionary представлена на рисунке 4.3.Рисунок 4.3. Схема БД Wiktionary.Рассмотрим фрагмент статьи Wiktionary для слова «характеристика»(Таблица 4.3).Таблица 4.3. Фрагмент текста статьи Wiktionary===Морфологические и синтаксические свойства==={{сущrufina3a|основа=характеристик|слоги={{по-слогам|ха|рак|те|ри|сти|ка}} |show-text=1}}{{морфо||характеристик||а}}===Произношение==={{transcriptions||}}===Семантические свойства=======Значение====# описание отличительных, характерных свойств кого-либо или чего-либо# официальный документ с отзывом о качествах и прошлой деятельностичеловека.
{{пример|К заявлению приложите характеристику с места работы}}# ''матем., физ.'' функция, описывающая некоторое свойство объекта.{{пример|Амплитудно-частотная характеристикапоказываетмодуля некоторой комплекснозначной функции от частоты}}зависимость125#''техн.,обычномн.ч.''техническиепараметрыоборудования.{{пример|Тактико-технические характеристики нового танка}}====Синонимы====# [[портрет]], [[описание]]#====Антонимы====##====Гиперонимы====# [[описание]]#====Гипонимы====## [[отзыв]], [[рекомендация]]Как видно из представленного фрагмента, документ содержит многоданных, не являющихся важными при заполнении ЛБЗ. Для извлечения изданноготекстанеобходимыхфрагментовбылразработаналгоритм«Разбор_Wiki_Статьи», который представлен в приложении 4.Такимобразом, предусмотрена возможность обновления базы за счет повторногоразбора наиболее актуальной копии базы Wiktionary.После извлечения текста статьи из БД (значимым является полеtext.oldText, а большинство полей других таблиц необходимы для управленияисторией страниц и пользовательской статистики) он непригоден дляиспользования.незначимыеИзвлеченнуюэлементы.статьюОсновнойнеобходимоинформацией,обработать,хранимойвубравЛБЗинеобходимой для алгоритмов расширения запросов в AOS Engine являетсяконцептуальное окружение слова (синонимы, гипонимы и гиперонимы),поэтому для хранения данной информации в предлагаемом решениииспользуется таблица Word (рисунок 4.4).126Рисунок 4.4.
Схема данных разработанной ЛБЗТаблица Stem предназначена для хранения слов и их базовых форм. Даннаяинформация хранится в отдельной таблице исключительно из соображенийскорости доступа к ней.Помимо непосредственно базы данных, в подсистеме представленкомпонент стемминга. В силу того, что в данной диссертационной работе темаморфологии рассматривается исключительно в контексте приведения слов кбазовой форме, данный компонент представляет собой «обертку» (wrapper) длявнешней программы И.Сегаловича mystem[88]. В силу того, что даннаяпрограмма обладает очень высоким качеством, но у нее отсутствует API дляобращенияизвнешнихпрограмм,получениерезультатовееработыпроизводится через файловую систему, что крайне неэффективно с точкизрения производительности.
Именно по этой причине результаты каждогонового обращения к компоненту стемминга сначала запрашиваются из базыданных, а затем (в случае, если они там не были обнаружены) происходит вызовпрограммы, передача ответа пользователю и следующая за этим записьполученных данных в базу. Таким образом, количество обращений к внешнейпрограмме постоянно уменьшается.Модуль взаимодействия с ЛБЗ представляет собой ядро подсистемы исодержит основную логику, связанную с чтением данных из базы, т.
е., другимисловами, предоставляет удобный API для доступа к данным.Веб-сервис ЛБЗ предоставляет два метода для внешних клиентов: методполучения базовых форм для поданного на вход слова и метод получения127концептуального окружения для поданного на вход слова. Данный компонент,по сути, является промежуточным интерфейсом к модулю взаимодействия сЛБЗ.4.1.2.3 Аспектно-ориентированная база знанийОсновное назначение аспектно-ориентированной базы знаний (АОБЗ)заключается в хранении и предоставлении доступа к информации об аспектахпонятий.
Однако помимо этого база предназначена для работы инженеров познаниям и предоставляет возможность ввода данных и сбора статистики. ВАОБЗ хранятся такие объекты, как ЕЯ-запрос, соответствующие ему тип иобъекты интереса, аспекты заданного понятия и примеры текстов, содержащиеответы на первоначальный запрос. Таким образом, при правильном наполненииАОБЗ можно использовать для улучшения алгоритмов анализа поисковыхзапросов путем машинного обучения. Система предоставляет открытый доступс возможностью ввода данных через графический интерфейс, а такжепредоставляет веб-интерфейс для доступа к данным. По сути, даннаяподсистема является автономным веб-приложением, которое может бытьиспользовано в любом контексте.
Данное архитектурное решение, также как и вслучае с ЛБЗ, обусловлено тем, что доступ к лингвистическим данным долженбыть максимально открыт для сообщества.Так как данная подсистема использовалась в учебном процессе, в ней былпредусмотрен модуль отчетности, позволяющий получать отчеты в форматеMicrosoft Excel, содержащие информацию по введенным пользователемданным. Фрагмент отчета доступен в приложении 7.Рассмотрим структуру базы данных, использующуюся в АОБЗ (рисунок4.5).
Так как система обладает мощным компонентом отчетности, это наложилосущественный отпечаток на структуру БД, однако позволило фиксироватьабсолютно любые изменения в данных, сделанные любым пользователемсистемы.Кратко рассмотрим назначение таблиц.
Author — таблица, представляющаяучетные данные пользователя в системе. Она связана с таблицей History,128хранящей историю действий пользователя. Такими действиями могут бытьлибо создание новой записи (Page), либо внесение изменений в существующие(Addition). Ключевыми таблицами с точки зрения хранения данных являютсяQuestion — запрос, IObject — объекты интереса, принадлежащие запросу,Aspect — аспекты, принадлежащие понятию, представляющему объектинтереса и Example — пример текста, содержащего ответ на заданный вопрос.Рисунок 4.5. Структура базы данных АОБЗМодуль взаимодействия с АОБЗ является ядром подсистемы и содержитосновную логику, связанную с чтением и записью данных в базу, т.
е., другимисловами, предоставляет удобный API для доступа к данным. Веб-сервис АОБЗ имодуль графического интерфейса используют API данного компонента.Модуль графического интерфейса пользователя предоставляет графическийинтерфейс для работы с АОБЗ и имеет несколько экранных форм, которыепредставлены в приложении 7.Веб-сервис АОБЗ предоставляет один метод для внешних клиентов: методполучения аспектов для поданного на вход слова. Данный компонент, по сути,является промежуточным интерфейсом к модулю взаимодействия с АОБЗ.1294.1.2.4 Подсистема AOS EngineПодсистема AOS Engine является центральной подсистемой программногокомплекса, в которой происходит анализ и расширение поисковых запросов,передача их в систему поиска по ключевым словам и ранжированиеполученных результатов.