Dil

TextCatalog.ProduceHashedNgrams Yöntem

Tanım

Aşırı Yüklemeler

Name Description
ProduceHashedNgrams(TransformsCatalog+TextTransforms, String, String, Int32, Int32, Int32, Boolean, UInt32, Boolean, Int32, Boolean)

NgramHashingEstimatoriçinde belirtilen inputColumnName sütundaki verileri yeni bir sütuna kopyalayan bir oluşturun: outputColumnName ve karma n-gram sayılarından oluşan bir vektör oluşturur.

ProduceHashedNgrams(TransformsCatalog+TextTransforms, String, String[], Int32, Int32, Int32, Boolean, UInt32, Boolean, Int32, Boolean)

NgramHashingEstimatoriçinde belirtilen inputColumnNames birden çok sütundaki verileri yeni bir sütuna outputColumnName alan ve karma n gram cinsinden bir vektör oluşturan bir oluşturun.

ProduceHashedNgrams(TransformsCatalog+TextTransforms, String, String, Int32, Int32, Int32, Boolean, UInt32, Boolean, Int32, Boolean)

Kaynak:
TextCatalog.cs
Kaynak:
TextCatalog.cs
Kaynak:
TextCatalog.cs

NgramHashingEstimatoriçinde belirtilen inputColumnName sütundaki verileri yeni bir sütuna kopyalayan bir oluşturun: outputColumnName ve karma n-gram sayılarından oluşan bir vektör oluşturur.

public static Microsoft.ML.Transforms.Text.NgramHashingEstimator ProduceHashedNgrams(this Microsoft.ML.TransformsCatalog.TextTransforms catalog, string outputColumnName, string inputColumnName = default, int numberOfBits = 16, int ngramLength = 2, int skipLength = 0, bool useAllLengths = true, uint seed = 314489979, bool useOrderedHashing = true, int maximumNumberOfInverts = 0, bool rehashUnigrams = false);
static member ProduceHashedNgrams : Microsoft.ML.TransformsCatalog.TextTransforms * string * string * int * int * int * bool * uint32 * bool * int * bool -> Microsoft.ML.Transforms.Text.NgramHashingEstimator
<Extension()>
Public Function ProduceHashedNgrams (catalog As TransformsCatalog.TextTransforms, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional numberOfBits As Integer = 16, Optional ngramLength As Integer = 2, Optional skipLength As Integer = 0, Optional useAllLengths As Boolean = true, Optional seed As UInteger = 314489979, Optional useOrderedHashing As Boolean = true, Optional maximumNumberOfInverts As Integer = 0, Optional rehashUnigrams As Boolean = false) As NgramHashingEstimator

Parametreler

catalog
TransformsCatalog.TextTransforms

Dönüşümün kataloğu.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNameadı. Bu sütunun veri türü vektör olacaktır Single.

inputColumnName
String

Verilerin kopyalanması için sütunun adı. Bu tahmin aracı, anahtar türünün vektörünün üzerinde çalışır.

numberOfBits
Int32

Karma değere dönüştürülecek bit sayısı. 1 ile 30 arasında (dahil) olmalıdır.

ngramLength
Int32

Ngram uzunluğu.

skipLength
Int32

N gram oluştururken atlanması gereken en fazla belirteç sayısı.

useAllLengths
Boolean

en fazla ngramLength veya yalnızca ngramLengthn gram uzunluklarının dahil edilip edilmeyeceği.

seed
UInt32

Karma tohum.

useOrderedHashing
Boolean

Her kaynak sütunun konumunun karmaya eklenip eklenmeyeceği (birden çok kaynak sütun olduğunda).

maximumNumberOfInverts
Int32

Karma oluşturma sırasında özgün değerler ve üretilen karma değerler arasında eşlemeler oluştururuz. Özgün değerlerin metin gösterimi, yeni sütun için ek açıklamaların yuva adlarında depolanır. Bu şekilde karma oluşturma, birçok başlangıç değerini bir değerle eşleyebilir. maximumNumberOfInverts , saklanması gereken bir karmaya eşlenen ayrı giriş değerlerinin sayısının üst sınırlarını belirtir. <döndürür>0</returns> hiçbir giriş değerini tutmaz. <returns-1></returns>, her karmaya eşlemesi olan tüm giriş değerlerini korur.

