
Одной из наиболее масштабных попыток создать семантический анализатор, используя традиционные подходы, можно назвать проект компании ABBYY. Их разработка, Compreno, обошлась примерно в 1 млрд. руб., но в итоге проект был закрыт. Подробнее почитать можно, например, тут и тут.
В чем же отличие нашего подхода к построению семантической модели текста, которое позволяет гибко разбирать текст из различных предметных областей?
Вопрос действительно серьезный. На наш взгляд, главная проблема всех прошлых попыток была в используемой системе понятий с которой пытались соотнести слова текста.
Выбиралась онтология, представляющая ту или иную предметную область во всем богатстве объектов, свойств и взаимосвязей. То есть, например, для описания понятия, стоящего за словом «собака», требовалось создать класс «собака», связать его с другими классами («животное») и описать допустимые свойства («порода», «возраст» и другие).
При этом, даже описав все потенциальные понятия и их взаимосвязи, все равно при анализе текста могли возникать ситуации, когда смысл фразы не укладывался в используемую онтологию. Как следствие — необходимость заново перестраивать всю проработанную систему связей.
Наше же ключевое отличие — возможность моделирования понятий на базовом уровне, вне конкретной предметной области. Такой подход характерен для человека и, например, именно это позволяет ребенку, впервые услышав какое-то слово, начать его использовать без понимания всех оттенков его смысла. Или уловить смысл в известной фразе «Гло́кая ку́здра ште́ко будлану́ла бо́кра и курдя́чит бокрёнка»
Этот базовый смысл слов связан с тем, что мы называем свойство-ориентированным представлением информации мозгом. Определив понятие, соответствующее слову в рамках этой базовой онтологии состоящей из очень ограниченного числа концепций, мы уже получаем возможность строить взаимосвязи между понятиями не ограничиваясь какой-то конкретной онтологией более высокого уровня.
Схематично граница моделирования классического, объектно-ориентированного подхода, показана на рисунке ниже.

При практической реализации семантического анализатора мы применяем ограниченное число понятий уровня предметных областей, но вызвано это исключительно необходимостью корректного разрешения неоднозначностей допускаемых языком. И многие понятия, например, соответствующие прилагательным, могут создаваться автоматически, используя только онтологию базового уровня.
