Latente Dirichlet-toewijzing

Gebruik de Vowpal Wabbit-bibliotheek om VW LDA uit te voeren

Categorie: Text Analytics

Notitie

Van toepassing op : machine learning Studio (klassiek)

Deze inhoud is alleen van toepassing op Studio (klassiek). Er zijn Vergelijk bare modules voor slepen en neerzetten toegevoegd aan Azure Machine Learning Designer. In dit artikel vindt u meer informatie over de twee versies.

Module overzicht

In dit artikel wordt beschreven hoe u de verwijzende module Dirichlet toewijzing in azure machine learning Studio (klassiek) kunt gebruiken om niet-geclassificeerde tekst in een aantal categorieën te groeperen. Latente Dirichlet toewijzing (LDA) wordt vaak gebruikt in natuurlijke taal verwerking (NLP) om teksten te vinden die vergelijkbaar zijn. Een andere algemene term is een onderwerp model lering.

Deze module haalt een tekst kolom op en genereert de volgende uitvoer:

  • De bron tekst, samen met een score voor elke categorie

  • Een functie matrix met geëxtraheerde voor waarden en coëfficiënten voor elke categorie

  • Een trans formatie, die u kunt opslaan en opnieuw Toep assen op nieuwe tekst die als invoer wordt gebruikt

Omdat deze module de Wabbit-bibliotheek van Vowpal gebruikt, is deze zeer snel. Zie de github-opslag plaats met zelf studies en een uitleg van het algoritme voor meer informatie over Vowpal Wabbit.

Meer informatie over de Dirichlet-toewijzing (LDA)

LDA is over het algemeen geen methode voor classificatie per se, maar maakt gebruik van een pregeneratieve benadering. Dit betekent dat u geen bekende klassen labels hoeft op te geven en vervolgens de patronen af te leiden. In plaats daarvan wordt een Probabilistic-model gegenereerd dat wordt gebruikt om groepen met onderwerpen te identificeren. U kunt het Probabilistic-model gebruiken voor het classificeren van bestaande trainings cases of nieuwe cases die u aan het model levert als invoer.

Een kernvast model kan worden voor keuren, omdat het voor komt dat er sterke hypo Thesen worden gemaakt over de relatie tussen de tekst en categorieën, en wordt alleen de distributie van woorden gebruikt voor wiskundige model onderwerpen.

Zie de sectie met technische opmerkingen voor meer informatie.

De toewijzing van latente Dirichlet configureren

