这可能无关紧要,但是我使用的是CRF ++ 0.58的窗口分布。
所以我已经成功地用木槌来训练一个CRF模型,然后testing它。 当我尝试使用相同的火车和testing文件与CRF ++(和创build模板文件后),我得到一个
The line search routine mcsrch Failed: error code:0
当我使用任何错误
-a CRF-L1
或默认
使用CRF + 0.58列车NE模型失败
如何让CRFSuite在Mac OS X上运行?
-a CRF-L2
当我使用
-a MIRA
尽pipe如此,培训工作没有错误和相同的testing。
对于mallet和crf ++,testing和训练数据的格式可以相同,所以这不是问题。 我的模板文件就像
#Mixed M00:%x[0,0] M01:%x[0,1] M02:%x[0,2] ...... M12:%x[0,12]
我的最后一列在我的训练数据中是0或1,这是用于分类的值。 我的任何function都没有空格,必要时使用下划线。 我在这里错过了一些简单的东西,是什么会导致L1和L2正规化失败呢?
我知道这是愚蠢的
要使用我正在使用的功能,您需要使用U前缀(如在Unigram中)。 所以就像U00:%x[0,0]很好。 你不能只是叫你任何你想要的功能。
我还发现,如果我将测试数据分解成单个句子,我会得到相同的错误信息。 当我将测试数据恢复到原来的大约2600个句子时,正则化算法现在运行。 过度拟合是跨越各种nlp和ml应用程序的错误消息的常见原因,但这不是我的情况的真正的问题。
也可能发生在只有一个CLASS的数据集的极端情况下(由于训练集生成过程中的错误)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。