斯坦福NER的模型评估

时间:2016-01-13 20:07:21

标签: stanford-nlp

我正在使用Stanford CoreNLP的NER模块进行项目,目前我对模型的评估存在一些问题。

我正在使用API​​从java程序内部调用功能而不是使用命令行参数,到目前为止,我已经设法从几个训练文件中训练模型(以制表符分隔格式; 2列使用令牌和注释/答案)并将其序列化为一个非常简单的文件。

现在我正在尝试评估我在一些测试文件(精确度,召回,f1)上训练的模型,我有点卡在那里。首先,测试文件应该采用什么格式?我假设它们应该与训练文件(制表符分隔)相同,这将是合乎逻辑的事情。我查看了JavaDoc文档,了解有关如何使用classify方法的信息,还查看了NERDemo.java。我设法让classifyToString方法起作用,但这对我的评估并没有帮助。我发现如果我将classifyAndWriteAnswers(String testFile, DocumentReaderAndWriter<IN> readerWriter, boolean outputScores)设置为true,我假设的outputScores方法会给我精确度和回忆分数。

但是,我无法让这个工作。我应该使用哪个DocumentReaderAndWriter作为第二个参数?

这就是我现在所拥有的:

public static void evaluate(CRFClassifier classifier, File testFile) {
        try {
            classifier.classifyAndWriteAnswers(testFile.getPath(), new PlainTextDocumentReaderAndWriter(), true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

这就是我得到的:

Unchecked call to 'classifyAndWriteAnswers(String, DocumentReaderAndWriter<IN>, boolean)' as a member of raw type 'edu.stanford.nlp.ie.AbstractSequenceClassifier'

另外,我是否将路径作为第一个参数传递给测试文件,或者将文件本身加载到String中?一些帮助将不胜感激。

0 个答案:

没有答案