Problem mit text classifier model

Hi, ich habe nach folgender Anleitung versucht ein Text classifier model zu machen.Allerdings scheitert dies daran, das die evaluation() Funktion nicht funktioniert.Den Error den ich (in SwiftPlayground) bekomme ist:

No exact matches in call to instance method 'evaluation'

Hier ist der Code, den ich verwende:

if #available(iOSApplicationExtension 15.0, *) {

        let data = try! MLDataTable(contentsOf:  fileLiteral(resourceName: "TestData.json")) 

        let (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 5)

        

        let sentimentClassifier = try! MLTextClassifier(trainingData: trainingData,

                                                       textColumn: "text",

                                                       labelColumn: "label")

        // Training accuracy as a percentage

        let trainingAccuracy = (1.0 - sentimentClassifier.trainingMetrics.classificationError) * 100



        // Validation accuracy as a percentage

        let validationAccuracy = (1.0 - sentimentClassifier.validationMetrics.classificationError) * 100

        let evaluationMetrics = sentimentClassifier.evaluation(on: testingData)//Error hier

        let evaluationAccuracy = (1.0 - evaluationMetrics.classificationError) * 100

        

        let metadata = MLModelMetadata(author: "No One",

                                       shortDescription: "A model trained to classify movie review sentiment",

                                       version: "1.0")



        try! sentimentClassifier.write(to: URL(fileURLWithPath: Bundle.main.path(forResource: "MODEL", ofType: "mlmodel")!),

                                      metadata: metadata)

    } else {

        print("dein Gerät erfüllt nicht die Bedingungen für dieses Programm")

    }

vielen Dank im Voraus (:

Replies

Hallo!

Zunächst entschuldigen Sie mein Deutsch, aber ich werde mein Bestes geben. Du hast eine gute Frage gestellt. Der Fehler, den Sie sehen, liegt daran, dass es keinen evaluation Aufruf von einer MLDataTable gibt. Es gibt mehrere Möglichkeiten, und ich empfehle die Verwendung eines DataFrame aus dem TabularData Framework. Ich habe unten eine Beispielcodezeile eingefügt, die die fehlerhafte Zeile ersetzt.

let evaluationMetrics = sentimentClassifier.evaluation(on: DataFrame(testingData), textColumn: "text", labelColumn: "label")

Hoffe das ist hilfreich! Jack