TextLoaderSaverCatalog.CreateTextLoader Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource) |
Utwórz moduł ładujący TextLoadertekstowy . |
CreateTextLoader(DataOperationsCatalog, TextLoader+Column[], Char, Boolean, IMultiStreamSource, Boolean, Boolean, Boolean) |
Utwórz moduł ładujący TextLoadertekstowy . |
CreateTextLoader<TInput>(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource) |
Utwórz moduł TextLoader ładujący tekstowy, wnioskowając schemat zestawu danych na podstawie typu modelu danych. |
CreateTextLoader<TInput>(DataOperationsCatalog, Char, Boolean, IMultiStreamSource, Boolean, Boolean, Boolean) |
Utwórz moduł TextLoader ładujący tekstowy, wnioskowając schemat zestawu danych na podstawie typu modelu danych. |
CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)
Utwórz moduł ładujący TextLoadertekstowy .
public static Microsoft.ML.Data.TextLoader CreateTextLoader (this Microsoft.ML.DataOperationsCatalog catalog, Microsoft.ML.Data.TextLoader.Options options, Microsoft.ML.Data.IMultiStreamSource dataSample = default);
static member CreateTextLoader : Microsoft.ML.DataOperationsCatalog * Microsoft.ML.Data.TextLoader.Options * Microsoft.ML.Data.IMultiStreamSource -> Microsoft.ML.Data.TextLoader
<Extension()>
Public Function CreateTextLoader (catalog As DataOperationsCatalog, options As TextLoader.Options, Optional dataSample As IMultiStreamSource = Nothing) As TextLoader
Parametry
- catalog
- DataOperationsCatalog
Wykaz DataOperationsCatalog .
- options
- TextLoader.Options
Definiuje ustawienia operacji ładowania.
- dataSample
- IMultiStreamSource
Opcjonalna lokalizacja przykładu danych. Przykład może służyć do wnioskowania adnotacji nazwy miejsca, jeśli istnieje, a także liczby miejsc Columns zdefiniowanych za pomocą TextLoader.Rangenull
maksymalnego indeksu.
Jeśli przykład został zapisany przy użyciu platformy ML.NET SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean), będzie również zawierać informacje o schemacie w nagłówku, który moduł ładujący może odczytać, nawet jeśli Columns nie zostanie określony.
Aby użyć schematu zdefiniowanego w pliku, wszystkie inne TextLoader.Options dusze zostaną pozostawione z ich wartościami domyślnymi.
Zwraca
Dotyczy
CreateTextLoader(DataOperationsCatalog, TextLoader+Column[], Char, Boolean, IMultiStreamSource, Boolean, Boolean, Boolean)
Utwórz moduł ładujący TextLoadertekstowy .
public static Microsoft.ML.Data.TextLoader CreateTextLoader (this Microsoft.ML.DataOperationsCatalog catalog, Microsoft.ML.Data.TextLoader.Column[] columns, char separatorChar = '\t', bool hasHeader = false, Microsoft.ML.Data.IMultiStreamSource dataSample = default, bool allowQuoting = false, bool trimWhitespace = false, bool allowSparse = false);
static member CreateTextLoader : Microsoft.ML.DataOperationsCatalog * Microsoft.ML.Data.TextLoader.Column[] * char * bool * Microsoft.ML.Data.IMultiStreamSource * bool * bool * bool -> Microsoft.ML.Data.TextLoader
<Extension()>
Public Function CreateTextLoader (catalog As DataOperationsCatalog, columns As TextLoader.Column(), Optional separatorChar As Char = '\t', Optional hasHeader As Boolean = false, Optional dataSample As IMultiStreamSource = Nothing, Optional allowQuoting As Boolean = false, Optional trimWhitespace As Boolean = false, Optional allowSparse As Boolean = false) As TextLoader
Parametry
- catalog
- DataOperationsCatalog
Wykaz DataOperationsCatalog .
- columns
- TextLoader.Column[]
Tablica kolumn TextLoader.Column definiujących schemat.
- separatorChar
- Char
Znak używany jako separator między punktami danych w wierszu. Domyślnie znak karty jest używany jako separator.
- hasHeader
- Boolean
Czy plik ma nagłówek z nazwami funkcji. Po podaniu elementu wskazuje, true
że pierwszy wiersz w elemecie będzie używany dla nazw funkcji, a po Load(IMultiStreamSource) wywołaniu pierwszego wiersza zostanie pominięty. Jeśli nie ma podanego elementu, wystarczy wskazać, true
że moduł ładujący powinien pominąć pierwszy wiersz po Load(IMultiStreamSource) wywołaniu, ale kolumny nie będą miały adnotacji nazw miejsc. Jest to spowodowane tym, że schemat wyjściowy jest tworzony podczas tworzenia modułu ładującego, a nie w przypadku Load(IMultiStreamSource) wywołania.
- dataSample
- IMultiStreamSource
Opcjonalna lokalizacja przykładu danych. Przykład może służyć do wnioskowania adnotacji nazw miejsc, jeśli istnieje, a także liczby miejsc w kolumnie zdefiniowanej z TextLoader.Range maksymalnym indeksem null
.
Jeśli przykład został zapisany przy użyciu platformy ML.NET SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean), będzie również zawierać informacje o schemacie w nagłówku, który moduł ładujący może odczytać, nawet jeśli columns
jest null
to .
Aby użyć schematu zdefiniowanego w pliku, wszystkie inne argumenty należy pozostawić z ich wartościami domyślnymi.
- allowQuoting
- Boolean
Czy dane wejściowe mogą zawierać wartości z podwójnym cudzysłów. Ten parametr służy do rozróżniania znaków separatora w wartości wejściowej z rzeczywistych separatorów. Gdy true
separatory w cudzysłowach podwójnych są traktowane jako część wartości wejściowej. Gdy false
wszystkie separatory, nawet te w cudzysłowie, są traktowane jako ograniczniki nowej kolumny.
- trimWhitespace
- Boolean
Usuń końcowe odstępy z wierszy.
- allowSparse
- Boolean
Czy dane wejściowe mogą zawierać rozrzedne reprezentacje. Na przykład wiersz zawierający kolumny "5 2:6 4:3" oznacza, że istnieją 5 kolumn, a jedyną wartością niezerową są kolumny 2 i 4, które mają odpowiednio wartości 6 i 3. Indeksy kolumn są oparte na wartości zerowej, dlatego kolumny 2 i 4 reprezentują kolumny 3 i 5. Kolumna może również mieć gęste wartości, a po niej rozrzedzone wartości reprezentowane w ten sposób. Na przykład wiersz zawierający "1 2 5 2:6 4:3" reprezentuje dwie gęste kolumny z wartościami 1 i 2, a następnie 5 słabo reprezentowanych kolumn z wartościami 0, 0, 6, 0 i 3. Indeksy kolumn rozrzednych zaczynają się od 0, mimo że 0 reprezentuje trzecią kolumnę.
Zwraca
Przykłady
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace Samples.Dynamic.DataOperations
{
public static class LoadingText
{
// This examples shows all the ways to load data with TextLoader.
public static void Example()
{
// Create 5 data files to illustrate different loading methods.
var dataFiles = new List<string>();
var random = new Random(1);
var dataDirectoryName = "DataDir";
Directory.CreateDirectory(dataDirectoryName);
for (int i = 0; i < 5; i++)
{
var fileName = Path.Combine(dataDirectoryName, $"Data_{i}.csv");
dataFiles.Add(fileName);
using (var fs = File.CreateText(fileName))
{
// Write without header with 10 random columns, forcing
// approximately 80% of values to be 0.
for (int line = 0; line < 10; line++)
{
var sb = new StringBuilder();
for (int pos = 0; pos < 10; pos++)
{
var value = random.NextDouble();
sb.Append((value < 0.8 ? 0 : value).ToString() + '\t');
}
fs.WriteLine(sb.ToString(0, sb.Length - 1));
}
}
}
// Create a TextLoader.
var mlContext = new MLContext();
var loader = mlContext.Data.CreateTextLoader(
columns: new[]
{
new TextLoader.Column("Features", DataKind.Single, 0, 9)
},
hasHeader: false
);
// Load a single file from path.
var singleFileData = loader.Load(dataFiles[0]);
PrintRowCount(singleFileData);
// Expected Output:
// 10
// Load all 5 files from path.
var multipleFilesData = loader.Load(dataFiles.ToArray());
PrintRowCount(multipleFilesData);
// Expected Output:
// 50
// Load all files using path wildcard.
var multipleFilesWildcardData =
loader.Load(Path.Combine(dataDirectoryName, "Data_*.csv"));
PrintRowCount(multipleFilesWildcardData);
// Expected Output:
// 50
// Create a TextLoader with user defined type.
var loaderWithCustomType =
mlContext.Data.CreateTextLoader<Data>(hasHeader: false);
// Load a single file from path.
var singleFileCustomTypeData = loaderWithCustomType.Load(dataFiles[0]);
PrintRowCount(singleFileCustomTypeData);
// Expected Output:
// 10
// Create a TextLoader with unknown column length to illustrate
// how a data sample may be used to infer column size.
var dataSample = new MultiFileSource(dataFiles[0]);
var loaderWithUnknownLength = mlContext.Data.CreateTextLoader(
columns: new[]
{
new TextLoader.Column("Features",
DataKind.Single,
new[] { new TextLoader.Range(0, null) })
},
dataSample: dataSample
);
var dataWithInferredLength = loaderWithUnknownLength.Load(dataFiles[0]);
var featuresColumn = dataWithInferredLength.Schema.GetColumnOrNull("Features");
if (featuresColumn.HasValue)
Console.WriteLine(featuresColumn.Value.ToString());
// Expected Output:
// Features: Vector<Single, 10>
//
// ML.NET infers the correct length of 10 for the Features column,
// which is of type Vector<Single>.
PrintRowCount(dataWithInferredLength);
// Expected Output:
// 10
// Save the data with 10 rows to a text file to illustrate the use of
// sparse format.
var sparseDataFileName = Path.Combine(dataDirectoryName, "saved_data.tsv");
using (FileStream stream = new FileStream(sparseDataFileName, FileMode.Create))
mlContext.Data.SaveAsText(singleFileData, stream);
// Since there are many zeroes in the data, it will be saved in a sparse
// representation to save disk space. The data may be forced to be saved
// in a dense representation by setting forceDense to true. The sparse
// data will look like the following:
//
// 10 7:0.943862259
// 10 3:0.989767134
// 10 0:0.949778438 8:0.823028445 9:0.886469543
//
// The sparse representation of the first row indicates that there are
// 10 columns, the column 7 (8-th column) has value 0.943862259, and other
// omitted columns have value 0.
// Create a TextLoader that allows sparse input.
var sparseLoader = mlContext.Data.CreateTextLoader(
columns: new[]
{
new TextLoader.Column("Features", DataKind.Single, 0, 9)
},
allowSparse: true
);
// Load the saved sparse data.
var sparseData = sparseLoader.Load(sparseDataFileName);
PrintRowCount(sparseData);
// Expected Output:
// 10
// Create a TextLoader without any column schema using TextLoader.Options.
// Since the sparse data file was saved with ML.NET, it has the schema
// enoded in its header that the loader can understand:
//
// #@ TextLoader{
// #@ sep=tab
// #@ col=Features:R4:0-9
// #@ }
//
// The schema syntax is unimportant since it is only used internally. In
// short, it tells the loader that the values are separated by tabs, and
// that columns 0-9 in the text file are to be read into one column named
// "Features" of type Single (internal type R4).
var options = new TextLoader.Options()
{
AllowSparse = true,
};
var dataSampleWithSchema = new MultiFileSource(sparseDataFileName);
var sparseLoaderWithSchema =
mlContext.Data.CreateTextLoader(options, dataSample: dataSampleWithSchema);
// Load the saved sparse data.
var sparseDataWithSchema = sparseLoaderWithSchema.Load(sparseDataFileName);
PrintRowCount(sparseDataWithSchema);
// Expected Output:
// 10
}
private static void PrintRowCount(IDataView idv)
{
// IDataView is lazy so we need to iterate through it
// to get the number of rows.
long rowCount = 0;
using (var cursor = idv.GetRowCursor(idv.Schema))
while (cursor.MoveNext())
rowCount++;
Console.WriteLine(rowCount);
}
private class Data
{
[LoadColumn(0, 9)]
public float[] Features { get; set; }
}
}
}
Dotyczy
CreateTextLoader<TInput>(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)
Utwórz moduł TextLoader ładujący tekstowy, wnioskowając schemat zestawu danych na podstawie typu modelu danych.
public static Microsoft.ML.Data.TextLoader CreateTextLoader<TInput> (this Microsoft.ML.DataOperationsCatalog catalog, Microsoft.ML.Data.TextLoader.Options options, Microsoft.ML.Data.IMultiStreamSource dataSample = default);
static member CreateTextLoader : Microsoft.ML.DataOperationsCatalog * Microsoft.ML.Data.TextLoader.Options * Microsoft.ML.Data.IMultiStreamSource -> Microsoft.ML.Data.TextLoader
<Extension()>
Public Function CreateTextLoader(Of TInput) (catalog As DataOperationsCatalog, options As TextLoader.Options, Optional dataSample As IMultiStreamSource = Nothing) As TextLoader
Parametry typu
- TInput
Parametry
- catalog
- DataOperationsCatalog
Wykaz DataOperationsCatalog .
- options
- TextLoader.Options
Definiuje ustawienia operacji ładowania. Definiuje ustawienia operacji ładowania. Nie trzeba określać pola Kolumny, ponieważ kolumny będą wnioskowane przez tę metodę.
- dataSample
- IMultiStreamSource
Opcjonalna lokalizacja przykładu danych. Przykład może służyć do wnioskowania informacji o kolumnach, takich jak nazwy miejsc.
Zwraca
Dotyczy
CreateTextLoader<TInput>(DataOperationsCatalog, Char, Boolean, IMultiStreamSource, Boolean, Boolean, Boolean)
Utwórz moduł TextLoader ładujący tekstowy, wnioskowając schemat zestawu danych na podstawie typu modelu danych.
public static Microsoft.ML.Data.TextLoader CreateTextLoader<TInput> (this Microsoft.ML.DataOperationsCatalog catalog, char separatorChar = '\t', bool hasHeader = false, Microsoft.ML.Data.IMultiStreamSource dataSample = default, bool allowQuoting = false, bool trimWhitespace = false, bool allowSparse = false);
static member CreateTextLoader : Microsoft.ML.DataOperationsCatalog * char * bool * Microsoft.ML.Data.IMultiStreamSource * bool * bool * bool -> Microsoft.ML.Data.TextLoader
<Extension()>
Public Function CreateTextLoader(Of TInput) (catalog As DataOperationsCatalog, Optional separatorChar As Char = '\t', Optional hasHeader As Boolean = false, Optional dataSample As IMultiStreamSource = Nothing, Optional allowQuoting As Boolean = false, Optional trimWhitespace As Boolean = false, Optional allowSparse As Boolean = false) As TextLoader
Parametry typu
- TInput
Definiuje schemat danych do załadowania. Użyj pól publicznych lub właściwości ozdobionych LoadColumnAttribute (i ewentualnie innych atrybutów), aby określić nazwy kolumn i ich typy danych w schemacie załadowanych danych.
Parametry
- catalog
- DataOperationsCatalog
Wykaz DataOperationsCatalog .
- separatorChar
- Char
Znak separatora kolumny. Wartość domyślna to "\t"
- hasHeader
- Boolean
Czy plik ma nagłówek z nazwami funkcji. Po podaniu elementu wskazuje, true
że pierwszy wiersz w elemecie będzie używany dla nazw funkcji, a po Load(IMultiStreamSource) wywołaniu pierwszego wiersza zostanie pominięty. Jeśli nie ma podanego elementu, wystarczy wskazać, true
że moduł ładujący powinien pominąć pierwszy wiersz po Load(IMultiStreamSource) wywołaniu, ale kolumny nie będą miały adnotacji nazw miejsc. Jest to spowodowane tym, że schemat wyjściowy jest tworzony podczas tworzenia modułu ładującego, a nie w przypadku Load(IMultiStreamSource) wywołania.
- dataSample
- IMultiStreamSource
Opcjonalna lokalizacja przykładu danych. Przykład może służyć do wnioskowania adnotacji nazwy miejsca, jeśli istnieje.
- allowQuoting
- Boolean
Czy dane wejściowe mogą zawierać wartości z podwójnym cudzysłów. Ten parametr służy do rozróżniania znaków separatora w wartości wejściowej z rzeczywistych separatorów. Gdy true
separatory w cudzysłowach podwójnych są traktowane jako część wartości wejściowej. Gdy false
wszystkie separatory, nawet te cudzysłowy whitin, są traktowane jako ograniczniki nowej kolumny.
- trimWhitespace
- Boolean
Usuń końcowe odstępy z wierszy.
- allowSparse
- Boolean
Czy dane wejściowe mogą zawierać rozrzedne reprezentacje. Na przykład wiersz zawierający kolumny "5 2:6 4:3" oznacza, że istnieją 5 kolumn, a jedyną wartością niezerową są kolumny 2 i 4, które mają odpowiednio wartości 6 i 3. Indeksy kolumn są oparte na wartości zerowej, dlatego kolumny 2 i 4 reprezentują kolumny 3 i 5. Kolumna może również mieć gęste wartości, a po niej rozrzedzone wartości reprezentowane w ten sposób. Na przykład wiersz zawierający "1 2 5 2:6 4:3" reprezentuje dwie gęste kolumny z wartościami 1 i 2, a następnie 5 słabo reprezentowanych kolumn z wartościami 0, 0, 6, 0 i 3. Indeksy kolumn rozrzednych zaczynają się od 0, mimo że 0 reprezentuje trzecią kolumnę.