rehashUnigrams
Boolean

Tek birimlerin yeniden vurgulanıp düzeltilmeyeceği.

Döndürülenler

Açıklamalar

NgramHashingEstimator, metinleri dahili olarak belirteçli hale getirerek WordHashBagEstimator belirteçli metni giriş olarak alan bir yöntemden WordHashBagEstimatorNgramHashingEstimator farklıdır.

Şunlara uygulanır

ProduceHashedNgrams(TransformsCatalog+TextTransforms, String, String[], Int32, Int32, Int32, Boolean, UInt32, Boolean, Int32, Boolean)

Kaynak:
TextCatalog.cs
Kaynak:
TextCatalog.cs
Kaynak:
TextCatalog.cs

NgramHashingEstimatoriçinde belirtilen inputColumnNames birden çok sütundaki verileri yeni bir sütuna outputColumnName alan ve karma n gram cinsinden bir vektör oluşturan bir oluşturun.

public static Microsoft.ML.Transforms.Text.NgramHashingEstimator ProduceHashedNgrams(this Microsoft.ML.TransformsCatalog.TextTransforms catalog, string outputColumnName, string[] inputColumnNames = default, int numberOfBits = 16, int ngramLength = 2, int skipLength = 0, bool useAllLengths = true, uint seed = 314489979, bool useOrderedHashing = true, int maximumNumberOfInverts = 0, bool rehashUnigrams = false);
static member ProduceHashedNgrams : Microsoft.ML.TransformsCatalog.TextTransforms * string * string[] * int * int * int * bool * uint32 * bool * int * bool -> Microsoft.ML.Transforms.Text.NgramHashingEstimator
<Extension()>
Public Function ProduceHashedNgrams (catalog As TransformsCatalog.TextTransforms, outputColumnName As String, Optional inputColumnNames As String() = Nothing, Optional numberOfBits As Integer = 16, Optional ngramLength As Integer = 2, Optional skipLength As Integer = 0, Optional useAllLengths As Boolean = true, Optional seed As UInteger = 314489979, Optional useOrderedHashing As Boolean = true, Optional maximumNumberOfInverts As Integer = 0, Optional rehashUnigrams As Boolean = false) As NgramHashingEstimator

Parametreler

catalog
TransformsCatalog.TextTransforms

Dönüşümün kataloğu.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNamesadı. Bu sütunun veri türü bilinen boyutuna Singlesahip vektör olacaktır.

inputColumnNames
String[]

Verileri almak için birden çok sütunun adı. Bu tahmin aracı, anahtar türünün vektörünün üzerinde çalışır.

numberOfBits
Int32

Karma değere dönüştürülecek bit sayısı. 1 ile 30 arasında (dahil) olmalıdır.

ngramLength
Int32

Ngram uzunluğu.

skipLength
Int32

N gram oluştururken atlanması gereken en fazla belirteç sayısı.

useAllLengths
Boolean

en fazla ngramLength veya yalnızca ngramLengthn gram uzunluklarının dahil edilip edilmeyeceği.

seed
UInt32

Karma tohum.

useOrderedHashing
Boolean

Her kaynak sütunun konumunun karmaya eklenip eklenmeyeceği (birden çok kaynak sütun olduğunda).

maximumNumberOfInverts
Int32

Karma oluşturma sırasında özgün değerler ve üretilen karma değerler arasında eşlemeler oluştururuz. Özgün değerlerin metin gösterimi, yeni sütun için ek açıklamaların yuva adlarında depolanır. Bu şekilde karma oluşturma, birçok başlangıç değerini bir değerle eşleyebilir. maximumNumberOfInverts , saklanması gereken bir karmaya eşlenen ayrı giriş değerlerinin sayısının üst sınırlarını belirtir. <döndürür>0</returns> hiçbir giriş değerini tutmaz. <returns-1></returns>, her karmaya eşlemesi olan tüm giriş değerlerini korur.

rehashUnigrams
Boolean

Tek birimlerin yeniden vurgulanıp düzeltilmeyeceği.

Döndürülenler

Örnekler

using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;