Deze module vereist een gegevensset die een kolom met tekst bevat, hetzij RAW ofwel preprocesd.

  1. Voeg de Dirichlet-toewijzings module aan uw experiment toe.

  2. Geef als invoer voor de module een gegevensset op die een of meer tekst kolommen bevat.

  3. Kies voor doel kolommeneen of meer kolommen met tekst die u wilt analyseren.

    U kunt meerdere kolommen kiezen, maar deze moeten van het teken reeks gegevens type zijn.

    In het algemeen, omdat LDA een grote functie matrix maakt op basis van de tekst, analyseert u doorgaans een enkele tekst kolom.

  4. Typ een geheel getal tussen 1 en 1000 dat aangeeft hoeveel categorieën of onderwerpen u wilt afleiden van de invoer tekst voor het aantal onderwerpen dat moet worden gemodelleerd.

    Standaard worden er vijf onderwerpen gemaakt.

  5. Voor n-gramgeeft u de maximale lengte van n-gram op die tijdens hashing wordt gegenereerd.

    De standaard waarde is 2, wat betekent dat zowel bigrams als unigrams worden gegenereerd.

  6. Selecteer de optie normaliseren om uitvoer waarden te converteren naar kansen. In plaats van de getransformeerde waarden als gehele getallen weer te geven, worden waarden in de uitvoer-en functie gegevensset als volgt getransformeerd:

    • De waarden in de gegevensset worden weer gegeven als een kans waarbij P(topic|document) .

    • Waarden in de matrix van het functie-onderwerp worden weer gegeven als een kans waar P(word|topic) .

  7. Selecteer de optie, alle opties weer gevenen stel deze in op waar als u aanvullende geavanceerde para meters wilt weer geven en instellen.

    Deze para meters zijn specifiek voor de Vowpal Wabbit-implementatie van LDA. Er zijn een aantal goede zelf studies over LDA in Vowpal Wabbit online, evenals de officiële Vowpal Wabbit-wiki.

    Zie dit voor beeld voor voor beelden in versie 8 en het gebruik van VW in azure ml.

    • Rho-para meter. Geef een eerdere kans op voor de sparsity van onderwerp-distributies. Komt overeen met de lda_rho para meter VW. U gebruikt de waarde 1 als u verwacht dat de distributie van woorden plat is; dat wil zeggen dat alle woorden worden verondersteld equiprobable. Als u denkt dat de meeste woorden verspreid worden weer gegeven, kunt u deze op een veel lagere waarde instellen.

    • Alfa-para meter. Geef een eerdere kans op voor de sparsity van het onderwerp gewicht per document. Komt overeen met de lda_alpha para meter VW.

    • Het geschatte aantal documenten. Typ een getal dat de beste schatting aangeeft van het aantal documenten (rijen) dat wordt verwerkt. Hiermee kan de module een hash-tabel met voldoende grootte toewijzen. Komt overeen met de lda_D para meter in Vowpal Wabbit.

    • De grootte van de batch. Typ een getal dat aangeeft hoeveel rijen moeten worden ingevoegd in elke batch tekst die wordt verzonden naar Vowpal Wabbit. Komt overeen met de batch_sz para meter in Vowpal Wabbit.

    • De begin waarde van de iteratie die wordt gebruikt voor het plannen van de trainings update. De begin waarde voor het leer tempo opgeven. Komt overeen met de initial_t para meter in Vowpal Wabbit.

    • Kracht die tijdens de updates op de herhaling wordt toegepast. Hiermee wordt het energie niveau aangegeven dat wordt toegepast op het aantal iteraties tijdens online-updates. Komt overeen met de power_t para meter in Vowpal Wabbit.

    • Aantal Passes over de gegevens. Geef het aantal keren op dat het algoritme over de gegevens wordt gerecycled. Komt overeen met de epoch_size para meter in Vowpal Wabbit.

  8. Selecteer de optie, maak een woorden lijst van ngrams of maak een woorden lijst van ngrams vóór LDA. Als u de n-gram lijst in een eerste keer wilt maken, moet u voordat u tekst classificeert.

    Als u de eerste woorden lijst vooraf maakt, kunt u later de woorden lijst gebruiken bij het controleren van het model. Het is over het algemeen eenvoudiger om resultaten toe te wijzen aan tekst in plaats van numerieke indexen. Het opslaan van de woorden lijst duurt echter langer en het gebruik van extra opslag ruimte.

  9. Voor de maximale grootte van de ngram woorden lijst, typt u het totale aantal rijen dat kan worden gemaakt in de n-gram-woorden lijst.

    Deze optie is handig voor het beheren van de grootte van de woorden lijst. Als het aantal ngrams in de invoer echter deze grootte overschrijdt, kunnen er conflicten optreden.

  10. Voer het experiment uit. De LDA-module maakt gebruik van Bayes theorema om te bepalen welke onderwerpen kunnen worden gekoppeld aan afzonderlijke woorden. Woorden die niet exclusief zijn gekoppeld aan onderwerpen of groepen; in plaats daarvan heeft elke n-gram een geleerde kans om te koppelen aan een van de gedetecteerde klassen.

Resultaten

De module heeft twee uitvoer:

  • Getransformeerde gegevensset: bevat de invoer tekst en een opgegeven aantal gedetecteerde categorieën, samen met de scores voor elk tekst voorbeeld voor elke categorie.

  • Functie onderwerp matrix: de meest linkse kolom bevat de geëxtraheerde tekst functie en er is een kolom voor elke categorie met daarin de score voor die functie in die categorie.

Zie voor beeld van LDA-resultatenvoor meer informatie.

