TextLoader
用于从文本文件加载数据。您需要指定什么是数据列、它们的类型以及在文本文件中的位置。
请注意,完全加载文件的某些列或多次加载同一列是完全可以接受的。
示例文件[1]:
Label Workclass education marital-status
0 Private 11th Never-married
0 Private HS-grad Married-civ-spouse
1 Local-gov Assoc-acdm Married-civ-spouse
1 Private Some-college Married-civ-spouse
您可以这样加载数据:
// 创建加载器:定义数据列以及它们在文本文件中的位置。
var loader = mlContext.Data.CreateTextLoader(new[] {// 描述“label”的布尔列。new TextLoader.Column("Label", DataKind.Boolean, 0),// 三个文本列。new TextLoader.Column("Workclass", DataKind.String, 1),new TextLoader.Column("Education", DataKind.String, 2),new TextLoader.Column("MaritalStatus", DataKind.String, 3)},// 文件的第一行是标题,而不是数据行。hasHeader: true
);// 现在加载文件(记住,加载器是延迟执行的,所以实际加载将在访问数据时发生)。
var data = loader.Load(dataPath);
您还可以创建数据模型类,并基于此类型加载数据。
// 数据模型。
private class InspectedRow
{[LoadColumn(0)]public bool Label { get; set; }[LoadColumn(1)]public string Workclass { get; set; }[LoadColumn(2)]public string Education { get; set; }[LoadColumn(3)]public string MaritalStatus { get; set; }
}private class InspectedRowWithAllFeatures : InspectedRow
{public string[] AllFeatures { get; set; }
}// 将数据加载到数据视图中。
var data = mlContext.Data.LoadFromTextFile<InspectedRow>(dataPath,// 文件的第一行是标题,而不是数据行。hasHeader: true
)
参考资料
[1]
示例文件: https://github.com/dotnet/machinelearning/blob/main/test/data/adult.tiny.with-schema.txt