Delen via


Naslaginformatie over functie-hashing-onderdelen

Waarschuwing

Dit onderdeel IS AFGESCHAFT omdat de afhankelijkheid, het NimbusML-project , niet meer actief wordt onderhouden. Hierdoor ontvangt dit onderdeel geen toekomstige updates of beveiligingspatches. We zijn van plan dit onderdeel te verwijderen in toekomstige releases. Gebruikers worden aangeraden te migreren naar alternatieve oplossingen om te zorgen voor continue ondersteuning en beveiliging.

In dit artikel wordt een onderdeel beschreven dat is opgenomen in azure Machine Learning Designer.

Gebruik het onderdeel Functie-hashing om een stroom Engelse tekst te transformeren in een set geheel getalfuncties. U kunt deze gehashte functie vervolgens doorgeven aan een machine learning-algoritme om een tekstanalysemodel te trainen.

De functie-hashfunctionaliteit die in dit onderdeel wordt geboden, is gebaseerd op het nimbusml-framework. Zie de NgramHash-klasse voor meer informatie.

Wat is functie-hashing?

Functie-hashing werkt door unieke tokens te converteren naar gehele getallen. Het werkt op de exacte tekenreeksen die u als invoer opgeeft en voert geen taalkundige analyse of voorverwerking uit.

Neem bijvoorbeeld een set eenvoudige zinnen zoals deze, gevolgd door een gevoelsscore. Stel dat u deze tekst wilt gebruiken om een model te maken.

Gebruikerstekst Gevoel
Ik hield van dit boek 3
Ik haatte dit boek 1
Dit boek was geweldig 3
Ik hou van boeken 2

Intern maakt het onderdeel Feature Hashing een woordenlijst van n-grammen. De lijst met bigrams voor deze gegevensset ziet er bijvoorbeeld als volgt uit:

Term (bigrams) Frequentie
Dit boek 3
Ik hield van 1
Ik haatte het 1
Ik hou van 1

U kunt de grootte van de n-grammen beheren met behulp van de eigenschap N-grammen . Als u bigrams kiest, worden ook unigrammen berekend. De woordenlijst bevat ook enkele termen zoals deze:

Term (unigrammen) Frequentie
boek 3
I 3
boeken 1
Was 1

Nadat de woordenlijst is gemaakt, converteert het onderdeel Feature Hashing de woordenlijsttermen naar hash-waarden. Vervolgens wordt berekend of er in elk geval een functie is gebruikt. Voor elke rij met tekstgegevens voert het onderdeel een set kolommen uit, één kolom voor elke gehashte functie.

Na hashing zien de functiekolommen er bijvoorbeeld ongeveer als volgt uit:

Beoordeling Hashfunctie 1 Hashfunctie 2 Hashfunctie 3
4 1 1 0
5 0 0 0
  • Als de waarde in de kolom 0 is, bevat de rij de hashfunctie niet.
  • Als de waarde 1 is, bevat de rij de functie.

Met functie-hashing kunt u tekstdocumenten van variabele lengte vertegenwoordigen als numerieke functievectoren van gelijke lengte om dimensionaliteit te verminderen. Als u de tekstkolom voor de training als zodanig probeerde te gebruiken, wordt deze beschouwd als een categorische functiekolom met veel afzonderlijke waarden.

Met numerieke uitvoer kunt u ook algemene machine learning-methoden gebruiken, waaronder classificatie, clustering en het ophalen van gegevens. Omdat opzoekbewerkingen geheel getal-hashes kunnen gebruiken in plaats van tekenreeksvergelijkingen, is het ophalen van de functiegewichten ook veel sneller.

Het onderdeel Functie-hashing configureren

  1. Voeg het onderdeel Functie-hashing toe aan uw pijplijn in de ontwerpfunctie.

  2. Verbind de gegevensset met de tekst die u wilt analyseren.

    Tip

    Omdat functie-hashing geen lexicale bewerkingen uitvoert, zoals stemming of afkapping, kunt u soms betere resultaten krijgen door tekst vooraf te verwerken voordat u functie-hashing toepast.

  3. Stel doelkolommen in op de tekstkolommen die u wilt converteren naar gehashte functies. Denk hierbij aan het volgende:

    • De kolommen moeten het gegevenstype tekenreeks zijn.

    • Het kiezen van meerdere tekstkolommen kan een aanzienlijke invloed hebben op de functiedimensionaliteit. Het aantal kolommen voor een 10-bits hash gaat bijvoorbeeld van 1024 voor één kolom naar 2048 voor twee kolommen.

  4. Gebruik hash-bitsize om het aantal bits op te geven dat moet worden gebruikt wanneer u de hash-tabel maakt.

    De standaard-bitsgrootte is 10. Voor veel problemen is deze waarde voldoende. Mogelijk hebt u meer ruimte nodig om conflicten te voorkomen, afhankelijk van de grootte van de n-gram woordenlijst in de trainingstekst.

  5. Voer voor N-grammen een getal in dat de maximale lengte van de n-grammen definieert die moet worden toegevoegd aan de trainingswoordenlijst. Een n-gram is een reeks n woorden, behandeld als een unieke eenheid.

    Als u bijvoorbeeld 3, unigrammen, bigrams en trigrammen invoert, worden gemaakt.

  6. Verzend de pijplijn.

Resultaten

Nadat de verwerking is voltooid, voert het onderdeel een getransformeerde gegevensset uit waarin de oorspronkelijke tekstkolom is geconverteerd naar meerdere kolommen. Elke kolom vertegenwoordigt een functie in de tekst. Afhankelijk van hoe belangrijk de woordenlijst is, kan de resulterende gegevensset groot zijn:

Kolomnaam 1 Kolomtype 2
USERTEXT Oorspronkelijke gegevenskolom
SENTIMENT Oorspronkelijke gegevenskolom
USERTEXT - Hashing-functie 1 Kolom met gehashte functie
USERTEXT - Hashing-functie 2 Kolom met gehashte functie
USERTEXT - Hashing-functie n Kolom met gehashte functie
USERTEXT - Hashing-functie 1024 Kolom met gehashte functie

Nadat u de getransformeerde gegevensset hebt gemaakt, kunt u deze gebruiken als invoer voor het onderdeel Train Model.

Aanbevolen procedures

De volgende aanbevolen procedures kunnen u helpen om optimaal gebruik te maken van het onderdeel Functie-hashing:

  • Voeg een voorverwerkingstekstonderdeel toe voordat u functie-hashing gebruikt om de invoertekst vooraf te verwerken.

  • Voeg een onderdeel Select Columns toe na het onderdeel Feature Hashing om de tekstkolommen uit de uitvoergegevensset te verwijderen. U hebt de tekstkolommen niet nodig nadat de hashfuncties zijn gegenereerd.

  • Overweeg deze opties voor voorverwerking van tekst te gebruiken om de resultaten te vereenvoudigen en de nauwkeurigheid te verbeteren:

    • Woordafbreking
    • Woordverwijdering stoppen
    • Casenormalisatie
    • Interpunctie en speciale tekens verwijderen
    • Stemming

De optimale set voorverwerkingsmethoden die in elke oplossing moeten worden toegepast, is afhankelijk van domein, vocabulaire en bedrijfsbehoefte. pijplijn met uw gegevens om te zien welke tekstverwerkingsmethoden het meest effectief zijn.

Volgende stappen

Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning