Это одна из хорошо известных проблем в области статистики и нейронных сетей, называемая Проблема распознавания открытых множеств .
По сути, классификатор, который вы обучили, вычисляет только вероятность класса для выборки и, как правило, не имеет возможности различать метки вне известных / обученных классов.
В случае распознавания лиц нам нужна нейронная сеть, чтобы иметь возможность не только определять границу решения, но и способность хорошо различать точки данных.
Одним из возможных решений является придание байесовских свойств нейронной сети. В байесовской нейронной сети все веса и уклоны имеют распределенное распределение вероятностей. Вы можете сделать несколько проходов вперед во время вывода и интерпретировать выходную вероятность неопределенности для каждого класса.
Надеюсь, мои 2 цента помогут.
Я думаю, что много зависит от языка, который Вы пытаетесь проанализировать. Другая часть производительности, о которой иногда забывают, является лексическим анализом (сканирование) часть - это значительно для производительности, поскольку это имеет дело с символами, а не символами. Рекурсивный спуск является хорошим первым повторением при записи синтаксического анализатора, и это делает после логики проанализированного языка довольно естественный. Я думаю, что, если проанализированный язык соответствует (никакая левая рекурсия) необходимо запустить с рекурсивного спуска. Выбор LALR для производительности на данном этапе, кажется, преждевременная оптимизация. Можно записать синтаксический анализатор диаграммы вручную, но я сомневаюсь, что это - то, что Вы имеете в виду. Запись LALR-парсера вручную возможна, но утомительна.
Решение между LALR и LL по причинам производительности в этой точке походит на преждевременную оптимизацию. Парсинг времени редко является узким местом в компиляторе. На вашем месте я выбрал бы на основе того, являетесь ли Вы более удобным определением Вашей грамматики вверх дном или сверху вниз.
Лично, я нахожу LALR-грамматики легкими работать с, и fsyacc интеграция F# (который является, как я учился, парсинг) делает очень легким интегрировать yacc в Ваш проект.