Share via


TextLoaderSaverCatalog.CreateTextLoader Yöntem

Tanım

Aşırı Yüklemeler

CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)

Metin yükleyicisi TextLoaderoluşturun.

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

Metin yükleyicisi TextLoaderoluşturun.

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

Veri modeli türünden veri kümesi şemasını çıkararak bir metin yükleyicisi TextLoader oluşturun.

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

Veri modeli türünden veri kümesi şemasını çıkararak bir metin yükleyicisi TextLoader oluşturun.

CreateTextLoader(DataOperationsCatalog, TextLoader+Options, IMultiStreamSource)

Metin yükleyicisi TextLoaderoluşturun.

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

Parametreler

options
TextLoader.Options

Yükleme işleminin ayarlarını tanımlar.

dataSample
IMultiStreamSource

Veri örneğinin isteğe bağlı konumu. Örnek, varsa yuva adı ek açıklamalarını ve ayrıca maksimum dizinle TextLoader.Rangenull tanımlanan yuva Columns sayısını çıkarsamak için kullanılabilir. Örnek ML.NET SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean)ile kaydedildiyse, belirtilmemiş olsa Columns bile yükleyicinin okuyabileceği şema bilgilerini üst bilgisinde de içerir. Dosyada tanımlanan şemayı kullanmak için, diğer TextLoader.Options tüm ruhlular varsayılan değerleriyle bırakılır.

Döndürülenler

Şunlara uygulanır

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

Metin yükleyicisi TextLoaderoluşturun.

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

Parametreler

columns
TextLoader.Column[]

Şemayı tanımlayan sütun TextLoader.Column dizisi.

separatorChar
Char

Bir satırdaki veri noktaları arasında ayırıcı olarak kullanılan karakter. Varsayılan olarak sekme karakteri ayırıcı olarak kullanılır.

hasHeader
Boolean

Dosyanın özellik adlarıyla bir üst bilgisine sahip olup olmadığı. sağlandığında, true içindeki ilk satırın özellik adları için kullanılacağını ve çağrıldığında Load(IMultiStreamSource) ilk satırın atlandığını gösterir. Sağlanmadığında , true yükleyici çağrıldığında Load(IMultiStreamSource) ilk satırı atlamalıdır, ancak sütunların yuva adları ek açıklamaları olmaz. Bunun nedeni, çıktı şemasının yükleyici oluşturulduğunda yapılmasıdır, çağrıldığında yapılmaz Load(IMultiStreamSource) .

dataSample
IMultiStreamSource

Veri örneğinin isteğe bağlı konumu. Örnek, varsa yuva adı ek açıklamalarını ve ayrıca maksimum dizinle TextLoader.Rangenull tanımlanan bir sütundaki yuva sayısını çıkarsamak için kullanılabilir. Örnek ML.NET'in SaveAsText(DataOperationsCatalog, IDataView, Stream, Char, Boolean, Boolean, Boolean, Boolean)bilgileriyle kaydedildiyse, yükleyicinin olsa columnsnullbile okuyabileceği şema bilgilerini üst bilgisinde de içerir. Dosyada tanımlanan şemayı kullanmak için, diğer tüm bağımsız değişkenler varsayılan değerleriyle bırakılır.

allowQuoting
Boolean

Girişin çift tırnaklı değerler içerip içermeyebileceği. Bu parametre, bir giriş değerindeki ayırıcı karakterleri gerçek ayırıcılardan ayırmak için kullanılır. Çift tırnak içindeki ayırıcılar giriş değerinin bir parçası olarak kabul edildiğinde true. Tüm falseayırıcılar, tırnak içindekiler bile yeni bir sütunu sınırlandırma olarak kabul edilir.

trimWhitespace
Boolean

Satırlardan sondaki boşluğu kaldırın.

allowSparse
Boolean