LDA-trans formatie

Deze module voert ook de trans formatie uit die LDA toepast op de gegevensset, als een ITransform-interface.

U kunt deze trans formatie opslaan en opnieuw gebruiken voor andere gegevens sets. Dit kan handig zijn als u hebt getraind op een grote verzameling en u de coëfficiënten of categorieën opnieuw wilt gebruiken.

Een LDA-model of-resultaten verfijnen

Doorgaans kunt u slechts één LDA-model maken dat aan alle behoeften voldoet, en zelfs een model dat is ontworpen voor de ene taak kan veel iteraties vereisen om de nauw keurigheid te verbeteren. We raden u aan al deze methoden te proberen om uw model te verbeteren:

  • De para meters van het model wijzigen
  • Visualisatie gebruiken om de resultaten te begrijpen
  • U krijgt de feedback over experts om te bepalen of de gegenereerde onderwerpen nuttig zijn.

Kwalitatieve maat regelen kunnen ook handig zijn voor het beoordelen van de resultaten. Als u de resultaten van een onderwerpen model wilt evalueren, kunt u overwegen:

  • Nauw keurigheid: vergelijk bare items zijn heel vergelijkbaar?
  • Diversiteit: kan het model onderscheid tussen vergelijk bare items als dat nodig is voor het bedrijfs probleem?
  • Schaal baarheid: werkt alleen in een breed scala aan tekst categorieën of alleen op een beperkt doel domein?

De nauw keurigheid van modellen gebaseerd op LDA kan vaak worden verbeterd door gebruik te maken van natuurlijke taal verwerking om tekst te reinigen, samen te vatten en te vereenvoudigen of te categoriseren. De volgende technieken, die allemaal worden ondersteund in Azure Machine Learning, kunnen de classificatie nauw keurigheid verbeteren:

  • Verwijderen van woorden stoppen

  • Case-normalisatie

  • Lemmatisering of stam gebruik

  • Herkenning van tekeneenheden

Zie preproces-tekst en benoemde entiteits herkenningvoor meer informatie.

In Studio (klassiek) kunt u ook R-of python-bibliotheken gebruiken voor tekst verwerking: r-script uitvoeren, python-script uitvoeren

Voorbeelden

Voor voor beelden van tekst analyse raadpleegt u deze experimenten in de Azure AI Gallery:

  • Python-script uitvoeren: maakt gebruik van natuurlijke taal verwerking in python om tekst te reinigen en te transformeren.

Zie inzicht in LDA-resultatenvoor meer informatie en een voor beeld op basis van de klant beoordelings tekst.

Voor beeld van LDA-resultaten

In het volgende voor beeld wordt LDA met de standaard instellingen toegepast op de gegevensset Dirichlet die in Azure Machine Learning Studio is opgenomen (klassiek), om te laten zien hoe de toewijzings module laatte.

Brongegevensset

De gegevensset bevat een kolom waardering en de volledige tekst van de opmerking die door gebruikers wordt gegeven.

In deze tabel worden slechts enkele representatieve voor beelden weer gegeven.

tekst
Dit boek heeft zijn goede punten. Als dat zo is, kunt u in woorden opnemen wat u wilt van een super Visor....
Ik heb dit boek niet voltooid. Een vriendin wordt het aan mij aanbevolen, omdat er problemen zijn met slapeloosheid...
Er is een slechte schrijf poging gedaan om dit boek te lezen, maar dit is gevonden, waardoor het turgid en slecht is geschreven. ...
Omdat het lenen van een eared-kopie van vrienden die het een aantal jaren geleden hadden door gegeven, heb ik niet in staat om mijn handen te krijgen in dit boek die een favoriet van korte tijd was geworden
Het waarnemings punt van dit boek was interessant en zou een goed boek kunnen zijn. Helaas is dit niet het geval. Het belangrijkste probleem was dat...

Tijdens de verwerking worden de door u opgegeven para meters door de Dirichlet-module voor latente toewijzing de tekst opgeschoond en geanalyseerd. Het kan bijvoorbeeld automatisch de tekst tokenizeeren en lees tekens verwijderen, en tegelijkertijd de tekst functies voor elk onderwerp zoeken.

