具有 CreateML MLTextClassifier 类的 iOS 训练模型无法从 JSON 中过滤

Posted

技术标签:

【中文标题】具有 CreateML MLTextClassifier 类的 iOS 训练模型无法从 JSON 中过滤【英文标题】:iOS Training model with CreateML MLTextClassifier class unable to filter from JSON 【发布时间】:2020-08-21 09:39:56 【问题描述】:

我遇到了 MLTextClassifier 类的问题,该类用于 CreateML 用于文本。

下面是代码sn-p:

import CreateML
import Foundation

let objURL = URL(fileURLWithPath: "/Users/jayprakashdubey/Desktop/headlines.json")

// 1. Load data from a JSON file
guard let newsJsonFileContent = try? MLDataTable(contentsOf: objURL) else 
    exit(0)


// 2. Make a train-test split
let (training, testing) = newsJsonFileContent.randomSplit(by: 0.8, seed: 5)

print("training: \(training.description)")

// 3. Create the model
if let objNewsClassifier = try? MLTextClassifier(trainingData: training, textColumn: "title", labelColumn: "category") 

   . . . 
  else 
    print("Failed while classifying News - MLTextClassifier")

如果条件总是失败在上面的代码 sn-p.

下面是playground的控制台日志。

尝试了在 *** 上发布的所有解决方案,但没有一个奏效。

注意:我使用的是 Xcode v11.3.1。

以下是 JSON 文件结构:

[
  
    "text":"New 13-inch MacBook Pro comes with 6K monitor support, Dolby Atmos playback",
    "category":"Technology"
  ,
     . . .
  
    "text":"Apple Watch ECG detects signs of coronary ischemia missed by hospital ECG",
    "category":"Technology"
  
]

有什么办法吗?

【问题讨论】:

我用不同的 json 文件尝试了上面的代码。它工作正常。 i.stack.imgur.com/1DRg6.png @VinayakaSY:可以共享 JSON 文件吗? 我已经上传到这个路径了。路径:drive.google.com/file/d/10vWb2qXabHkfi7lex8dt_ijq80wHzNwn/… 这也有效。 drive.google.com/file/d/1QAue5u06339UQEPaezZZOTymYoT9EYBI/… @VinayakaSY:非常感谢朋友! textColumn 和 labelColumn 不匹配。交换了他们两个,它起作用了。 【参考方案1】:

textColumn 和 labelColumn 值不正确存在问题。交换了两者的值并且它起作用了。

下面是代码sn-p:

// 3. Create the model
if let objNewsClassifier = try? MLTextClassifier(trainingData: training, textColumn: "category", labelColumn: "title") 

   . . . 

【讨论】:

以上是关于具有 CreateML MLTextClassifier 类的 iOS 训练模型无法从 JSON 中过滤的主要内容,如果未能解决你的问题,请参考以下文章

CreateML:“无法保存文档。”

使用 createML 创建文本分类器模型时使用啥机器学习算法?

CreateML 数据分析已停止

CreateML 中活动分类的训练错误

json appstore中的createml应用程序

如何在 Swift(CreateML) 中读取文本文件的内容并将其解析为字典