1

在查看 Malt Parser 的源代码时,它实际上具有类 LibLinear.java(jar 文件)并调用了 liblinear 工具包的 java 版本;尽管有信息表明,原则上使用带有逻辑回归(-s 0)的liblinear(默认在麦芽解析器中)训练模型应该产生解析树的概率分数,但我没有找到任何返回概率的选项/方法。

主要关心的是:Liblinear 和 Malt Parser 的集成工作是否顺利,不会相互影响预期的操作?

与 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

4

1 回答 1

1

Malt 解析器基于转换系统和 2 或 3 个堆栈工作。在每个步骤中,使用 liblinear 或 libsvm 预测转换。这些模型的输入由堆栈中的内容和机器的当前状态组成。因此,一步做出决定会影响其他可能的决定。要计算一棵树的概率,需要计算所有树的聚合概率(以便它们总和为 1),这是不可行的。我猜你可以计算一棵树的信任分数,或者一个特定弧的信任分数,但这将是一个信任分数,而不是概率。而 afaik maltparser 并没有提供开箱即用的功能。您将不得不更改源代码,但我认为这是可行的

于 2016-10-12T15:28:55.143 回答