namespace Samples.Dynamic
{
    public static class ProduceHashedNgrams
    {
        public static void Example()
        {
            // Create a new ML context, for ML.NET operations. It can be used for
            // exception tracking and logging, as well as the source of randomness.
            var mlContext = new MLContext();

            // Create a small dataset as an IEnumerable.
            var samples = new List<TextData>()
            {
                new TextData(){ Text = "This is an example to compute n-grams " +
                "using hashing." },

                new TextData(){ Text = "N-gram is a sequence of 'N' consecutive" +
                " words/tokens." },

                new TextData(){ Text = "ML.NET's ProduceHashedNgrams API " +
                "produces count of n-grams and hashes it as an index into a " +
                "vector of given bit length." },

                new TextData(){ Text = "The hashing reduces the size of the " +
                "output feature vector" },

                new TextData(){ Text = "which is useful in case when number of " +
                "n-grams is very large." },
            };

            // Convert training data to IDataView.
            var dataview = mlContext.Data.LoadFromEnumerable(samples);

            // A pipeline for converting text into numeric hashed n-gram features.
            // The following call to 'ProduceHashedNgrams' requires the tokenized
            // text /string as input. This is achieved by calling 
            // 'TokenizeIntoWords' first followed by 'ProduceHashedNgrams'.
            // Please note that the length of the output feature vector depends on
            // the 'numberOfBits' settings.
            var textPipeline = mlContext.Transforms.Text.TokenizeIntoWords("Tokens",
                "Text")
                .Append(mlContext.Transforms.Conversion.MapValueToKey("Tokens"))
                .Append(mlContext.Transforms.Text.ProduceHashedNgrams(
                    "NgramFeatures", "Tokens",
                    numberOfBits: 5,
                    ngramLength: 3,
                    useAllLengths: false,
                    maximumNumberOfInverts: 1));

            // Fit to data.
            var textTransformer = textPipeline.Fit(dataview);
            var transformedDataView = textTransformer.Transform(dataview);

            // Create the prediction engine to get the features extracted from the
            // text.
            var predictionEngine = mlContext.Model.CreatePredictionEngine<TextData,
                TransformedTextData>(textTransformer);

            // Convert the text into numeric features.
            var prediction = predictionEngine.Predict(samples[0]);

            // Print the length of the feature vector.
            Console.WriteLine("Number of Features: " + prediction.NgramFeatures
                .Length);

            // Preview of the produced n-grams.
            // Get the slot names from the column's metadata.
            // The slot names for a vector column corresponds to the names
            // associated with each position in the vector.
            VBuffer<ReadOnlyMemory<char>> slotNames = default;
            transformedDataView.Schema["NgramFeatures"].GetSlotNames(ref slotNames);
            var NgramFeaturesColumn = transformedDataView.GetColumn<VBuffer<float>>(
                transformedDataView.Schema["NgramFeatures"]);

            var slots = slotNames.GetValues();
            Console.Write("N-grams: ");
            foreach (var featureRow in NgramFeaturesColumn)
            {
                foreach (var item in featureRow.Items())
                    Console.Write($"{slots[item.Key]}  ");
                Console.WriteLine();
            }

            // Print the first 10 feature values.
            Console.Write("Features: ");
            for (int i = 0; i < 10; i++)
                Console.Write($"{prediction.NgramFeatures[i]:F4}  ");

            //  Expected output:
            //   Number of Features:  32
            //   N-grams:   This|is|an  example|to|compute  compute|n-grams|using  n-grams|using|hashing.  an|example|to  is|an|example  a|sequence|of  of|'N'|consecutive  is|a|sequence  N-gram|is|a  ...
            //   Features:    0.0000          0.0000               2.0000               0.0000               0.0000        1.0000          0.0000        0.0000              1.0000          0.0000  ...
        }

        private class TextData
        {
            public string Text { get; set; }
        }

        private class TransformedTextData : TextData
        {
            public float[] NgramFeatures { get; set; }
        }
    }
}

Açıklamalar

NgramHashingEstimator, metinleri dahili olarak belirteçli hale getirerek WordHashBagEstimator belirteçli metni giriş olarak alan bir yöntemden WordHashBagEstimatorNgramHashingEstimator farklıdır.

Şunlara uygulanır