TextLoaderSaverCatalog.CreateTextLoader Methode

Definition

Überlädt

CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)

Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs

Erstellen Sie ein Textladeprogramm TextLoader.

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

Parameter

options
TextLoader.Options

Definiert die Einstellungen des Ladevorgangs.

dataSample
IMultiStreamSource

Der optionale Speicherort eines Datenbeispiels. Das Beispiel kann zum Ableiten von Slotnamenanmerkungen verwendet werden, falls vorhanden, und auch zur Anzahl der Steckplätze, Columns die mit TextLoader.Range maximalem null Index definiert sind. Wenn das Beispiel mit ML.NET SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean)gespeichert wurde, enthält es auch die Schemainformationen in der Kopfzeile, die das Ladeprogramm lesen kann, auch wenn Columns nicht angegeben. Um das in der Datei definierte Schema zu verwenden, bleiben alle anderen TextLoader.Options Seelen mit ihren Standardwerten erhalten.

Gibt zurück

Gilt für:

CreateTextLoader(DataOperationsCatalog, TextLoader+Column[], Char, Boolean, IMultiStreamSource, Boolean, Boolean, Boolean)

Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs

Erstellen Sie ein Textladeprogramm TextLoader.

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

Parameter

columns
TextLoader.Column[]

Array von Spalten TextLoader.Column , die das Schema definieren.

separatorChar
Char

Das Zeichen, das als Trennzeichen zwischen Datenpunkten in einer Zeile verwendet wird. Standardmäßig wird das Tabstoppzeichen als Trennzeichen verwendet.

hasHeader
Boolean

Gibt an, ob die Datei über eine Kopfzeile mit Featurenamen verfügt. Wenn ein <"see paramref="dataSample"></see> bereitgestellt wird, true wird die erste Zeile im <Abschnitt "paramref="dataSample"></see> für Featurenamen verwendet, und wenn Load(IMultiStreamSource) sie aufgerufen wird, wird die erste Zeile übersprungen. Wenn "paramref="dataSample"/see> nicht angezeigt wird<, wird lediglich angegeben, true dass das Ladeprogramm die erste Zeile überspringen soll, wenn Load(IMultiStreamSource) sie aufgerufen wird, aber Spalten enthalten keine Anmerkungen zu Steckplatznamen.>< Dies liegt daran, dass das Ausgabeschema erstellt wird, wenn das Ladeprogramm erstellt wird und nicht, wenn Load(IMultiStreamSource) sie aufgerufen wird.

dataSample
IMultiStreamSource

Der optionale Speicherort eines Datenbeispiels. Das Beispiel kann zum Ableiten von Slotnamenanmerkungen verwendet werden, falls vorhanden, und auch zur Anzahl der Steckplätze in einer Spalte, die mit TextLoader.Range maximalem null Index definiert ist. Wenn das Beispiel mit ML.NET gespeichert wurde, enthält es auch die Schemainformationen in der Kopfzeile, die das Ladeprogramm lesen kann, auch wenn dies SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean)der Name istnull.columns Um das in der Datei definierte Schema zu verwenden, bleiben alle anderen Argumente mit ihren Standardwerten erhalten.

allowQuoting
Boolean

Gibt an, ob die Eingabe werte mit doppeltem Anführungszeichen enthalten kann. Dieser Parameter wird verwendet, um Trennzeichen in einem Eingabewert von tatsächlichen Trennzeichen zu unterscheiden. Wenn true, Trennzeichen in doppelten Anführungszeichen werden als Teil des Eingabewerts behandelt. Wenn false, alle Trennzeichen, auch innerhalb von Anführungszeichen, als Trennzeichen behandelt werden, werden als Trennzeichen für eine neue Spalte behandelt.

trimWhitespace
Boolean

Entfernen Sie nachfolgende Leerzeichen aus Zeilen.

allowSparse
Boolean

Gibt an, ob die Eingabe geringe Darstellungen enthalten kann. Beispielsweise bedeutet eine Zeile mit "5 2:6 4:3", dass es 5 Spalten gibt, und die einzige Nicht-Null sind Die Spalten 2 und 4, die werte 6 bzw. 3 aufweisen. Spaltenindizes sind nullbasiert, sodass die Spalten 2 und 4 die 3. und 5. Spalten darstellen. Eine Spalte kann auch dichte Werte aufweisen, gefolgt von geringen Werten, die in dieser Weise dargestellt werden. Beispielsweise stellt eine Zeile mit "1 2 5 2:6 4:3" zwei dichte Spalten mit den Werten 1 und 2 dar, gefolgt von 5 dünn dargestellten Spalten mit werten 0, 0, 6, 0 und 3. Die Indizes der geringen Spalten beginnen mit 0, obwohl 0 die dritte Spalte darstellt.

