Почти в тему:
Оригинал взят у
buriy в
Символисты против нейрооптимистов "Символисты" -- они же "онтологи", представители символьного подхода -- отлично решали и решают простые задачи, где зависимости простые и правила не нарушаются.
В той же лингвистике почти любое правило нарушается, и нужно знать, когда и как принято говорить (если хотите действительно сотни принципиально различных примеров -- почитайте книгу
Тестелец Я.Г. Введение в общий синтаксис, я лишь ограничусь парой самых простых примеров ).
Например, совокупность знаний только о том, какие объекты интенсионалы ("грек Сократ"), а какие эктенсионалы ("железная дорога" или "древний грек") -- это порядка 10 миллионов единиц. Естественно, для высокого уровня понимания текста, дерево разбора должно отличаться для интенсионалов, эктенсионалов и просто слов, стоящих рядом. А значит, у вас в базе должно быть как минимум 10 миллионов однотипных правил для эктенсионалов и ещё сколько то десятков тысяч правил для интенсионалов.
А теперь представьте, сколько человеко-лет уйдёт на составление такого словаря.
(собственно, википедия -- это и есть словарь экстенсионалов).
То же самое с правилами морфологии, например:
- правила окончаний в русском языке -- около 3000 парадигм описано в словаре Зализняка, и для каждой леммы -- порядка 50000 лемм нужно выбрать номер парадигмы -- "Толстого": Толстой или Толстый?,
- написание слов с большой или маленькой буквы
, синтаксиса:
- какими частями речи могут быть слова,
семантики:
- классы семантики, необходимые, чтобы учесть нерегулярность употреблений слов в контекстах, например, "он положил в карман пальто", "он положил в карман шарф", или "днём ранее" но не "понедельником ранее" (тысячи классов для разных задач),
- классы слов, которые могут являться или не являться ролями глаголов: можно "лететь по небу", нельзя в прямом смысле "лететь по морю", можно "лист кружится", но нельзя "лист ест", а "волна гоняет катер" отличается от "Вася гоняет катер")
- устойчивые выражения/фразеологизмы
Подход нейросетей здесь -- выучить наиболее популярные правила очень подробно (мы теряем правила на редких словах).
Словарный подход -- выучить правила по типам (тогда мы теряем нестандартные правила, о которых не подумали).
Теперь про word embedding.
То, что выучивает word embedding -- это отношение замены одного слова другим в том или ином контексте.
Если можно заменить "я зашёл в дом" на "я зашёл в магазин" и "я зашёл в интернет" -- то "интернет" будет в каком-то смысле близким к словам "дом" и "магазин". ("переносный смысл? не, не слышали!")
То же самое в словарно-онтологическом подходе делается через онтологическую сеть с определённой метрикой близости.
Близость определяется просто: по количеству онтологических пересечений понятий, близких к данным. Строится "облако ассоциаций" для обоих понятий и вычисляется процент пересечений облаков.
Данным подходом занимается в частности
http://servponomarev.livejournal.com/8438.htmlА вот древнее решение для wordnet (такое было популярно в 2006м, кажется):
http://marimba.d.umn.edu/cgi-bin/similarity/similarity.cgi Разница между вариациями заключается в том же: нейросети выучивают намного больше типов ассоциаций, но с худшим качеством отдельных ассоциаций.
В основном конечно из-за того, что нейросети учатся оптимизировать только одну оценочную функцию и только с 95%-ным качеством (дальше почему-то в современных архитектурах затык -- возможно, чем ближе к 100%, тем меньше скорость обучения и тем экспоненциально дольше учить. с этим пытаются справиться выборочным дообучением, но массовых решений пока что нет.)
А вот люди могут качественно пополнять письменные словари, но медленно -- порядка 1-100 новых слов в день на человека в зависимости от задачи.
Совместить эти подходы -- задача ближайшего будущего.