Как стать автором
Обновить

Комментарии 19

Стоит только ввести неоднозначность какое слово относится к какой фразе (что человек разрешает по смыслу) и эти грамматики перестают работать в любом языке.
Можно доработать и будет работать и с такими
надо правила вплоть до значений каждого слова, то есть кибернетическую обьектную модель common sence.
Можно сделать общие правила и при тестировании уже доделывать, выхватывая неправильно разобранные
Можно сделать общие правила

согласен только их изначально будет не 1000 и даже не 10к а несколько больше
Не думаю, что при более 10к вариации 1 человек справится. И тем более один может и не сможет вспомнить/придумать столько вариаций
НЛО прилетело и опубликовало эту надпись здесь
Вот некоторое познавательное объяснение,
Что такое современная лингвистика. Лекция в Яндексе

P.S. Не соглашусь, что надо это всё выкинуть на данном этапе развития.
Переосмыслить, да, чтобы иметь базис движения в будущее.
Проект доступен для использования и редактирования.


Я не смог найти в проекте упоминание о лицензиях под которыми этот проект. ИМХО, но без хоть какой-то лицензии проект очень опасно использовать и тем более редактировать.
Лицензия добавлена — MIT.
Я правильно понял, что вы пытаетесь написать парсер (даже не токенизатор, а именно синтаксический анализатор) натурального языка (уровень 0 иерархии Хомского), используя LR-парсер на основе контекстно-свободной грамматики (уровень 2 иерархии Хомского)?

Один уже спрашивал на StackOverflow, как подобное провернуть (правда, там был парсер на 3 уровне против языка 2 уровня, но суть та же): RegEx match op̕en͟ ̀t̀ags e҉x̵c̴̷e̶p̷t ͠X̶͢H̷̕͟T͡M̵L̕͝ ̶̷́s̨̕͜͜e̸̶l͘͘͟f̴-̧́ç͜o̵̧͢҉̨n͘͟͞t͜á͏ì̴͡n͝͏̷e̴͜ḑ ҉͢͝t̨̀a͞g͘͘s̶̨͘͟
Осторожно, после неаккуратного прочтения ответа, можете открыть портал в ад.
Все-равно современное NLP похоже на поиск под фонарем: ищем там, где светло, а не там, где потеряли. Совершенно же очевидно, что человеческое понимание текстов способно придать смысл любому тексту, так один мой хороший знакомый «переводил» выражение «мэни таймз» как «время — деньги». ))

Если мы вслушаемся в себя и попытаемся понять как мы понимаем речь и ЕЯ тексты, то окажется, что сначала возникает смысл, а уже потом его раскладывание в синтаксис. ПМСМ.
На самом деле, мы одновременно выделяем смысл, синтаксис и привычные конструкции. Можно считать, что у нас происходит итерационное улучшение понимания текста, когда мы по несколько кругов проходим одни и те стадии и улучшаем результат.

И ИМХО, современное NLP бывает разным, скорее всего, действительно качественные NLP модели очень редко становятся общедоступными даже в виде публичного api, вроде гугл транслейта, поэтому сложно говорить о уровне самых совершенных закрытых NLP систем.
Да, конечно, одновременно. Просто есть сомнения, что тот «глубинный» синтаксис, которым пользуется мозг, совпадает с «академическим» синтаксисом, который используется в парсинге. Тут существует простая проверка: взять достаточно сложное предложение и разложить его в «академический» синтаксис — это, часто, не самая простая задача, особенно, если мы анализируем речь, а не литературный язык.
Просто для реальных задач не нужно использовать «академический» синтаксис, он имеет смысл для задачи разбора книги Пушкина, которая многократно вычитывалась и исправлялась редакторами. Тогда и человек разбирает «академически».

Для чат-ботов и т.п. задач скорее имеет смысл использовать различные разговорные конструкции, исправления неверных конструкций (как в поиске гугла или яндекса) и т.п., просто это задача на порядок более сложная. ИМХО. Гугл с яндексом ее уже десятки лет решают, но еще действительно качественно не решили. А уж всякие опен-сорс и стартап решения идут по-дешевому и некачественному пути.
| А уж всякие опен-сорс и стартап решения идут по-дешевому и некачественному пути.

Есть ли какой то обзор этих решений?

P.S. На Github встретил и одно из решений по морфологическому разбору языка тюрской группы на Форт suddenly is a finite-state morphological analyzer especially effective for agglutinative languages. :)

На Форт языке есть и такой проект Forth for Artificial Intelligence in Robots

Главная трудность в обработке естественного языка — многозначность, которая проявляется чаще, чем мы способны формализовать. Синтаксический анализ сейчас обычно делается при помощи машинного обучения, см. старый обзор от Choi et al. (2015).


Что, если вместо того, чтобы вручную описывать грамматику всего русского языка, сосредоточиться на задаче извлечения фактов? Она несколько проще в решении, но всё равно требует использования более сложного GLR-парсера, см. Томита-парсер и python-glr-parser. Попробуйте улучшить их результаты, например, с помощью вероятностных моделей — это должно быть весело!

С проектом Spacy-ru не сравнивали?

Есть какая-то оценка того, что получилось? Какой-то скор (UAS/LAS) на синтагрусе, например? Очень не хватает понимания потенциала качества правилового подхода, честно говоря.

В проекте Universal Dependencies давно доступна куча скоров, например
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории