Partager via


TextLoaderSaverCatalog.CreateTextLoader Méthode

Définition

Surcharges

CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)

Créez un chargeur de TextLoadertexte .

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

Créez un chargeur de TextLoadertexte .

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

Créez un chargeur TextLoader de texte en inférant le schéma de jeu de données à partir d’un type de modèle de données.

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

Créez un chargeur TextLoader de texte en inférant le schéma de jeu de données à partir d’un type de modèle de données.

CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)

Créez un chargeur de TextLoadertexte .

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

Paramètres

options
TextLoader.Options

Définit les paramètres de l’opération de chargement.

dataSample
IMultiStreamSource

Emplacement facultatif d’un exemple de données. L’exemple peut être utilisé pour déduire les annotations de nom d’emplacement si elles sont présentes, ainsi que le nombre d’emplacements dans Columns définis avec avec TextLoader.Range l’index null maximal. Si l’exemple a été enregistré avec ml.NET SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean), il contiendra également les informations de schéma dans l’en-tête que le chargeur peut lire même si Columns elles ne sont pas spécifiées. Pour utiliser le schéma défini dans le fichier, toutes les autres TextLoader.Options âmes doivent conserver leurs valeurs par défaut.

Retours

S’applique à

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

Créez un chargeur de TextLoadertexte .

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

Paramètres

columns
TextLoader.Column[]

Tableau de colonnes TextLoader.Column définissant le schéma.

separatorChar
Char

Caractère utilisé comme séparateur entre les points de données d’une ligne. Par défaut, le caractère d’onglet est utilisé comme séparateur.

hasHeader
Boolean

Indique si le fichier a un en-tête avec des noms de fonctionnalités. Lorsqu’un est fourni, true indique que la première ligne du sera utilisée pour les noms de caractéristiques et que, quand Load(IMultiStreamSource) est appelée, la première ligne sera ignorée. Quand aucun n’est fourni, true indique simplement que le chargeur doit ignorer la première ligne quand Load(IMultiStreamSource) est appelé, mais que les colonnes n’auront pas d’annotations de noms d’emplacements. Cela est dû au fait que le schéma de sortie est effectué lorsque le chargeur est créé et non quand Load(IMultiStreamSource) est appelé.

dataSample
IMultiStreamSource

Emplacement facultatif d’un exemple de données. L’exemple peut être utilisé pour déduire les annotations de nom d’emplacement si elles sont présentes, ainsi que le nombre d’emplacements dans une colonne définie avec avec TextLoader.Range l’index null maximal. Si l’exemple a été enregistré avec ml.NET SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean), il contiendra également les informations de schéma dans l’en-tête que le chargeur peut lire même si columns est null. Pour utiliser le schéma défini dans le fichier, tous les autres arguments doivent être conservés avec leurs valeurs par défaut.

allowQuoting
Boolean

Indique si l’entrée peut inclure des valeurs entre guillemets doubles. Ce paramètre est utilisé pour distinguer les caractères séparateurs d’une valeur d’entrée des séparateurs réels. Quand true, les séparateurs entre guillemets doubles sont traités dans le cadre de la valeur d’entrée. Quand false, tous les séparateurs, même ceux entre guillemets, sont traités comme délimitant une nouvelle colonne.

trimWhitespace
Boolean

Supprimez les espaces blancs de fin des lignes.

allowSparse
Boolean

Indique si l’entrée peut inclure des représentations éparses. Par exemple, une ligne contenant « 5 2:6 4:3 » signifie qu’il y a 5 colonnes, et les seules autres que zéro sont les colonnes 2 et 4, qui ont respectivement les valeurs 6 et 3. Les index de colonne étant de base zéro, les colonnes 2 et 4 représentent les 3e et 5e colonnes. Une colonne peut également avoir des valeurs denses suivies de valeurs éparses représentées de cette façon. Par exemple, une ligne contenant « 1 2 5 2:6 4:3 » représente deux colonnes denses avec les valeurs 1 et 2, suivies de 5 colonnes partiellement représentées avec les valeurs 0, 0, 6, 0 et 3. Les index des colonnes éparses commencent à partir de 0, même si 0 représente la troisième colonne.

Retours

Exemples

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

S’applique à

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

Créez un chargeur TextLoader de texte en inférant le schéma de jeu de données à partir d’un type de modèle de données.

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

Paramètres de type

TInput

Paramètres

options
TextLoader.Options

Définit les paramètres de l’opération de chargement. Définit les paramètres de l’opération de chargement. Inutile de spécifier un champ Colonnes, car les colonnes seront déduites par cette méthode.

dataSample
IMultiStreamSource

Emplacement facultatif d’un exemple de données. L’exemple peut être utilisé pour déduire des informations sur les colonnes, telles que les noms d’emplacements.

Retours

S’applique à

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

Créez un chargeur TextLoader de texte en inférant le schéma de jeu de données à partir d’un type de modèle de données.

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

Paramètres de type

TInput

Définit le schéma des données à charger. Utilisez des champs publics ou des propriétés décorées avec LoadColumnAttribute (et éventuellement d’autres attributs) pour spécifier les noms de colonnes et leurs types de données dans le schéma des données chargées.

Paramètres

separatorChar
Char

Caractère séparateur de colonne. La valeur par défaut est '\t'

hasHeader
Boolean

Indique si le fichier a un en-tête avec des noms de fonctionnalités. Lorsqu’un est fourni, true indique que la première ligne du sera utilisée pour les noms de caractéristiques et que, quand Load(IMultiStreamSource) est appelée, la première ligne sera ignorée. Quand aucun n’est fourni, true indique simplement que le chargeur doit ignorer la première ligne quand Load(IMultiStreamSource) est appelé, mais que les colonnes n’auront pas d’annotations de noms d’emplacements. Cela est dû au fait que le schéma de sortie est effectué lorsque le chargeur est créé et non quand Load(IMultiStreamSource) est appelé.

dataSample
IMultiStreamSource

Emplacement facultatif d’un exemple de données. L’exemple peut être utilisé pour déduire les annotations de nom d’emplacement, le cas échéant.

allowQuoting
Boolean

Indique si l’entrée peut inclure des valeurs entre guillemets doubles. Ce paramètre est utilisé pour distinguer les caractères séparateurs d’une valeur d’entrée des séparateurs réels. Quand true, les séparateurs entre guillemets doubles sont traités dans le cadre de la valeur d’entrée. Quand false, tous les séparateurs, même ceux entre guillemets blancs, sont traités comme délimitant une nouvelle colonne.

trimWhitespace
Boolean

Supprimez les espaces blancs de fin des lignes.

allowSparse
Boolean

Indique si l’entrée peut inclure des représentations éparses. Par exemple, une ligne contenant « 5 2:6 4:3 » signifie qu’il y a 5 colonnes, et les seules autres que zéro sont les colonnes 2 et 4, qui ont respectivement les valeurs 6 et 3. Les index de colonne étant de base zéro, les colonnes 2 et 4 représentent les 3e et 5e colonnes. Une colonne peut également avoir des valeurs denses suivies de valeurs éparses représentées de cette façon. Par exemple, une ligne contenant « 1 2 5 2:6 4:3 » représente deux colonnes denses avec les valeurs 1 et 2, suivies de 5 colonnes partiellement représentées avec les valeurs 0, 0, 6, 0 et 3. Les index des colonnes éparses commencent à partir de 0, même si 0 représente la troisième colonne.

Retours

S’applique à