LDA getransformeerde gegevensset

De volgende tabel bevat de getransformeerde gegevensset, op basis van het voor beeld van een boek beoordeling. De uitvoer bevat de invoer tekst en een opgegeven aantal gedetecteerde categorieën, samen met de scores voor elke categorie.

Film naam Onderwerp 1 Onderwerp 2 Onderwerp 3 Onderwerp 4 Onderwerp 5
Dit boek heeft zijn goede punten 0,001652892 0,001652892 0,001652892 0,001652892 0,9933884
vriend aanbevolen 0,00198019 0,001980198 0,9920791 0,001980198 0,001980198
poging tot het lezen van dit boek 0,002469135 0,002469135 0,9901233 0,002469135 0,002469135
lenen aan vriend 0,9901232 0,002469135 0,002469135 0,002469135 0,002469135
het waarnemings punt van dit boek is interessant 0,001652892 0,001652892 0,9933884 0,001652892 0,001652892

In dit voor beeld hebben we de standaard waarde 5 gebruikt voor het aantal onderwerpen dat moet worden gemodelleerd. Daarom maakt de LDA-module vijf categorieën, die we kunnen aannemen dat er ongeveer overeenkomen met het oorspronkelijke waarderings systeem voor vijf schalen.

De module wijst ook een score toe aan elke vermelding voor elk van de vijf categorieën die onderwerpen vertegenwoordigen. Een score geeft de kans aan dat de rij moet worden toegewezen aan een bepaalde categorie.

Matrix van functie-onderwerp

De tweede uitvoer van de module is de matrix van het functie onderwerp. Dit is een tabellaire gegevensset die de tekst van de featurizedbevat, in de kolom functie, samen met een score voor elk van de categorieën, in de overige kolommen onderwerp 1, onderwerp 2,... Onderwerp N. De Score duidt op de coëfficiënt.

Functie Onderwerp 1 Onderwerp 2 Onderwerp 3 Onderwerp 4 Onderwerp 5
mooie 0.0240282071983144 0.0354678954779375 0.363051866576914 0.0276637824315893 0.660663576149515
aangetroffen 0.0171478729532397 0.0823969031108669 0.00452966877950789 0.0408714510319233 0.025077322689733
from 0.0148224220349217 0.0505086981492109 0.00434423322461094 0.0273389126293824 0.0171484355106826
ontwerp 0.0227415889348212 0.0408709456489325 0.182791041345191 0.086937090812819 1 0.0169680136708971
lezen 0.0227415889348212 0.0408709456489325 0.182791041345191 0.0869370908128191 0.0169680136708971
probeerde 0.0269724979147211 0.039026263551767 0.00443749106785087 0.0628829816088284 0.0235340728818033
vervolg 0.0262656945140134 0.0366941302751921 0.00656837975179138 0.0329214576160066 0.0214121851106808
in op 0.0141026103224462 0.043359976919215 0.00388640531859447 0.0305925953440055 0.0228993750526364
it 0.0264490547105951 0.0356674440311847 0.00541759897864314 0.0314539386250293 0.0140606468587681
mee 0.0135971322960941 0.0346118171467234 0.00434999437350706 0.0666507321888536 0.018156863779311
verwijst 0.0227415889348212 0.0396233855719081 0.00404663601474112 0.0381156510019025 0.0337788009496797
groot 0.651813073836783 0.0598646397444108 0.00446809691985617 0.0358975694646062 0.0138989124411206
zij 0.0185385588647078 0.144253986783184 0.00408876416453866 0.0583049240441475 0.015442805566858
van 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
geleende 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
biedt 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
boek 0.0143157047920681 0.069145948535052 0.184036340170983 0.0548757337823903 0.0156837976985903
aanbevelingen 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372
dit/deze 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372

Technische opmerkingen

Deze sectie bevat implementatie details, tips en antwoorden op veelgestelde vragen.

Implementatie Details

