使用GATE工具对训练数据运行机器学习算法(SVM)后,我想在测试数据上进行测试。我的问题是,如果我使用相同的训练数据进行测试,那么模型如何从测试数据中提取实体,而测试数据没有使用在训练数据中学习的注释进行注释。
我按照此链接http://gate.ac.uk/sale/talks/gate-course-may11/track-3/module-11-machine-learning/module-11.pdf上的教程进行了操作,但最后在讨论将数据集拆分为培训和测试时有点令人困惑。
答案 0 :(得分:0)
在GATE中,您有3种机器学习PR模式 - 用于培训,评估和应用。
训练时会发生的事情是ML PR正在检查选定的注释(让我们说Token),收集它的特征并学习目标类(即Person,Mention或其他)。使用示例文档,ML PR创建一个模型,该模型包含要素的值,并基本上“学习”如何对新标记(或句子或其他)进行分类。
测试时,您只为ML PR提供令牌及其所有功能。然后ML PR使用它们作为其模型的输入,并决定是否或要创建什么。 ML PR实际上需要训练语料库中的所有内容,除了标签/目标类/提及 - 应该做出的决定。
我认为GATE ML PR在测试模式下会忽略标签,因此删除标签并不重要。
评估是一个有用的选项,自动完成培训和测试,分割语料库并显示结果。它的作用是将语料库分成2个,在一个部分上训练,在另一个部分上应用模型,将黄金标准与它标记的内容进行比较。用不同的分割重复。
通常的顺序是训练和评估,检查结果,修复,添加功能等。当您对评估结果感到满意时,切换到应用程序并运行没有标签的数据。
在训练和测试时运行相同的预处理至关重要。例如,如果在训练中你运行了一个POS标记器并且在测试时跳过了这个标记,那么ML PR将没有“Token.category”功能,并且会计算出非常不同的结果。
现在问你的问题:)
NO!不要使用相同的数据进行测试,这是一个非常常见的错误,如果你得到可疑的好结果,首先要检查你是否正在这样做。
在本教程中,当您分割语料库时,两个部分都将具有以前的所有注释,因此ML PR将具有所需的所有功能。在现实生活中,你必须首先运行一些预处理,因为文档将没有令牌或任何东西。
在他们的情况下拆分非常简单 - 只需将所有文档保存到文件,将文件拆分为两个文件夹,然后将它们加载为两个语料库。
希望这会有所帮助:)