Mallet CRF序列分类训练数据格式

Mallet CRF Sequence Classification Training Data Format

我正在尝试使用 Mallet 库训练 CRF 序列模型,但我遗漏了一些重要信息。我在 https://github.com/mimno/Mallet/blob/master/src/cc/mallet/examples/TrainCRF.java 的库中找到了一个示例 但是示例没有说明输入训练数据的格式,所以我不知道如何重新创建它。

Mallet 在 http://mallet.cs.umass.edu/import-devel.php 上确实有一个数据导入示例,但该特定示例似乎是针对文档分类的,而不是我的用例 CRF 序列模型。

我尝试将输入训练数据放入 http://mallet.cs.umass.edu/sequences.php 中使用的形式,即

Bill CAPITALIZED noun
slept non-noun
here LOWERCASE STOPWORD non-noun

和表格中的测试数据

CAPITAL Al
        slept
        here

但是根据输出日志,它似乎不是正确的格式。例如,日志中的一行是 INFO: testing label slept P � R 0 F1 �slept 不是标签 - 标签应该是 nounnon-noun

所以,如果有人能告诉我训练数据应该采用什么格式,那就太好了。

您 link 的代码示例已被 the line that refers to the training file 注释掉。您的代码是否可能试图在测试文件上进行训练?这会导致 slept 看起来像一个标签,因为它位于行尾,并且会解释错误。

郑重声明,我使用您在上面提供的测试数据(使用命令行,而不是代码示例)尝试了该示例并且它有效,因此 test/train 格式似乎没问题。