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

时间:2017-06-29 00:39:07

标签: java nlp mallet crf

我正在尝试使用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

因此,如果有人能告诉我训练数据的格式应该是多么好。

1 个答案:

答案 0 :(得分:1)

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

为了记录,我使用你上面给出的测试数据(使用命令行,而不是代码示例)尝试了这个例子并且它工作正常,所以测试/训练格式似乎没问题。