Girişin seyrek gösterimler içerip içermeyebileceği. Örneğin, "5 2:6 4:3" içeren bir satır, 5 sütun olduğu ve sıfır olmayan tek sütunun sırasıyla 6 ve 3 değerlerine sahip 2 ve 4 sütunları olduğu anlamına gelir. Sütun dizinleri sıfır tabanlıdır, bu nedenle 2 ve 4 sütunları 3. ve 5. sütunları temsil eder. Bir sütunun yoğun değerleri ve ardından bu şekilde temsil edilen seyrek değerler de olabilir. Örneğin, "1 2 5 2:6 4:3" içeren bir satır, 1 ve 2 değerlerine sahip iki yoğun sütunu ve ardından 0, 0, 6, 0 ve 3 değerleriyle seyrek temsil edilen 5 sütunu temsil eder. Seyrek sütunların dizinleri, 0 üçüncü sütunu temsil etse de 0'dan başlar.

Döndürülenler

Örnekler

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

Şunlara uygulanır

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

Veri modeli türünden veri kümesi şemasını çıkararak bir metin yükleyicisi TextLoader oluşturun.

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

Tür Parametreleri

TInput

Parametreler

options
TextLoader.Options

Yükleme işleminin ayarlarını tanımlar. Yükleme işleminin ayarlarını tanımlar. Sütunlar bu yöntem tarafından çıkarılacağı için Sütunlar alanı belirtmeniz gerekmez.

dataSample
IMultiStreamSource

Veri örneğinin isteğe bağlı konumu. Örnek, yuva adları gibi sütunlar hakkındaki bilgileri çıkarsamak için kullanılabilir.

Döndürülenler

Şunlara uygulanır

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

Veri modeli türünden veri kümesi şemasını çıkararak bir metin yükleyicisi TextLoader oluşturun.

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

Tür Parametreleri

TInput

Yüklenecek verilerin şemasını tanımlar. Yüklenen verilerin şemasında sütun adlarını ve bunların veri türlerini belirtmek için ortak alanları veya LoadColumnAttribute özellikleri (ve muhtemelen diğer öznitelikleri) kullanın.

Parametreler

separatorChar
Char

Sütun ayırıcı karakteri. Varsayılan değer :'\t'.

hasHeader
Boolean

Dosyanın özellik adlarıyla bir üst bilgisine sahip olup olmadığı. sağlandığında, true içindeki ilk satırın özellik adları için kullanılacağını ve çağrıldığında Load(IMultiStreamSource) ilk satırın atlandığını gösterir. Sağlanmadığında , true yükleyici çağrıldığında Load(IMultiStreamSource) ilk satırı atlamalıdır, ancak sütunların yuva adları ek açıklamaları olmaz. Bunun nedeni, çıktı şemasının yükleyici oluşturulduğunda yapılmasıdır, çağrıldığında yapılmaz Load(IMultiStreamSource) .

dataSample
IMultiStreamSource

Veri örneğinin isteğe bağlı konumu. Örnek, varsa yuva adı ek açıklamalarını çıkarsamak için kullanılabilir.

allowQuoting
Boolean

Girişin çift tırnaklı değerler içerip içermeyebileceği. Bu parametre, bir giriş değerindeki ayırıcı karakterleri gerçek ayırıcılardan ayırmak için kullanılır. Çift tırnak içindeki ayırıcılar giriş değerinin bir parçası olarak kabul edildiğinde true. Olduğunda false, tüm ayırıcılar, hatta bu beyaz tırnak işaretleri yeni bir sütunu sınırlandırma olarak kabul edilir.

trimWhitespace
Boolean

Satırlardan sondaki boşluğu kaldırın.

allowSparse
Boolean

Girişin seyrek gösterimler içerip içermeyebileceği. Örneğin, "5 2:6 4:3" içeren bir satır, 5 sütun olduğu ve sıfır olmayan tek sütunun sırasıyla 6 ve 3 değerlerine sahip 2 ve 4 sütunları olduğu anlamına gelir. Sütun dizinleri sıfır tabanlıdır, bu nedenle 2 ve 4 sütunları 3. ve 5. sütunları temsil eder. Bir sütunun yoğun değerleri ve ardından bu şekilde temsil edilen seyrek değerler de olabilir. Örneğin, "1 2 5 2:6 4:3" içeren bir satır, 1 ve 2 değerlerine sahip iki yoğun sütunu ve ardından 0, 0, 6, 0 ve 3 değerleriyle seyrek temsil edilen 5 sütunu temsil eder. Seyrek sütunların dizinleri, 0 üçüncü sütunu temsil etse de 0'dan başlar.

Döndürülenler

Şunlara uygulanır