Standaard worden de distributies van uitvoer voor getransformeerde gegevensset en functie-topic genormaliseerd als kansen.

  • De getransformeerde gegevensset wordt genormaliseerd als de voorwaardelijke kans van onderwerpen op basis van een document. In dit geval is de som van elke rij gelijk aan 1.

  • De functie-onderwerp matrix wordt genormaliseerd als de voorwaardelijke waarschijnlijkheid van woorden op basis van een onderwerp. In dit geval is de som van elke kolom gelijk aan 1.

Tip

Af en toe kan de module een leeg onderwerp retour neren. dit wordt meestal veroorzaakt door de pseudo-wille keurige initialisatie van de algoritme. Als dit het geval is, kunt u de bijbehorende para meters wijzigen, zoals de maximale grootte van de N-gram-woorden lijst of het aantal bits dat moet worden gebruikt voor functie-hashing.

LDA en topics model lering

Latente Dirichlet-toewijzing (LDA) wordt vaak gebruikt voor model lering op basis van inhoud. Dit houdt in dat categorieën worden leren van niet-geclassificeerde tekst. In een onderwerp dat is gebaseerd op inhouds modellen, is een onderwerp een distributie over woorden.

Stel dat u een verzameling hebt geleverd met beoordelingen van klanten die veel, veel producten bevatten. De tekst van beoordelingen die zijn ingediend door veel klanten gedurende een bepaalde periode, bevat veel voor waarden, waarvan sommige worden gebruikt in meerdere onderwerpen.

Een onderwerp dat wordt geïdentificeerd door het LDA-proces, kan beoordelingen vertegenwoordigen voor een afzonderlijk product A, of het kan een groep product beoordelingen vertegenwoordigen. Voor LDA is het onderwerp zelf een waarschijnlijke verdeling van de duur van een aantal woorden.

De termen zijn zelden exclusief voor een product, maar kunnen verwijzen naar andere producten, of algemene voor waarden die van toepassing zijn op alles (' geweldig ', ' Awful '). Andere voor waarden kunnen ruis woorden zijn. Het is echter belang rijk om te begrijpen dat de LDA-methode niet van toepassing is op het vastleggen van alle woorden in het universum, of om te begrijpen hoe woorden zijn gerelateerd, afgezien van de waarschijnlijkheid van co-instantie. Hiermee kunnen alleen woorden worden gegroepeerd die in het doel domein zijn gebruikt.

Nadat de termen van de term zijn berekend, worden afzonderlijke tekst rijen vergeleken met behulp van een op afstand gebaseerde soort gelijke maat eenheid om te bepalen of twee stukken tekst op elkaar lijken. U kunt bijvoorbeeld zien dat het product meerdere namen heeft die sterk worden gecorreleerd. Het is ook mogelijk dat zeer negatieve voor waarden doorgaans zijn gekoppeld aan een bepaald product. U kunt de maat eenheid van de overeenkomst gebruiken om gerelateerde voor waarden te identificeren en aanbevelingen te maken.

Verwachte invoer

Naam Type Beschrijving
Gegevensset Gegevens tabel Invoer gegevensset

Module parameters

