Förstå semantiska språkmodeller
I takt med att nlp har avancerat har möjligheten att träna modeller som kapslar in det semantiska förhållandet mellan token lett till framväxten av kraftfulla språkmodeller för djupinlärning. Kärnan i dessa modeller är kodningen av språktoken som vektorer (flervärdesmatriser med tal) som kallas inbäddningar.
Vektorer representerar linjer i flerdimensionellt utrymme och beskriver riktning och avstånd längs flera axlar. Sammantaget beskriver vektorn sökvägens riktning och avstånd från ursprung till slut. Semantiskt liknande token bör resultera i vektorer som har en liknande orientering – med andra ord pekar de i samma riktning. Som ett enkelt exempel antar vi att inbäddningarna för våra token består av vektorer med tre element, till exempel:
- 4 ("dog"): [10,3,2]
- 8 ("cat"): [10,3,1]
- 9 ("puppy") [5,2,1]
- 10 ("skateboard"): [-3,3,2]
I tredimensionellt utrymme ser dessa vektorer ut så här:
Inbäddningsvektorerna för "hund" och "valp" beskriver en väg i nästan identisk riktning, som också är ganska lik riktningen för "katt". Inbäddningsvektorn för "skateboard" beskriver dock resan i en helt annan riktning.
De språkmodeller som vi använder i branschen baseras på dessa principer men har större komplexitet. Till exempel har de vektorer som används i allmänhet många fler dimensioner. Det finns också flera sätt att beräkna lämpliga inbäddningar för en viss uppsättning token. Olika metoder resulterar i olika förutsägelser från bearbetningsmodeller för naturligt språk.
En generaliserad vy över de flesta moderna lösningar för bearbetning av naturligt språk visas i följande diagram. En stor mängd råtext tokeniseras och används för att träna språkmodeller, som kan stödja många olika typer av bearbetningsuppgift för naturligt språk.
Maskininlärning för textklassificering
En annan användbar textanalysteknik är att använda en klassificeringsalgoritm, till exempel logistisk regression, för att träna en maskininlärningsmodell som klassificerar text baserat på en känd uppsättning kategoriseringar. En vanlig tillämpning av den här tekniken är att träna en modell som klassificerar text som positiv eller negativ för att utföra attitydanalys eller åsiktsutvinning.
Tänk dig till exempel följande restaurangrecensioner, som redan är märkta som 0 (negativa) eller 1 (positiva):
- *The food and service were both great*: 1
- *A really terrible experience*: 0
- *Mmm! tasty food and a fun vibe*: 1
- *Slow service and substandard food*: 0
Med tillräckligt med etiketterade recensioner kan du träna en klassificeringsmodell med den tokeniserade texten som funktioner och sentimentet (0 eller 1) en etikett. Modellen kapslar in en relation mellan token och sentiment – till exempel recensioner med token för ord som "great", "tasty"eller "fun" är mer benägna att returnera en attityd av 1 (positiv), medan recensioner med ord som "terrible", "slow"och "substandard" är mer benägna att returnera 0 (negativa).