Technieken voor kenmerktransformatie
- Onderwerpen:
- Query's
Gemaakt voor:
- Ontwikkelaar
Transformaties zijn cruciale voorbewerkingsstappen die gegevens omzetten of schalen in een formaat dat geschikt is voor modeltraining en -analyse en die optimale prestaties en nauwkeurigheid garanderen. Dit document fungeert als aanvullende syntaxisbron en biedt uitgebreide informatie over belangrijke technieken voor het transformeren van functies voor het voorbewerken van gegevens.
Machinedesmodellen kunnen tekenreekswaarden of null-waarden niet rechtstreeks verwerken, waardoor gegevensvoorbewerking essentieel is. In deze handleiding wordt uitgelegd hoe u verschillende transformaties kunt gebruiken om ontbrekende waarden toe te passen, categoriale gegevens om te zetten in numerieke indelingen en technieken voor schalen van functies zoals eenwarige codering en vectorisatie toe te passen. Deze methodes laten modellen toe om effectief van de gegevens te interpreteren en te leren, uiteindelijk hun prestaties te verbeteren.
Automatische functietransformatie
Als u ervoor kiest de component TRANSFORM
over te slaan in de opdracht CREATE MODEL
, wordt de functie automatisch getransformeerd. Automatische gegevensvoorbewerking omvat null-vervanging en standaardfunctietransformaties (op basis van het gegevenstype). Numerieke kolommen en tekstkolommen worden automatisch toegerekend en vervolgens worden functietransformaties uitgevoerd om ervoor te zorgen dat de gegevens een geschikte indeling hebben voor modeltraining in het leren van machines. Dit proces omvat het toerekenen van gegevens en categorische, numerieke en booleaanse transformaties.
In de volgende tabellen wordt uitgelegd hoe verschillende gegevenstypen worden verwerkt wanneer de component TRANSFORM
wordt weggelaten tijdens de opdracht CREATE MODEL
.
Null-vervanging
Gegevenstype | Null-vervanging |
---|---|
Numeriek | Nulls worden vervangen door de gemiddelde waarde van de kolom. |
Categorisch | Nulls worden vervangen door het trefwoord ml_unknown . |
Boolean | Nulls worden vervangen door een FALSE -waarde. |
Tijdstempel | Dit wordt een doorlopend veld verwacht. |
Geneste/STRUCT | De vervanging hangt van het datatype van de bladknoop af. |
Eigenschaptransformatie
Gegevenstype | Functietransformatie |
---|---|
Numeriek | NIET VEREIST - aangezien dit gegevenstype door machine het leren algoritmen wordt begrepen. |
String | Tekenreeksindexering vindt plaats. |
Boolean | Tekenreeksindexering vindt plaats. |
Tijdstempel | Er vindt geen bewerking plaats. |
STRUCT | De waarde wordt uitgebreid tot het bladknooppunt. Transformatie vindt plaats op basis van het gegevenstype van het bladknooppunt. |
voorbeeld
CREATE model modelname options(model_type='logistic_reg', label='rating') AS SELECT * FROM movie_rating;
Handmatige functietransformaties
Als u aangepaste gegevensvoorbewerking wilt definiëren in de instructie CREATE MODEL
, gebruikt u de component TRANSFORM
in combinatie met een willekeurig aantal van de beschikbare transformatiefuncties. Deze handmatige voorbewerkingsfuncties kunnen ook buiten de component TRANSFORM
worden gebruikt. Alle transformaties die in de transformatorsectie hieronderworden besproken, kunnen worden gebruikt om de gegevens manueel vooraf te verwerken.
Belangrijkste kenmerken
Hier volgt een overzicht van de belangrijkste kenmerken van functietransformatie waarmee u rekening moet houden wanneer u de voorbewerkingsfuncties definieert:
-
Syntaxis:
TRANSFORM(functionName(colName, parameters) <aliasNAME>)
- De naam van de alias is verplicht in de syntaxis. U moet een aliasnaam opgeven anders mislukt de query.
-
Parameters: De parameters zijn positionele argumenten. Dit betekent dat elke parameter alleen bepaalde waarden kan gebruiken en dat alle voorafgaande parameters moeten worden opgegeven als er aangepaste waarden zijn opgegeven. Raadpleeg de relevante documentatie voor meer informatie over welke functie het argument gebruikt.
-
het Ketsen transformatoren: De output van één transformator kan de input aan een andere transformator worden.
-
het gebruik van de Eigenschap: De laatste eigenschaptransformatie wordt gebruikt als eigenschap van het machine het leren model.
Voorbeeld
CREATE MODEL modelname
TRANSFORM(
string_imputer(language, 'adding_null') AS imp_language,
numeric_imputer(users_count, 'mode') AS imp_users_count,
string_indexer(imp_language) AS si_lang,
vector_assembler(array(imp_users_count, si_lang, watch_minutes)) AS features
)
OPTIONS(MODEL_TYPE='logistic_reg', LABEL='rating')
AS SELECT * FROM df;
Beschikbare transformaties
Er zijn 19 beschikbare transformaties. Deze transformaties zijn verdeeld in Algemene transformaties, Numerieke transformaties, Categorische transformaties, en Textual transformaties.
Algemene transformaties
Lees deze sectie voor details op de transformatoren die voor een brede waaier van gegevenstypes worden gebruikt. Deze informatie is essentieel als u transformaties moet toepassen die niet specifiek zijn voor categoriale of tekstuele gegevens.
Numerieke invoer
De Numerieke invoertransformator voltooit ontbrekende waarden in een dataset. Dit gebruikt of het gemiddelde, mediaan, of wijze van de kolommen waarin de ontbrekende waarden worden gevestigd. De invoerkolommen moeten DoubleType
of FloatType
zijn. Meer informatie en voorbeelden kunnen in de documentatie van het het algoritme van de Vonkworden gevonden.
Datatypen
- Datatype invoer: Numeriek
- Datatype uitvoer: Numeriek
Definitie
transformer(numeric_imputer(hour, 'mean') hour_imputed)
Parameters
STRATEGY
mean
, median
, mode
] .Voorbeeld vóór toerekening
Voorbeeld na toerekening (gebruikend gemiddelde strategie)
Tekeninvoer
De uitvoerder van het Koord transformator voltooit ontbrekende waarden in een dataset gebruikend een koord dat door de gebruiker als functieargument wordt verstrekt. De invoer- en uitvoerkolommen moeten het gegevenstype string
hebben.
Datatypen
- Input datatype: String
- Output datatype: String
Definitie
transform(string_imputer(name, 'unknown_name') as name_imputed)
Parameters
NULL_REPLACEMENT
Voorbeeld vóór toerekening
Voorbeeld na toerekening (gebruikend "ml_unknown"als vervanging)
Booleaanse invoer
De invoertransformator Van Boole voltooit ontbrekende waarden in een dataset voor een booleaanse kolom. De invoer- en uitvoerkolommen moeten van het Boolean
type zijn.
Datatypen
- Input datatype: Boolean
- Output datatype: Boolean
Definitie
transform(boolean_imputer(name, true) as name_imputed)
Parameters
NULL_REPLACEMENT
true
, false
].Voorbeeld vóór toerekening
Voorbeeld na toerekening (het gebruiken "waar"als vervanging)
Vectorassembleur
De transformator VectorAssembler
combineert een gespecificeerde lijst van inputkolommen in één enkele vectorkolom, die het gemakkelijker maken om veelvoudige eigenschappen in machine het leren modellen te beheren. Dit is met name handig als u onbewerkte functies en functies die door verschillende functietransformatoren zijn gegenereerd, wilt samenvoegen tot één verenigde eigenschapvector. VectorAssembler
accepteert invoerkolommen van numerieke, booleaanse en vectortypen. In elke rij worden de waarden van de invoerkolommen in de opgegeven volgorde samengevoegd tot een vector.
Datatypen
- Datatype van de input:
array[string]
(kolomnamen met numerieke/serie [ numerieke ] waarden) - Datatype uitvoer:
Vector[double]
Definitie
transform(vector_assembler(id, hour, mobile, userFeatures) as features)
Parameters
Voorbeeld vóór transformatie
Voorbeeld na transformatie
Numerieke transformaties
Lees deze sectie voor meer informatie over de beschikbare transformatoren voor het verwerken en schalen van numerieke gegevens. Deze transformatoren zijn noodzakelijk om numerieke eigenschappen in uw datasets te behandelen en te optimaliseren.
Binarizer
De transformator Binarizer
zet numerieke eigenschappen in binaire (0/1) eigenschappen door een proces om genoemd binarization. De waarden van de eigenschap groter dan de gespecificeerde drempel worden omgezet in 1.0, terwijl de waarden gelijk aan of minder dan de drempel in 0.0 worden omgezet. De Binarizer
ondersteunt zowel Vector
- als Double
-typen voor de invoerkolom.
Datatypen
- Datatype invoer: Numerieke kolom
- Datatype uitvoer: Numeriek
Definitie
transform(numeric_imputer(rating, 'mode') rating_imp, binarizer(rating_imp) rating_binarizer)
Parameters
THRESHOLD
input van het Voorbeeld vóór binarization
output van het Voorbeeld na binarization (standaarddrempel van 0.0)
Definitie met douanedrempel
transform(numeric_imputer(age, 'mode') age_imp, binarizer(age_imp, 14.0) age_binarizer)
output van het Voorbeeld na binarization (met een drempel van 14.0)
Bucketizer
De transformator Bucketizer
zet een kolom van ononderbroken eigenschappen in een kolom van eigenschapemmers om, die op user-specified drempels worden gebaseerd. Dit proces is nuttig om ononderbroken gegevens in discrete banden of emmers te segmenteren. Voor Bucketizer
is een parameter splits
vereist die de grenzen van de emmers definieert.
Datatypen
- Datatype invoer: Numerieke kolom
- Datatype uitvoer: Numeriek (bindwaarden)
Definitie
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
Parameters
splits
n+1
splitsingen zijn er n
emmers. Splits moeten in strikt toenemende volgorde staan en het bereik (x,y) wordt gebruikt voor elk emmertje behalve het laatste segment, dat y omvat.Voorbeelden van splitsingen
- Array(Double.NegativeInfinity, 0.0, 1.0, Double.PositiveInfinity)
- Array(0.0, 1.0, 2.0)
Splits moeten het gehele bereik van Dubbele waarden bestrijken; anders worden waarden buiten de opgegeven splitsingen als fouten behandeld.
transformatie van het Voorbeeld
Dit voorbeeld neemt een kolom van ononderbroken eigenschappen (course_duration
), bindt het volgens verstrekte splits
, en assembleert dan de resulterende emmers met andere eigenschappen.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
MinMaxScaler
De MinMaxScaler
transformator schrapt opnieuw elke eigenschap in een dataset van vectorrijen aan een gespecificeerde waaier, typisch [ 0, 1 ]. Dit zorgt ervoor dat alle eigenschappen gelijkwaardig aan het model bijdragen. Dit is vooral handig voor modellen die gevoelig zijn voor functie-schaling, zoals op verloop gebaseerde algoritmen met descent. MinMaxScaler
werkt met de volgende parameters:
- min: De ondergrens van de transformatie, die door alle eigenschappen wordt gedeeld. De standaardwaarde is
0.0
. - maximum: De bovengrens van de transformatie, die door alle eigenschappen wordt gedeeld. De standaardwaarde is
1.0
.
Datatypen
- Datatype invoer:
Array[Double]
- Datatype uitvoer:
Array[Double]
Definitie
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
Parameters
min
max
transformatie van het Voorbeeld
In dit voorbeeld wordt een set functies getransformeerd en worden deze met MinMaxScaler opnieuw geschaald naar het opgegeven bereik nadat verschillende andere transformaties zijn toegepast.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
MaxAbsScaler
De MaxAbsScaler
transformator schrapt elke eigenschap in een dataset van vectorrijen aan waaier [ - 1, 1 ] door door de maximumabsolute waarde van elke eigenschap te delen. Deze transformatie is ideaal voor het behouden van de flexibiliteit in gegevenssets met zowel positieve als negatieve waarden, aangezien de gegevens niet worden verschoven of gecentreerd. Dit maakt MaxAbsScaler
bijzonder geschikt voor modellen die gevoelig zijn voor de schaal van inputeigenschappen, zoals die met afstandsberekeningen.
Datatypen
- Datatype invoer:
Array[Double]
- Datatype uitvoer:
Array[Double]
Definitie
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling)
Parameters
transformatie van het Voorbeeld
Dit voorbeeld past verscheidene transformaties, met inbegrip van MaxAbsScaler
, toe om eigenschappen in waaier [ - 1, 1 ] opnieuw te schalen.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling)
Normalizer
Normalizer
is een transformator die elke vector in een dataset van vectorrijen normaliseert om een eenheidsnorm te hebben. Dit proces zorgt voor een consistente schaal zonder de richting van de vectoren te wijzigen. Deze transformatie is met name handig in modellen voor machinaal leren die afhankelijk zijn van afstandsmetingen of andere op vectoren gebaseerde berekeningen, vooral wanneer de grootte van vectoren aanzienlijk varieert.
Datatypen
- Datatype invoer:
array[double]
/vector[double]
- Datatype uitvoer:
vector[double]
Definitie
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, normalizer(vec_assembler, 3) as normalized)
Parameters
p
p-norm
wordt gebruikt voor normalisatie (bijvoorbeeld 1-norm
, 2-norm
, enzovoort).transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe u verschillende transformaties kunt toepassen, waaronder de Normalizer
, om een set functies te normaliseren met de opgegeven p-norm
.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, normalizer(vec_assembler, 3) as normalized)
QuantileDiscretizer
QuantileDiscretizer
is een transformator die een kolom met ononderbroken eigenschappen in binden categoriale eigenschappen omzet, met het aantal banden die door de numBuckets
parameter worden bepaald. In sommige gevallen kan het werkelijke aantal emmers kleiner zijn dan het opgegeven aantal als er te weinig duidelijke waarden zijn om voldoende hoeveelheden te maken.
Deze transformatie is vooral handig voor het vereenvoudigen van de weergave van doorlopende gegevens of het voorbereiden van algoritmen die beter werken met categoriale invoer.
Datatypen
- Datatype invoer: Numerieke kolom
- Datatype uitvoer: numerieke kolom (categorisch)
Definitie
TRANSFORM(quantile_discretizer(hour, 3) as result)
Parameters
NUM_BUCKETS
transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe QuantileDiscretizer
een kolom met doorlopende functies ( hour
) in drie categoriale emmers bindt.
TRANSFORM(quantile_discretizer(hour, 3) as result)
Voorbeeld vóór en na discretization
StandardScaler
StandardScaler
is een transformator die elke eigenschap in een dataset van vectorrijen normaliseert om een eenheidsstandaardafwijking en/of nulgemiddelde te hebben. Dit proces maakt de gegevens geschikter voor algoritmen die veronderstellen de eigenschappen rond nul met een verenigbare schaal worden gecentreerd. Deze transformatie is met name van belang voor modellen voor machinaal leren, zoals SVM, logistieke regressie en neurale netwerken, waar ongestandaardiseerde gegevens kunnen leiden tot convergentieproblemen of een geringere nauwkeurigheid.
Datatypen
- Datatype invoer: Vector
- Uitvoergegevenstype: Vector
Definitie
TRANSFORM(standard_scaler(feature) as ss_features)
Parameters
withStd
withMean
transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe u StandardScaler toepast op een reeks functies en deze normaliseert met de standaardafwijking per eenheid en het gemiddelde nul.
TRANSFORM(standard_scaler(feature) as ss_features)
Categorische transformaties
Lees deze sectie voor een overzicht van de beschikbare transformatoren die zijn ontworpen om categoriale gegevens voor modellen voor machinaal leren om te zetten en vooraf te verwerken. Deze transformaties zijn ontworpen voor gegevenspunten die verschillende categorieën of labels vertegenwoordigen, in plaats van numerieke waarden.
StringIndex
StringIndexer
is een transformator die een koordkolom van etiketten in een kolom van numerieke indexen codeert. De indexen variëren van 0 tot numLabels
en worden geordend met labelfrequentie (het meest frequente label krijgt een index van 0). Als de inputkolom numeriek is, wordt het gegoten aan een koord alvorens te indexeren. Onzichtbare labels kunnen aan de index numLabels
worden toegewezen als dat door de gebruiker is opgegeven.
Deze transformatie is vooral handig voor het omzetten van categoriale tekenreeksgegevens in numerieke vormen, waardoor deze geschikt zijn voor machinaal leermodellen die numerieke invoer vereisen.
Datatypen
- Input datatype: String
- Datatype uitvoer: Numeriek
Definitie
TRANSFORM(string_indexer(category) as si_category)
Parameters
StringIndexer
zijn geen aanvullende parameters vereist.transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe u StringIndexer
toepast op een categorische functie en deze omzet in een numerieke index.
TRANSFORM(string_indexer(category) as si_category)
OneHotEncoder
OneHotEncoder
is een transformator die een kolom van etiketindexen in een kolom van dunne binaire vectoren omzet, waar elke vector hoogstens één-waarde heeft. Deze codering is vooral handig om algoritmen die numerieke invoer vereisen, zoals Logistische regressie, toe te staan categoriale gegevens op effectieve wijze op te nemen.
Datatypen
- Datatype invoer: Numeriek
- Datatype van de output: Vector [ int ]
Definitie
TRANSFORM(string_indexer(category) as si_category, one_hot_encoder(si_category) as ohe_category)
Parameters
transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe u StringIndexer
eerst toepast op een categorische functie en vervolgens de OneHotEncoder
gebruikt om de geïndexeerde waarden om te zetten in een binaire vector.
TRANSFORM(string_indexer(category) as si_category, one_hot_encoder(si_category) as ohe_category)
Teksttransformaties
Deze sectie bevat informatie over de transformatoren die beschikbaar zijn voor het verwerken en converteren van tekstgegevens naar indelingen die kunnen worden gebruikt door modellen voor machinaal leren. Dit gedeelte is van cruciaal belang voor ontwikkelaars die werken met gegevens over natuurlijke talen en tekstanalyse.
CountVectorizer
CountVectorizer
is een transformator die een inzameling van tekstdocumenten in vectoren van symbolische tellingen omzet, die onduidelijke vertegenwoordiging veroorzaken die op de woordenschat wordt gebaseerd die uit het corpus wordt gehaald. Deze transformatie is essentieel voor het omzetten van tekstgegevens in een numerieke indeling die kan worden gebruikt door machinaal leeralgoritmen, zoals LDA (Latent Dirichlet Allocation), door de frequentie van tokens in elk document te vertegenwoordigen.
Datatypen
- Datatype van de input: Serie [ Koord ]
- Datatype uitvoer: Dichte vector
Definitie
TRANSFORM(count_vectorizer(texts) as cv_output)
Parameters
VOCAB_SIZE
vocabSize
termijnen overweegt die door termijnfrequentie over het corpus worden bevolen.MIN_DOC_FREQ
MAX_DOC_FREQ
MIN_TERM_FREQ
transformatie van het Voorbeeld
Dit voorbeeld toont aan hoe CountVectorizer een inzameling van tekstseries in vectoren van symbolische tellingen omzet, die een dunne vertegenwoordiging veroorzaken.
TRANSFORM(count_vectorizer(texts) as cv_output)
Voorbeeld vóór en na vectorization
NGram
NGram
is een transformator die een opeenvolging van n-grammen produceert, waar n-gram een opeenvolging van ('??') tokens (typisch woorden) voor wat geheel (𝑛
) is. De uitvoer bestaat uit in de ruimte afgebakende reeksen opeenvolgende woorden van '??', die kunnen worden gebruikt als functies in modellen voor machinaal leren, met name als deze gericht zijn op het verwerken van natuurlijke talen.
Datatypen
- Datatype van de input: Serie [ Koord ]
- Datatype van de output: Serie [ Koord ]
Definitie
TRANSFORM(tokenizer(review_comments) as token_comments, ngram(token_comments, 3) as n_tokens)
Parameters
N
transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe de NGram-transformator een reeks van 3 gram maakt op basis van een lijst met tokens die zijn afgeleid van tekstgegevens.
TRANSFORM(tokenizer(review_comments) as token_comments, ngram(token_comments, 3) as n_tokens)
Voorbeeld vóór en na transformatie n-gram
StopWordsRemover
StopWordsRemover
is een transformator die stopwoorden uit een opeenvolging van koorden verwijdert, die gemeenschappelijke woorden filtreren die geen significante betekenis hebben. Deze neemt als invoer een reeks tekenreeksen aan (zoals de uitvoer van een kenizer) en verwijdert alle stopwoorden die door de parameter stopWords
zijn opgegeven.
Deze transformatie is nuttig voor het vooraf verwerken van tekstgegevens, waardoor de effectiviteit van modellen voor het leren van downstreammachines wordt verbeterd door woorden te verwijderen die niet veel bijdragen aan de algemene betekenis.
Datatypen
- Datatype van de input: Serie [ Koord ]
- Datatype van de output: Serie [ Koord ]
Definitie
TRANSFORM(stop_words_remover(raw) as filtered)
Parameters
stopWords
transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe de StopWordsRemover
algemene Engelse stopwoorden uit een lijst met tokens filtert.
TRANSFORM(stop_words_remover(raw) as filtered)
Voorbeeld voor en na de verwijdering van eindewoorden
Voorbeeld met de woorden van het douaneeinde
In dit voorbeeld wordt getoond hoe u een aangepaste lijst met stopwoorden gebruikt om specifieke woorden uit de invoerreeksen te filteren.
TRANSFORM(stop_words_remover(raw, array("red", "I", "had")) as filtered)
Voorbeeld vóór en na de verwijdering van de douanestopwoorden
TF-IDF
TF-IDF
(Term Frequency-Inverse Document Frequency) is een transformator die wordt gebruikt om het belang van een woord binnen een document met betrekking tot een corpus te meten. Term frequency (TF) verwijst naar het aantal keren dat een term (t) voorkomt in een document (d), terwijl documentfrequency (DF) meet hoeveel documenten in het corpus (D) de term (t) bevatten. Deze methode wordt op grote schaal gebruikt in tekstmijnbouw om de invloed te verminderen van veelvoorkomende woorden, zoals "a", "the" en "of", die weinig unieke informatie bevatten.
Deze transformatie is met name van belang voor het winnen van tekst en het verwerken van natuurlijke talen, omdat hiermee een numerieke waarde wordt toegewezen aan het belang van elk woord in een document en over het gehele corpus.
Datatypen
- Datatype van de input: Serie [ Koord ]
- Datatype van de output: Vector [ int ]
Definitie
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Parameters
NUM_FEATURES
MIN_DOC_FREQ
transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe u TF-IDF kunt gebruiken om verdeelde zinnen om te zetten in een eigenschapvector die het belang van elke term in de context van het gehele corpus vertegenwoordigt.
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Tokenizer
Tokenizer
is een transformator die tekst, zoals een zin, in individuele termijnen, typisch woorden opsplitst. Het zet zinnen om in series van tokens, die een fundamentele stap in tekstpreprocessing verstrekken die de gegevens voor verdere tekstanalyse of modelleringsprocessen voorbereidt.
Datatypen
- Datatype invoer: tekstzin
- Datatype van de output: Serie [ Koord ]
Definitie
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Parameters
Tokenizer
zijn geen aanvullende parameters vereist.transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe zinnen in Tokenizer
worden onderverdeeld in afzonderlijke woorden (tokens) als onderdeel van een tekstverwerkingspijplijn.
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Word2Vec
Word2Vec
is een schatter die opeenvolgingen van woorden verwerkt die documenten vertegenwoordigen en Word2VecModel
traint. Dit model wijst elk woord aan een unieke vector met een vaste grootte toe en transformeert elk document in een vector door het gemiddelde te nemen van de vectoren van alle woorden in het document. Word2Vec
wordt op grote schaal gebruikt in verwerkingstaken voor natuurlijke talen en maakt woordinsluiting waarmee semantische betekenis wordt vastgelegd en tekstgegevens worden omgezet in numerieke vectoren die de relaties tussen woorden vertegenwoordigen en die een effectievere tekstanalyse en modellen voor machinaal leren mogelijk maken.
Datatypen
- Datatype van de input: Serie [ Koord ]
- Datatype van de output: Vector [ Dubbel ]
Definitie
TRANSFORM(tokenizer(review) as tokenized, word2Vec(tokenized, 10, 1) as word2Vec)
Parameters
VECTOR_SIZE
MIN_COUNT
Word2Vec
.transformatie van het Voorbeeld
In dit voorbeeld wordt getoond hoe Word2Vec
een verdeelde revisie omzet in een vector met een vaste grootte die het gemiddelde van de woordvectoren in het document vertegenwoordigt.
TRANSFORM(tokenizer(review) as tokenized, word2Vec(tokenized, 10, 1) as word2Vec)
Voorbeeld vóór en na transformatie Word2Vec