我正在尝试整合三种不同的模型(FastText,SVM和NaiveBayes)。
我想到了使用python来做到这一点。我确信我们可以集成NaiveBayes和SVM模型。但是,我们可以使用python集成fastText吗?
有人可以建议我做同样的事情吗...
答案 0 :(得分:0)
可用于组合多个模型的方法与要在Python / Java / R中实现它的方式无关。
也许您正在寻找的是Ensemble learning。
堆积不同模型的最流行方法之一是堆积(eming),该方法涉及学习有关如何结合已经训练的各个模型的预测的新模型。请参阅使用Python的this教程。
答案 1 :(得分:0)
在用例中您可以,因为您要处理3种模型,所以请记住:
模型使用predict()
方法的机制不同:
FastText
使用带有所有嵌入和.bin
的内部文件(例如,扩展名为wordNGrams
的序列化模型),您可以直接传递原始文本;
SVM
和NaiveBayes
,您必须使用CountVectorizer
,TfidfVectorizer
LabelEncoder
来预处理数据,获取结果,然后重新通过LabelEncoder
并提供结果。
最后,您将需要处理不同的概率(如果您使用k > 1
进行预测),并且可能需要注意这一点
如果要将其序列化到生产环境,则需要腌制SVM
和NB
模型,并对.bin
和FastText model
使用@Bean
public RestTemplate restTemplate() {
final RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(
Arrays.asList(new BufferedImageHttpMessageConverter()));
return restTemplate;
}
当然,前者的嵌入也需要实例化。如果您需要近乎实时地进行预测,那么响应时间可能会有些痛苦。