4

我正在使用 Create ML 创建模型。我正在使用 JSON 文件。

let data = try MLDataTable(contentsOf: URL(fileURLWithPath: "poems.json"))
let (trainingData , testingData) = data.randomSplit(by: 0.8, seed: 0)

let classifier = try MLRegressor(trainingData: data, targetColumn: "author", featureColumns: ["text"])
let metadata = MLModelMetadata(author: "ffffff", shortDescription: "sdhkgfjhsgdjfhgs", license: nil, version: "1.0", additional: nil)

try classifier.write(to: URL(fileURLWithPath: "poems.mlmodel"), metadata: metadata)

JSON 文件如下所示

{"title":"When You Are Old",
 "author":"William Butler Yeats",
 "text":"When you are old and grey and full of sleep,\nAnd nodding by the   fire, take down this book,\nAnd slowly read, and dream of the soft look\nYour eyes had once, and of their shadows deep;\nHow many loved your moments of glad grace,\nAnd loved your beauty with love false or true,\nBut one man loved the pilgrim Soul in you,\nAnd loved the sorrows of your changing face;\nAnd bending down beside the glowing bars,\nMurmur, a little sadly, how Love fled\nAnd paced upon the mountains overhead\nAnd hid his face amid a crowd of stars."}

按照教程,我正在尝试对“文本”进行文本检测并返回可能的“作者”

我可以做到,但我也希望有这个可能性。

使用 Create ML 创建模型,作为文本分类器,我只输出一个标签:作者。Create ML 有没有办法在文本分类中也有概率?

谢谢

4

3 回答 3

3

当前的 MLTextClassifier API 似乎无法实现。

如果您在 Netron 中打开您的 mlmodel 文件,https://github.com/lutzroeder/Netron/,它将向您显示模型产生的输出。我的猜测是它只是给出了类,而不是概率。

于 2018-09-08T11:47:29.050 回答
1

我想它还没有被MLTextClassifierAPI 支持。但是,您可以MLClassifier在创建模型时使用更通用(总体上不太准确)的模型从模型中获取概率。

于 2018-10-11T01:09:41.480 回答
0

在 XCode 游乐场中创建的 MLModel 是一个仅返回标签(字符串)的文本分类器。Apple 在 Github ( https://apple.github.io/turicreate/docs/userguide/text_classifier/ ) 上使用 turicreate python 库创建模型的示例是一个管道分类器,它返回一个标签及其概率 (String ->双倍的)。

于 2018-12-13T23:14:10.903 回答