阅读训练数据失败:tagger.cpp (393) crf++

faliure in reading training data: tagger.cpp (393) CRF++

本文关键字:cpp crf++ tagger 数据 失败      更新时间:2023-10-16

当我在训练数据(train.txt)上运行crf++时,我得到了以下错误

C:Users2012DesktopCRF_Software_PackageCRF++-0.58>crf_learn template train.d
ata model
CRF++: Yet Another CRF Tool Kit
Copyright (C) 2005-2013 Taku Kudo, All rights reserved.
reading training data: tagger.cpp(393) [feature_index_->buildFeatures(this)]
0.00 s

我的训练数据包含Unicode字符,数据保存使用记事本(编码= Unicode大印度)

我不确定是模板问题还是训练数据的格式问题。如何查看训练数据的格式?

我认为这是因为你的模板文件。请检查您是否将最后一栏作为gold-standard training feature加入列索引从0开始。例如,如果您的BIO文件中有6列。模板中不应该有%x[0,5]

之类的内容

问题是模板文件检查你的功能是否有错误的"语法"即U10: % x (1,0)/% (0,0)

你意识到在第二个%之后有一个缺失的'x'修改后的线应该如下所示U10: x % x (1,0)/% (0,0)

我有同样的问题,文件是UTF-8,模板文件和培训文件肯定是正确的格式。原因是CRFPP期望输入文件中最多有1024列。如果它能在这种情况下输出一个适当的错误消息,那就太好了。

问题不在Unicode编码,而在模板文件。

看看这个类似的问题:使用CRF+0.58 train NE Model失败