You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 14.3 Playgrounds中MLTextClassifier弃用警告及DataSource使用疑问

问题

在macOS Ventura 13.1系统的Xcode 14.3 Playgrounds中运行以下代码:

let csvFile = Bundle.main.url(forResource: "all-data", withExtension: "csv")!
let dataTable = try MLDataTable(contentsOf: csvFile)

let (classifierEvaluationTable, classifierTrainingTable) = dataTable.randomSplit(by: 0.20, seed: 5)

let classifier = try MLTextClassifier(trainingData: classifierTrainingTable, textColumn: "text", labelColumn: "sentiment")

收到弃用警告:

'init(trainingData:textColumn:labelColumn:parameters:)' was deprecated in macOS 13.0: Use DataSource instead of MLDataTable when initializing.

缺少创建DataFrame或DataSource的相关文档,如何正确使用DataSource替代MLDataTable完成初始化?

解决方案

可以通过MLTextClassifier.DataSource结合原有MLDataTable的行数据来创建数据源,具体步骤如下:

  1. 从训练用的MLDataTable中提取文本列和标签列的字符串数据
  2. 用提取到的文本、标签数组初始化MLTextClassifier.DataSource
  3. 将数据源传入MLTextClassifier的初始化方法

修改后的完整代码示例:

let csvFile = Bundle.main.url(forResource: "all-data", withExtension: "csv")!
let dataTable = try MLDataTable(contentsOf: csvFile)

let (classifierEvaluationTable, classifierTrainingTable) = dataTable.randomSplit(by: 0.20, seed: 5)

// 提取训练数据中的文本与标签列数据
let trainingTexts = classifierTrainingTable["text"].strings!
let trainingLabels = classifierTrainingTable["sentiment"].strings!

// 创建符合要求的数据源
let trainingDataSource = MLTextClassifier.DataSource(texts: trainingTexts, labels: trainingLabels)

// 使用数据源初始化文本分类器
let classifier = try MLTextClassifier(trainingDataSource: trainingDataSource)

如果需要自定义分类器配置,可传入MLTextClassifier.Parameters参数:

let parameters = MLTextClassifier.Parameters()
// 示例:设置最大序列长度
parameters.maxSequenceLength = 512

let classifier = try MLTextClassifier(trainingDataSource: trainingDataSource, parameters: parameters)

内容的提问来源于stack exchange,提问作者john doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:57:00