什么是在spark中应用tf.idf转换到新文档的最佳方法?我的设置是离线训练模型,然后加载它并将其应用于新文件。如果没有访问模型IDF分布,计算IDF就没有太多意义。
到目前为止,我想到的唯一解决方案是保存训练集的TF RDD并将新文档附加到其中,然后计算IDF RDD并从IDF RDD中提取新文件。这样做的问题是我必须在内存中保留整个TF向量(我猜IDF RDD也可能可以)。
这看起来像是别人已经遇到的问题,所以寻求建议和见解,了解最佳方法是什么。
谢谢,
Ilija
到目前为止,我想到的唯一解决方案是保存训练集的TF RDD并将新文档附加到其中,然后计算IDF RDD并从IDF RDD中提取新文件。这样做的问题是我必须在内存中保留整个TF向量(我猜IDF RDD也可能可以)。
这看起来像是别人已经遇到的问题,所以寻求建议和见解,了解最佳方法是什么。
谢谢,
Ilija
val newInput = new HashingTF().transform(newInputRDD) val newTfIdf = if.transform(newInput)
这样做会给我之前训练好的模型使用相同特征空间的新文本映射吗? - Brianjava.io.{FileOutputStream, ObjectOutputStream}
存储 IDFModel,但是当使用FileInputStream
等加载时,它似乎没有被序列化(会出现序列化错误)。你能详细说明如何存储idf模型吗?谢谢。 - Mpizos Dimitris