В лингвистике реализация — это процесс, посредством которого некое поверхностное представление выводится из его базового представления; то есть, способ, которым некий абстрактный объект лингвистического анализа производится в реальном языке. Часто говорят, что фонемы реализуются звуками речи . Различные звуки, которые могут реализовать определенную фонему, называются ее аллофонами .
Реализация также является подзадачей генерации естественного языка , которая включает в себя создание фактического текста на человеческом языке (английском, французском и т. д.) из синтаксического представления. Существует ряд программных пакетов, доступных для реализации, большинство из которых были разработаны академическими исследовательскими группами в NLG. Оставшаяся часть этой статьи касается реализации такого рода.
Например, следующий код Java заставляет систему simplenlg [2] [1] вывести текст Женщины не курят. :
NPPhraseSpec subject = nlgFactory.createNounPhrase ( " the " , " woman " ) ; subject.setPlural ( true ) ; SPhraseSpec sentence = nlgFactory.createClause ( subject , " smoke " ) ; sentence.setFeature ( Feature.NEGATED , true ) ; System.out.println ( realiser.realiseSentence ( sentence ) ) ;
В этом примере компьютерная программа указала языковые составляющие предложения (глагол, подлежащее), а также языковые признаки (множественное число подлежащего, отрицание), и на основе этой информации реализатор построил фактическое предложение.
Реализация включает в себя три вида обработки:
Синтаксическая реализация : использование грамматических знаний для выбора склонений, добавления служебных слов, а также для определения порядка компонентов. Например, в английском языке подлежащее обычно предшествует глаголу, а отрицательная форма слова smoke — don't smoke .
Морфологическая реализация : вычисление флективных форм, например, форма множественного числа слова woman — women (а не womens ).
Орфографическая реализация : работа с регистром, пунктуацией и форматированием. Например, написание The с заглавной буквы , потому что это первое слово предложения.
Приведенные выше примеры являются очень простыми, большинство реализаторов способны выполнять значительно более сложную обработку.
За последние 20 лет было разработано несколько реализаторов. Эти системы различаются по сложности и изощренности обработки, надежности в работе с необычными случаями, а также по тому, осуществляется ли к ним программный доступ через API или они принимают текстовое представление синтаксической структуры в качестве входных данных.
Существуют также существенные различия в прагматических факторах, таких как документация, поддержка, условия лицензирования, скорость и использование памяти и т. д.
Здесь невозможно описать всех реализаторов, но вот несколько новых направлений: