importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.Map;importjavax.xml.bind.JAXBException;importorg.dmg.pmml.FieldName;importorg.dmg.pmml.PMML;importorg.jpmml.evaluator.ModelEvaluator;importorg.jpmml.evaluator.ModelEvaluatorFactory;importorg.jpmml.model.PMMLUtil;importorg.xml.sax.SAXException;/*** 读取pmml 获取模型
*@authorbiantech
**/
public classPmmlInvoker {privateModelEvaluator modelEvaluator;//通过文件读取模型
publicPmmlInvoker(String pmmlFileName) {
PMML pmml= null;
InputStream is= null;try{if (pmmlFileName != null) {
is= PmmlInvoker.class.getClassLoader().getResourceAsStream(pmmlFileName);if(is==null){
is= newFileInputStream(pmmlFileName);
}
pmml=PMMLUtil.unmarshal(is);
}this.modelEvaluator =ModelEvaluatorFactory.newInstance().newModelEvaluator(pmml);
}catch(Exception e) {
e.printStackTrace();
}finally{try{if(is!=null)
is.close();
}catch(Exception localIOException3) {
localIOException3.printStackTrace();
}
}this.modelEvaluator.verify();
System.out.println("模型读取成功");
}//通过输入流读取模型
publicPmmlInvoker(InputStream is) {
PMML pmml;try{
pmml=PMMLUtil.unmarshal(is);try{
is.close();
}catch(IOException localIOException) {
}this.modelEvaluator =ModelEvaluatorFactory.newInstance().newModelEvaluator(pmml);
}catch(SAXException e) {
pmml= null;
}catch(JAXBException e) {
pmml= null;
}finally{try{
is.close();
}catch(IOException localIOException3) {
}
}this.modelEvaluator.verify();
}public Map invoke(MapparamsMap) {return this.modelEvaluator.evaluate(paramsMap);
}
}
这是一个Java类,名为PmmlInvoker,用于读取PMML文件并创建ModelEvaluator实例以评估模型。类提供了通过文件名或输入流加载PMML模型的方法,并在加载成功后验证模型。invoke方法接收参数映射并返回模型的预测结果。
453

被折叠的 条评论
为什么被折叠?