Naam Type Bereik Optioneel Standaard Beschrijving
Aantal hash-bits Geheel getal [1; 31] Van toepassing wanneer het selectie vakje alle opties weer geven is uitgeschakeld 12 Aantal bits dat moet worden gebruikt voor functie-hashing
Doel kolom (men) Kolom selectie Vereist StringFeature Naam of index van doel kolom
Aantal te model lerene onderwerpen Geheel getal [1; 1000] Vereist 5 De document distributie met N onderwerpen model leren
N-gram Geheel getal [1; 10] Vereist 2 Volg orde van N-gram gegenereerd tijdens hashing
Normaliseren Boolean-waarde Vereist true Normaliseer uitvoer naar kansen. De getransformeerde gegevensset is P (onderwerp|document) en de matrix van het functie onderwerp is P (woord|onderwerp).
Alle opties weer geven Boolean-waarde Waar of onwaar Vereist Niet waar Geeft aanvullende para meters die specifiek zijn voor Vowpal Wabbit online LDA
Rho-para meter Drijvendekommagetal [0.00001; 1.0] Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 0,01 Rho-para meter
Alpha-para meter Drijvendekommagetal [0.00001; 1.0] Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 0,01 Alpha-para meter
Geschat aantal documenten Geheel getal [1; int. MaxValue Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 1000 Het geschatte aantal documenten (komt overeen met lda_D para meter)
Grootte van de batch Geheel getal [1; 1024] Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 32 Grootte van de batch
Aanvankelijke waarde van herhaling die wordt gebruikt voor de update planning voor het trainings tempo Geheel getal [0; int. MaxValue Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 0 De aanvankelijke waarde van het aantal iteraties dat wordt gebruikt in de update planning voor het trainings tempo (komt overeen met initial_t para meter)
Kracht toegepast op de herhaling tijdens updates Drijvendekommagetal [0,0; 1.0] Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 0.5 Kracht toegepast op het aantal iteraties tijdens online updates (komt overeen met power_t para meter)
Aantal opleidings herhalingen Geheel getal [1; 1024] Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd 25 Aantal opleidings herhalingen
Woorden lijst van ngrams bouwen Boolean-waarde Waar of onwaar Van toepassing wanneer het selectie vakje alle opties weer geven is uitgeschakeld Waar Bouwt een woorden lijst van ngrams vóór de Computing LDA. Nuttig voor model inspectie en-interpretatie
Aantal bits dat moet worden gebruikt voor functie-hashing Geheel getal [1; 31] Van toepassing wanneer de keuze lijst Dictionary van ngrams is ingesteld op False 12 Aantal bits dat moet worden gebruikt tijdens hashing van functies
Maximale grootte van ngram-woorden lijst Geheel getal [1; int. MaxValue Van toepassing wanneer de keuze lijst Dictionary van Ngrams waar is 20.000 Maximale grootte van de ngrams-woorden lijst. Als het aantal tokens in de invoer groter is dan deze grootte, kunnen er conflicten optreden
Build Dictionary van ngrams vóór LDA Boolean-waarde Waar of onwaar Van toepassing wanneer het selectie vakje alle opties weer geven is geselecteerd Waar Hiermee maakt u een woorden lijst met ngrams vóór LDA. Nuttig voor model inspectie en-interpretatie
Maximum aantal ngrams in woorden lijst Geheel getal [1; int. MaxValue Van toepassing wanneer de optie Dictionary-woorden lijst van ngrams is ingesteld op True en het selectie vakje alle opties weer geven is ingeschakeld 20.000 Maximum grootte van de woorden lijst. Als het aantal tokens in de invoer groter is dan deze grootte, kunnen er conflicten optreden

Outputs

Naam Type Beschrijving
Getransformeerde gegevensset Gegevens tabel Uitvoer gegevensset
Matrix van functie-onderwerp Gegevens tabel Door LDA gemaakte matrix van functie onderwerp
LDA-trans formatie ITransform-interface Trans formatie die LDA toepast op de gegevensset

Uitzonderingen

Uitzondering Beschrijving
Fout 0002 Uitzonde ring treedt op als een of meer opgegeven kolommen met gegevensset niet zijn gevonden.
Fout 0003 Uitzonde ring treedt op als een of meer invoer waarden null of leeg zijn.
Fout 0004 Uitzonde ring treedt op als de para meter kleiner dan of gelijk aan een specifieke waarde is.
Fout 0017 Uitzonde ring treedt op als het type van een of meer opgegeven kolommen niet wordt ondersteund door de huidige module.

Zie machine learning fout codesvoor een lijst met fouten die specifiek zijn voor Studio-modules (Classic).

Zie Machine Learning rest API fout codesvoor een lijst met API-uitzonde ringen.

Zie ook

Text Analytics
Functie-hashing
Herkenning van benoemde entiteiten
Score Vowpal Wabbit 7-4-model
Vowpal Wabbit 7-4-model trainen
Vowpal Wabbit 8-model trainen