iOS Модель обучения с классом CreateML MLTextClassifier не может выполнить фильтрацию из JSON - PullRequest
0 голосов
/ 06 мая 2020

У меня проблема с классом MLTextClassifier, который используется для CreateML для текста.

Ниже фрагмент кода:

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")
}

Если условие всегда не выполняется в фрагменте кода выше.

Ниже приведены журналы консоли playground.

Screenshot for console log

Пробовал с все решения, которые были опубликованы в Stackoverflow, но ни одно из них не сработало.

Примечание : Я использую 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"
  }
]

Любое исправление?

1 Ответ

1 голос
/ 07 мая 2020

Возникла проблема с неверными значениями textColumn и labelColumn . Поменял местами значения двух, и это сработало.

Ниже фрагмент кода:

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

   . . . 
}
...