gpt4 book ai didi

scala - 管道能成为变压器吗?

转载 作者:行者123 更新时间:2023-11-30 09:41:57 25 4
gpt4 key购买 nike

我需要两个标记化和删除停用词的过程:

val tokenizer = new Tokenizer()
.setInputCol("seg_text")
.setOutputCol("raw_words")

val remover = new StopWordsRemover()
.setInputCol("raw_words")
.setStopWords(stop_words)
.setOutputCol("words")

并创建管道:

val pipeline = new Pipeline()
.setStages(Array(tokenizer, remover))

最后,我希望通过这个管道获得输出。我不知道怎么做,或者也许不能。

最佳答案

管道是您必须首先训练的 ML 模型,然后它才能为您工作。

在您的情况下,您的管道仅包含预处理阶段,因此最终将在实际训练阶段之前使用它,例如 TF-IDF 分类。

您可以使用 fittransform 方法训练它:

val model = pipeline.fit(df).transform(df)

但在此之前,您需要使用一些培训文档填充 df。你可以这样做:

val df = sc.textFile(paths.mkString(",")).toDF("docs")

path是所有训练文档路径的Seq[String]。

您可以看到this example使用带有 StopWordsRemover 的管道的线性判别分析。

完成后,您将创建一个预处理机器学习模型。如果您需要模型实际进行真正的处理(例如分类、预测等),那么您可以将另一种算法添加到管道中(例如 TF-IDF),或者您可以将其用作另一个管道中的一种算法。

训练模型后,您可能想要保存它,以便稍后加载并使用它,而无需再次训练:

model.write.overwrite().save("/tmp/your-model")

然后你可以像这样加载它:

val alreadyTrainedModel = PipelineModel.load("/tmp/your-model")

关于scala - 管道能成为变压器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57441063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com