训练Stanford-NER-CRF,控制迭代次数和正则化(L1,L2)参数

时间:2018-01-09 10:27:28

标签: nlp stanford-nlp named-entity-recognition crf ner

我正在查看StanfordNER文档/常见问题解答但我无法找到与指定训练中最大迭代次数以及正则化参数L1和L2的值相关的任何内容。

我看到了建议设置的答案,例如:

maxIterations=10

在属性文件中,但没有给出任何结果。

是否可以设置这些参数?

1 个答案:

答案 0 :(得分:0)

我不得不深入挖掘代码但发现它,所以StanfordNER基本上支持许多不同的数值优化算法。人们可以看到哪些是实施的,可以用来训练CRF  getMinimizer()文件中的CRFClassifier.java方法。

我将我的属性文件配置为使用Orthant-Wise Limited-memory Quasi-Newton,通过设置:

useOWLQN = true

L1-prior可以设置为:

priorLambda = 10

一个有用的技巧是使用收敛容差参数TOL,在每次迭代时检查:|newest_val - previous_val| / |newestVal| < TOLTOL由以下方式控制:

tolerance = 0.01

另一个有用的参数是明确控制学习算法应运行的最大迭代次数:

maxQNItr = 100