Интересная серия статей.
Популярность — думаю, из-за частоты выхода статей. по 2-3 статьи в день думаю, многовато.
А статьи занимательные, да. С удовольствием читаю.
вродебы где-то у автора проскакивала идея способа обобщения правил,
позволяющего объединить в один кластер слова
«eat», «eats», «eated», «will eat»,
и далее вплоть до того, что
dim syn {in: {root} out: {subj obj adv*}}} указывается для всех переходных глаголов
dim syn {in: {root} out: {subj adv*}}} для всех переходных глаголов
без кластеризации пришлось бы описывать грамматические свойства для всех возможных словоформ языка.
например, для славянских, это будет неимовернейше дофигищща.
В XDK вроде бы есть какая-то рудиментарная поддержка морфологии, но для случаев сложнее английского это точно не работает.
По поводу обобщений «eats» с формами — не помню, но верю. Классы слов («переходные», «непереходные») точно поддерживаются.
А вот по поводу «дофигищща» — как раз это меня не напрягает.
Допустим, есть скрипт, который на основании вывода морф. анализатора генерирует требуемые правила.
Реально для разбора одного предложения нужны только правила, относящиеся к словам данного предложения.
Получается, что для разбора фразы нужно всего-то 5-10 правил. (Понимаю, при этом будут вопросы к производительности, но это уже другая тема).
ну и кстати, по части морфологии,
со своей колокольни (синтеза),
я бы предложил дополнить описания слов пространством имён morph,
описывающим возможные вариации слова, сохраняющие все остальные атрибуты.
а в пространстве syn заменить атрибут args
на атрибут agrees, в котором указывать, по каким именно характеристикам слово согласуется со своими валентностями.
например, для глаголов там будет согласование с subj по лицу, числу, роду
собственно такую схему я путался сделать. /* опечатку s/ы/у/ оставляю :) */
но безуспешно:
в русском по родам согласуется только прошедшее время единственное число,
число — само по себе согласовываемый признак, и что тут делать не совсем очевидно.
Но из информации, что это словоформы одного и того же слова — наверное тоже то-то интересное можно извлечь и использовать. Например, я давно мечтаю об инструменте автопересогласования слов в фразах при правках отдельных слов…
Вот сейчас менял «о автопересогласовании» на «об инструменте автопересогласования» — и окончание последнего слова, к сожалению, пришлось менять самому %(
В принципе, на то XDG и «extensible» :) Вы можете создать для слова атрибут, содержащий некий «идентификатор», одинаковый для всех слов, произведённых из одной словоформы. Далее по идентификатору находятся другие элементы.
Можно и ещё проще: словоформа -> (морф анализатор) -> начальная форма -> (морф синтезатор) -> требуемая форма.
по поводу поспорить согласен
последний нашумевший проект на эту тему «интерсемантика»- попытка реализации единого семантического когда для всех языков.
В мае прошлого года, выступая на конференции посвященной проблемам искусственного интеллекта, один из докладчиков демонстрировал систему автоматизированного тестирования Control. Так вот, когда выяснилось, что система абсолютно не затрагивает вопросы семантического анализа, пошла буря критики и негодования, после этого докладчика слушать уже никто не хотел. Пишите про семантику, будем читать и комментировать ))))
Спасибо вам огромное за ваши статьи, однако у меня теплилась надежда, что вы будете писать статьи чуть шире. Не только о том, чем занимаетесь конкретно. ((
А то у меня самого кругозор в компьютерной лингвистике пока очень узок. Это грустно… =(
А что вас интересует?
Если я в какой-то метод не верю — не буду писать о нём, зачем зря пропагандировать? :)
А если верю, но просто руки не доходят — буду стараться хотя бы затронуть.
Есть «примеры» разного уровня сложности прямо в поставке XDG. Существуют ли более продвинутые грамматики — не знаю.
Английский — язык с достаточно жёстко фиксированной структурой, и с ним порою неплохо справляются парсеры, основанные на более простых принципах. Видимо, мотивация «переезжать» не слишком высока.
Заметки об NLP (часть 6)