2015-03-21 3 views
1

Рассматривая исходный код Malt Parser, который на самом деле имеет класс LibLinear.java (файл jar) и вызывает java-версию liblinear toolkit; Я не нахожу какой-либо опции/способ вернуть вероятность, несмотря на информацию о том, что, в принципе, обучение модели с использованием liblinear (по умолчанию в анализаторе солода) с логистической регрессией (-s 0) должно приводить к расчету вероятности парных деревьев.Действительно ли MaltParser предоставляет возможность возвращать вероятности деревьев Parse?

Основная проблема заключается в том, что интеграция Liblinear и солодового анализатора работает плавно, не затрагивая друг друга ожидаемыми операциями?

Работая отдельно с Liblinear, дает мне вероятностный вывод для наборов данных.

liblinear-train -s 0 train_scale 

// подготовки данных с использованием логистической регрессионной модели

liblinear-predict -b 1 test_scale train_scale.model test_scale_output 

// этикетки и классы и вероятность выхода. Здесь -b 1 извлекает вероятности каждого набора данных.

Ссылка: https://stackoverflow.com/questions/28791352/how-to-get-probability-score-of-parsed-sentences-using-malt-parser

ответ

0

Солод анализатор работает на основе системы перехода и 2 или трех стеков. На каждом этапе прогнозируется переход с использованием liblinear или libsvm. Входные данные этих моделей состоят из того, что находится в стопках и текущем состоянии машины. Поэтому принятие решения на один шаг влияет на остальные возможные решения. Для вычисления вероятности дерева потребуется вычислить агрегированные вероятности всех деревьев (так что они суммируются до 1), что невозможно. Вы могли бы вычислить оценку доверия дерева, я думаю, или определенной дуги, но это будет оценка доверия, а не вероятность. И анфактический солодчик не предлагает этого из коробки. Вам придется изменить исходный код, но он умеет думать