Gibt zurück

Beispiele

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; }
        }
    }
}

Gilt für:

CreateTextLoader<TInput>(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)

Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs

Erstellen Sie ein Textladeprogramm TextLoader , indem Sie das Datasetschema aus einem Datentyp ableiten.

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

Typparameter

TInput

Parameter

options
TextLoader.Options

Definiert die Einstellungen des Ladevorgangs. Definiert die Einstellungen des Ladevorgangs. Es muss kein Spaltenfeld angegeben werden, da Spalten von dieser Methode abgeleitet werden.

dataSample
IMultiStreamSource

Der optionale Speicherort eines Datenbeispiels. Das Beispiel kann verwendet werden, um Informationen zu den Spalten abzuleiten, z. B. Slotnamen.

Gibt zurück

Gilt für:

CreateTextLoader<TInput>(DataOperationsCatalog, Char, Boolean, IMultiStreamSource, Boolean, Boolean, Boolean)

Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs
Quelle:
TextLoaderSaverCatalog.cs

Erstellen Sie ein Textladeprogramm TextLoader , indem Sie das Datasetschema aus einem Datentyp ableiten.

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

Typparameter

TInput

Definiert das Schema der zu ladenden Daten. Verwenden Sie öffentliche Felder oder Eigenschaften, die mit LoadColumnAttribute (und möglicherweise anderen Attributen) versehen sind, um die Spaltennamen und deren Datentypen im Schema der geladenen Daten anzugeben.

Parameter

separatorChar
Char

Spaltentrennzeichen. Der Standardwert ist '\t'.

hasHeader
Boolean

Gibt an, ob die Datei über eine Kopfzeile mit Featurenamen verfügt. Wenn ein <"see paramref="dataSample"></see> bereitgestellt wird, true wird die erste Zeile im <Abschnitt "paramref="dataSample"></see> für Featurenamen verwendet, und wenn Load(IMultiStreamSource) sie aufgerufen wird, wird die erste Zeile übersprungen. Wenn "paramref="dataSample"/see> nicht angezeigt wird<, wird lediglich angegeben, true dass das Ladeprogramm die erste Zeile überspringen soll, wenn Load(IMultiStreamSource) sie aufgerufen wird, aber Spalten enthalten keine Anmerkungen zu Steckplatznamen.>< Dies liegt daran, dass das Ausgabeschema erstellt wird, wenn das Ladeprogramm erstellt wird und nicht, wenn Load(IMultiStreamSource) sie aufgerufen wird.

dataSample
IMultiStreamSource

Der optionale Speicherort eines Datenbeispiels. Das Beispiel kann verwendet werden, um Anmerkungen zum Slotnamen abzuleiten, falls vorhanden.

allowQuoting
Boolean

Gibt an, ob die Eingabe werte mit doppeltem Anführungszeichen enthalten kann. Dieser Parameter wird verwendet, um Trennzeichen in einem Eingabewert von tatsächlichen Trennzeichen zu unterscheiden. Wenn true, Trennzeichen in doppelten Anführungszeichen werden als Teil des Eingabewerts behandelt. Wenn falsealle Trennzeichen, auch diese whitin-Anführungszeichen, als Trennzeichen behandelt werden, werden als Trennzeichen einer neuen Spalte behandelt.

trimWhitespace
Boolean

Entfernen Sie nachfolgende Leerzeichen aus Zeilen.

allowSparse
Boolean

Gibt an, ob die Eingabe geringe Darstellungen enthalten kann. Beispielsweise bedeutet eine Zeile mit "5 2:6 4:3", dass es 5 Spalten gibt, und die einzige Nicht-Null sind Die Spalten 2 und 4, die werte 6 bzw. 3 aufweisen. Spaltenindizes sind nullbasiert, sodass die Spalten 2 und 4 die 3. und 5. Spalten darstellen. Eine Spalte kann auch dichte Werte aufweisen, gefolgt von geringen Werten, die in dieser Weise dargestellt werden. Beispielsweise stellt eine Zeile mit "1 2 5 2:6 4:3" zwei dichte Spalten mit den Werten 1 und 2 dar, gefolgt von 5 dünn dargestellten Spalten mit werten 0, 0, 6, 0 und 3. Die Indizes der geringen Spalten beginnen mit 0, obwohl 0 die dritte Spalte darstellt.

Gibt zurück

Gilt für: