在过去的几周里,我花了很多时间处理语法或逻辑错误的PMML文件。我目前的流程包括查看PMML文件并逐步执行JPMML代码,直到找出错误。
我发现的常见问题,
PMML可以使用哪些调试工具?
任何有助于语法或逻辑调试的工具都会有所帮助。
答案 0 :(得分:1)
可能还没有这样的工具。我的逻辑是,调试器将建立在评估器之上。由于JPMML-Evaluator库是最先进的评估器,并且它不提供专用的调试工具,因此很难看到其他工具如何在这个领域击败它。
调试PMML时,您可能会遇到两类问题。首先,存在"静态错误"与PMML文档的结构相关的内容,例如缺少,无效或放错位置的XML元素和属性。可以通过对PMML XSD文件执行XML验证或使用JPMML-Model Visitor API来发现它们。其次,有动态错误"与某些数据记录的评估路径有关。例如,正如您刚才指出的那样,可能会为分类字段分配一个没有处理程序的值。
JPMML-Evaluator库应该在检测到错误情况时抛出异常。如果启用了SAX定位器信息,则异常消息会提供违规PMML内容的行号。当然,如果JPMML-Evaluator库进行了适当的日志记录,调试工作会更容易。
您还可以尝试分析PMML生产者应用程序的源代码。为什么它首先这样做?