Авт. обработка текстов на естественном языке и комп. лингвистика. Большакова (2014) (1185448), страница 45
Текст из файла (страница 45)
Точность (accuracy) — алгоритмы обработки естественного языка негарантируют получение только корректных результатов, так что дизайнсистемы должен учитывать это и предоставлять возможности для повышенияточности за счет, например, отката к использованию других алгоритмов;2. Эффективность (efficiency) — в большинстве исследований вопросыэффективности практически рассматриваются как Ћдетали реализацииЛ,однако при интерактивной работе задержки в ответе системы более чем нанесколько секунд могут быть неприемлемыми для пользователей;3. Продуктивность (productivity) — усилия, затрачиваемые на разработку ЕЯприложений часто выше, чем для многих других областей разработки ПО всвязи с отсутствием возможности знаний о существующих ресурсах,невозможности интегрировать сторонние компоненты;4.
Гибкость (flexibility) — как и другое ПО ЕЯ-системы должны быть гибкими,они должны поддерживать различные форматы, источники данных и141возможность применения для различных задач;5. Устойчивость (robustness) — системы должны сохранять работоспособность вразличных условиях, содержать обработку различных исключительныхситуаций и провалов алгоритмов;6. Масштабируемость (scalability) — для возможности обработки большихобъемов данных системы должны иметь возможность увеличенияпроизводительности например, за счет использования распределенной схемы;7.
Многомодальность (multimodality) — различные лингвистические компонентыиспользуют при анализе различные аспекты информации, соответственносистема должна поддерживать возможность доступа к ним;8. Разреженность данных (data sparseness) — поскольку многие алгоритмыобработки ЕЯ-текстов требуют наличия подготовленных данных для обучения,их построение (особенно для многоязычных случаев) может представлятьпроблему;9. Многоязычность (multilinguality) — пользователи говорят на разных языках и,соответственно, как в ПО необходима интернационализация, поддержкасоответствующих кодировок, однако в для ЕЯ-систем ситуация значительноусложняется тем, что для каждого языка необходимы свои наборытренировочных данных, правил обработки, а кроме того, могут различатьсяиспользуемые алгоритмы.Налицо необходимость в инструментах, позволяющих упростить созданиеприложений по обработке текстов на естественном языке (ЕЯ-приложений) за счетповторного использования тех или иных программных компонентов и сборкиприложения из них - это неоднократно обсуждается в различных работах, в том числе[18]).
Эти же инструменты должны предоставлять гибкую модель данных,позволяющую учесть указанные свойства ЕЯ-текстов.В дальнейшем рассматриваются такие системы и различные аспекты ихпостроения. В частности, в главе 2 рассматриваются различные аспекты, связанные сповторным использованием тех или иных средств, в 3 – подходы к представлениюданных в системах, в 4 – архитектурные решения, используемые при их построении.Наконец, в 5 рассматриваются примеры таких систем, относящиеся к различнымнаправлениям развития.Глава 2.Программные средства лингвистической обработкиПовторное использование тех или иных средств играет важную роль приразработке программного обеспечения вообще. Высокий уровень повторногоиспользования позволяет уменьшить количество ресурсов, необходимых дляпостроения успешного ПО и обеспечивает общую концептуальную базу дляпостроения различных систем, что положительно сказывается на возможности ихсовместного использования.В случае ЕЯ-систем уровень повторного использования достаточно низок [18],чему способствует сложность написания компонентов, отсутствие стандартизованныхинтерфейсов, а также несовместимость различных подходов и компонентов.При этом в ЕЯ-системах есть несколько классов средств которые могут бытьуспешно повторно использованы:Данные, необходимые для работы прикладной системы - обучающие выборки,корпуса текстов, словари, онтологии;142Концептуальные элементы системы - алгоритмы обработки текстовых данных,форматы их представления, а также шаблоны проектирования систем;Программный код, реализующий алгоритмы обработки данных ипреобразование данных между различными форматами, а также связующийкод, обеспечивающий взаимодействие компонентов и обмен данными междуними.При движении от данных к программному коду сложность повторногоиспользования средств увеличивается, однако вместе с тем возрастаетположительный эффект от их повторного использования.В качестве примеров средств первой категории можно расмотреть языковыекорпуса, такие как Национальный Корпус Русского Языка (НКРЯ) [35](http://ruscorpora.ru/index.html) или Хельсинский Аннотированный Корпус (ХАНКО)[31](http://www.ling.helsinki.fi/projects/hanco/).Насайтахэтихкорпусовпредоставлены средства для поиска размеченных текстов по заданным параметрам.Кроме того, для НКРЯ предоставляется случайная выборка предложений объемом180 тыс.
словоупотреблений, которая может быть загружена со страницыhttp://ruscorpora.ru/corpora-usage.html.Программные средства могут поддерживать повторное использование средств,используемых при обработке текстов различными путями, в соответствии с чем ихможно разбить на три основных группы:Системы, разработанные для решения конкретных задач. Эти системы, какправило позволяют переиспользование спецификаций и элементовпроектирования (алгоритмов, моделей и подходов), однако переиспользованиекода в них как правило достаточно мало;Программные библиотеки, реализующие те или иные алгоритмы обработкиданных.
Они позволяют повторно использовать код программныхкомпонентов, но часто ограничивают разработчика приложения в выборемодели представления данных.Программные среды, предназначенные для разработки некоторого классаприложений. В их случае возможно повторное использование как программныхкомпонентов и моделей данных, так и кода, обеспечивающего взаимодействиеразличных компонентов. Однако использование программных сред частонакладывает ограничения на архитектуру приложения и модель данных, атакже иногда на класс используемых алгоритмов.Таким образом, при движении от системы к фреймворку возрастает количествопереиспользуемых сущностей, но также возрастают и ограничения, накладываемыена разрабатываемое приложение.Рассмотрим некоторые примеры программных библиотек:Для европейских языков наиболее известны программные библиотекиOpenNLP(http://incubator.apache.org/opennlp/) и LingPipe(http://alias-i.com/lingpipe/),предоставляющие наборы компонентов для разбиения на лексемы, выделенияпредложений, синтаксического анализа, определения языка, выделения сущностей идругих.Для русского языка одной из наиболее широких библиотек для лингвистическойобработки является набор модулей на сайте aot.ru [32], который включаетграфематический, морфологический, синтаксический и семантический анализаторы.143Другими известными морфологическими анализаторами являются Mystem [26](http://company.yandex.ru/technology/mystem/), разработанный в компании Яндекс иPyMorphy (http://packages.python.org/pymorphy/).
Оба из них доступны для загрузки ииспользования в научных целях.В качестве примера еще одной программной библиотеки стоит рассмотретьмодули поддержки языка лексико-синтаксических шаблонов LSPL [34], позволяющиевыделять из текстов на русском языке синтаксические конструкции по ихформальному описанию.Далее будут рассмотрены различные программные среды.Глава 3.Представление лингвистических данныхВсе ЕЯ-системы так или иначе сталкиваются с проблемой представлениялингвистической информации.
Они вынуждены тем или иным образом представлять,хранить и интерпретировать обрабатываемые в системе данные. В данном случаепредставление данных включает в себя средства и формализмы, используемых дляпредставления данных, методов их хранения в процессе обработки и вовне системы, атакже интепретацию данных системой, в частности, ограничения, накладываемые наонтологию, объекты которой могут быть представлены в системе.§ 3.1.Подходы к представлению данныхВ соответствии с [12] подходы к представлению данными в ЕЯ-системах могутбыть распределены по четырем категориям:Основанные на разметке (markup-based), в которых дополнительнаяинформация хранится непосредственно в тексте в форме дополнительнойразметки (например, на SGML или XML); Примерами систем использующихтакой подход могут служить LT-NSL, Wraetlic и др.
(см. в §4.5.1);Основанные на аннотациях (annotation-based), в которых информацияхранится отдельно и содержит ссылки на исходный текст; Это в первуюочередь системы, использующие идеи проекта TIPSTER: GATE, Ellogon и др.(см. в §4.5.2);Основанные на абстракции (abstraction-based), в которых текст хранитсятолько как часть некоторой структуры данных, которая представляет всюинформацию в некотором основанном на конкретном формализме виде;Отсутствие ограничений на представление данных.Подходы, основанные на абстракции обычно основываются на формализмах,описывающих организацию представляемой информации в унифицированной форме,не содержащей непосредственно текста.
Их использование ограничиваютпереиспользование компонентов не совместимых с определенным формализмом.Например, ALEP, основанный на нейтральном к грамматике формализме HPSG непозволяет использовать множество компонентов, не совместимых с этимформализмом, например, основанных на статистических методах. Аналогично,никакой другой формализм не совместим со всем множеством существующихкомпонентов и алгоритмов.144§ 3.2.Лингвистическая разметкаЛингвистическая разметка представляет из себя задание информации олингвистических единицах непосредственно в тексте в форме разметки наспециальном языке (например, SGML или XML). Ниже приведен пример такойразметки:<s id="6293"><w c="w" pos="IN" id="624">As</w><w c="w" pos="RB" id="625">far</w><pp id="21236"><w c="w" pos="IN" id="626" head="yes">as</w><np number="singular" person="1" id="627"><w c="w" pos="PRP" head="yes" id="628">I</w></np></pp><vbar voice="passive" time="past" id="629" args="+6302"><w c="w" pos="VBD" stem="be" head="yes" id="630">was</w><w c="w" pos="VBN" stem="enable" id="631">enabled</w></vbar>Использование специальной разметки для представления лингвистическойинформации в документе выглядят весьма удобными для задач обработкиестественного языка.