AI 101
Hvordan fungerer tekstklassifisering?
Tekstklassifisering er prosessen med å analysere tekstsekvenser og tildele dem en etikett, plassere dem i en gruppe basert på innholdet. Tekstklassifisering ligger til grunn for nesten alle AI- eller maskinlæringsoppgaver som involverer Natural Language Processing (NLP). Med tekstklassifisering kan et dataprogram utføre en rekke forskjellige oppgaver som spamgjenkjenning, sentimentanalyse og chatbot-funksjoner. Hvordan fungerer tekstklassifisering nøyaktig? Hva er de ulike metodene for å utføre tekstklassifisering? Vi skal utforske svarene på disse spørsmålene nedenfor.
Definere tekstklassifisering
Det er viktig å ta litt tid og sørge for at vi forstår hva tekstklassifisering er generelt, før vi går inn i de forskjellige metodene for å gjøre tekstklassifisering. Tekstklassifisering er et av disse begrepene som brukes på mange forskjellige oppgaver og algoritmer, så det er nyttig å sørge for at vi forstår det grunnleggende konseptet med tekstklassifisering før vi går videre for å utforske de forskjellige måtene det kan utføres på.
Alt som innebærer å lage forskjellige kategorier for tekst, og deretter merke forskjellige teksteksempler som disse kategoriene, kan betraktes som tekstklassifisering. Så lenge et system utfører disse grunnleggende trinnene kan det betraktes som en tekstklassifiserer, uavhengig av den eksakte metoden som brukes for å klassifisere teksten og uavhengig av hvordan tekstklassifisereren til slutt brukes. Å oppdage e-postsøppel, organisere dokumenter etter emne eller tittel og gjenkjenne følelsen av en anmeldelse av et produkt er alle eksempler på tekstklassifisering fordi de oppnås ved å ta tekst som input og skrive ut en klasseetikett for det tekststykket.
Hvordan fungerer tekstklassifisering?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0, (https://www.flickr.com/photos/quinnanya/4714794045)
De fleste tekstklassifiseringsmetoder kan plasseres i en av tre forskjellige kategorier: regelbaserte metoder eller maskinlæringsmetoder.
Regelbaserte klassifiseringsmetoder
Regelbaserte tekstklassifiseringsmetoder fungerer ved bruk av eksplisitt konstruerte språklige regler. Systemet bruker reglene laget av ingeniøren for å bestemme hvilken klasse et gitt tekststykke skal tilhøre, og leter etter ledetråder i form av semantisk relevante tekstelementer. Hver regel har et mønster som teksten må samsvare med for å bli plassert i den tilsvarende kategorien.
For å være mer konkret, la oss si at du ønsket å designe en tekstklassifisering som er i stand til å skille ut vanlige samtaleemner, som været, filmer eller mat. For å gjøre det mulig for tekstklassifisereren å gjenkjenne diskusjoner om været, kan du be den lete etter værrelaterte ord i teksteksemplene den mates. Du vil ha en liste over søkeord, setninger og andre relevante mønstre som kan brukes til å skille emnet. Du kan for eksempel instruere klassifisereren til å se etter ord som "vind", "regn", "sol", "snø" eller "sky". Du kan da få klassifisereren til å se gjennom inndatatekst og telle antall ganger disse ordene vises i tekstens brødtekst, og hvis de vises mer vanlig enn ord relatert til filmer, vil du klassifisere teksten som tilhørende værklassen.
Fordelen med regelbaserte systemer er at deres input og output er forutsigbare og tolkbare av mennesker, og de kan forbedres gjennom manuell intervensjon fra ingeniøren. Regelbaserte klassifiseringsmetoder er imidlertid også noe sprø, og de har ofte vanskelig for å generalisere fordi de kun kan følge de forhåndsdefinerte mønstrene som er programmert inn. Som et eksempel kan ordet "sky" referere til fuktighet i himmelen, eller det kan referere til en digital sky der data lagres. Det er vanskelig for regelbaserte systemer å håndtere disse nyansene uten at ingeniørene bruker en god del tid på å manuelt forutse og justere for disse finessene.
Maskinlæringssystemer
Som nevnt ovenfor har regelbaserte systemer begrensninger, da deres funksjoner og regler må forhåndsprogrammeres. Derimot opererer maskinlæringsbaserte klassifiseringssystemer ved å bruke algoritmer som analyserer datasett for mønstre som er assosiert med en bestemt klasse.
Maskinlæringsalgoritmer mates med forhåndsmerkede/forhåndsklassifiserte forekomster som analyseres for relevante funksjoner. Disse forhåndsmerkede forekomstene er treningsdataene.
Maskinlæringsklassifikatoren analyserer treningsdataene og lærer mønstre som er knyttet til de forskjellige klassene. Etter dette blir usynlige forekomster strippet for etikettene og matet til klassifiseringsalgoritmen som tildeler forekomstene en merkelapp. De tildelte etikettene blir deretter sammenlignet med de originale etikettene for å se hvor nøyaktig maskinlæringsklassifikatoren var, og måler hvor godt modellen lærte hvilke mønstre som forutsier hvilke klasser.
Maskinlæringsalgoritmer fungerer ved å analysere numeriske data. Dette betyr at for å bruke en maskinlæringsalgoritme på tekstdata, må teksten konverteres til et numerisk format. Det finnes ulike metoder for å kode tekstdata som numeriske data og lage maskinlæringsmetoder rundt disse dataene. Vi vil dekke noen av de forskjellige måtene å representere tekstdata nedenfor.
Bag-of-words
Ordtak er en av de mest brukte metodene for koding og representasjon av tekstdata. Begrepet "bag-of-words" kommer fra det faktum at du i hovedsak tar alle ordene i dokumentene og legger dem alle i én "pose" uten å ta hensyn til ordrekkefølge eller grammatikk, bare ta hensyn til frekvens av ord i posen. Dette resulterer i en lang matrise, eller vektor, som inneholder en enkelt representasjon av alle ordene i inndatadokumentene. Så hvis det er 10000 10000 unike ord totalt i inndatadokumentene, vil funksjonsvektorene være XNUMX XNUMX ord lange. Slik beregnes størrelsen på ordet bag/funksjonsvektor.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Etter at funksjonsvektorstørrelsen er bestemt, blir hvert dokument i listen over totale dokumenter tildelt sin egen vektor fylt med tall som indikerer hvor mange ganger det aktuelle ordet forekommer i det gjeldende dokumentet. Dette betyr at hvis ordet "mat" vises åtte ganger i ett tekstdokument, vil den tilsvarende funksjonsvektoren/funksjonsmatrisen ha en åtte i den tilsvarende posisjonen.
Sagt på en annen måte, alle de unike ordene som dukker opp i inndatadokumentene blir samlet i én pose og deretter får hvert dokument en ordvektor av samme størrelse, som deretter fylles ut med antall ganger de forskjellige ordene vises i dokumentet .
Tekstdatasett vil ofte inneholde et stort antall unike ord, men de fleste av dem brukes ikke så ofte. Av denne grunn er antallet ord som brukes for å lage ordvektoren typisk begrenset til en valgt verdi (N), og da vil trekkvektordimensjonen være Nx1.
Term Frequency-Inverse Document Frequency (TF-IDF)
En annen måte å representere et dokument på basert på ordene i det er dubbet Term Frequency-Inverse Document Frequency (TF-IDF). En TF-IDF-tilnærming lager også en vektor som representerer dokumentet basert på ordene i det, men i motsetning til Bag-of-words er disse ordene vektet av mer enn bare frekvensen. TF-IDF vurderer betydningen av ordene i dokumentene, og forsøker å kvantifisere hvor relevant det ordet er for dokumentets emne. TF-IDF analyserer med andre ord relevans i stedet for frekvens og ordtellingene i en funksjonsvektor erstattes av en TF-IDF-skåre som beregnes med hensyn til hele datasettet.
En TF-IDF-tilnærming fungerer ved først å beregne termfrekvensen, antall ganger de unike termene vises i et spesifikt dokument. Imidlertid passer TF-IDF også på å begrense innflytelsen som ekstremt vanlige ord som "den", "eller" og "og", da disse "stoppordene" er veldig vanlige, men likevel formidler svært lite informasjon om innholdet i dokumentet. Disse ordene må diskonteres, som er hva "omvendt dokumentfrekvens"-delen av TF-IDF refererer til. Dette gjøres er fordi jo flere dokumenter et bestemt ord vises i, jo mindre nyttig er ordet for å skille det fra de andre dokumentene i listen over alle dokumenter. Formelen som TF-IDF bruker for å beregne betydningen av et ord er utformet for å bevare ordene som er de hyppigste og mest semantisk rike.
Funksjonsvektorene opprettet av TF-IDF-tilnærmingen inneholder normaliserte verdier som summerer til én, og tildeler hvert ord en vektet verdi som beregnes av TF-IDF-formelen.
Innbygginger av ord
Ordinnbygginger er metoder for å representere tekst som sikrer at ord med lignende betydning har lignende numeriske representasjoner.
Ordinnbygginger operere ved å "vektorisere" ord, noe som betyr at de representerer ord som virkelig verdi-vektorer i et vektorrom. Vektorene eksisterer i et rutenett eller en matrise, og de har en retning og lengde (eller størrelse). Når ord representeres som vektorer, konverteres ordene til vektorer som består av reelle verdier. Hvert ord er kartlagt til én vektor, og ord som er like i betydning har samme retning og størrelse. Denne typen koding gjør det mulig for en maskinlæringsalgoritme å lære kompliserte forhold mellom ord.
Innebyggingene som representerer ulike ord er laget med hensyn til hvordan de aktuelle ordene brukes. Fordi ord som brukes på lignende måter vil ha lignende vektorer, oversetter prosessen med å lage ordinnbygging automatisk noe av betydningen ordene har. En pose med ord-tilnærming, derimot, skaper sprø representasjoner der forskjellige ord vil ha forskjellige representasjoner selv om de brukes i svært like sammenhenger.
Som et resultat er ordinnbygginger bedre til å fange konteksten til ord i en setning.
Det er forskjellige algoritmer og tilnærminger som brukes til å lage ordinnbygginger. Noen av de vanligste og mest pålitelige metodene for innebygging av ord inkluderer: innebyggingslag, word2vec og GloVe.
Innebygging av lag
En potensiell måte å bruke ordinnbygging sammen med et maskinlærings-/dyplæringssystem er å bruk et embedding-lag. Innebyggingslag er dype læringslag som konverterer ord til innebygginger som deretter mates inn i resten av dyplæringssystemet. Ordet innebygging læres etter hvert som nettverket trener for en spesifikk tekstbasert oppgave.

I en tilnærming til innbygging av ord vil lignende ord ha lignende representasjoner og være nærmere hverandre enn forskjellige ord.
For å bruke innebygde lag, må teksten forhåndsbehandles først. Teksten i dokumentet må være one-hot-kodet, og vektorstørrelsen må spesifiseres på forhånd. Den ene teksten konverteres deretter til ordvektorer og vektorene sendes inn i maskinlæringsmodellen.
Word2Old
Word2Old er en annen vanlig metode for å bygge inn ord. Word2Vec bruker statistiske metoder for å konvertere ord til embeddings, og det er optimalisert for bruk med nevrale nettverksbaserte modeller. Word2Vec ble utviklet av Google-forskere, og det er en av de mest brukte innbyggingsmetodene, siden den gir pålitelige, rike innebygginger. Word2Vec-representasjoner er nyttige for å identifisere semantiske og syntaktiske fellestrekk i språk. Dette betyr at Word2Vec-representasjoner fanger opp relasjoner mellom lignende konsepter, og kan skille at fellesskapet mellom "King" og "Queen" er royalty og at "King" antyder "mann-het" mens dronning antyder "Woman-ness".
Hanske
GloVE, eller Global Vector for ordrepresentasjon, bygger på innebyggingsalgoritmene som brukes av Word2Vec. GloVe-innbyggingsmetoder kombinerer aspekter av både Word2Vec og matrisefaktoriseringsteknikker som latent semantisk analyse. Fordelen med Word2Vec er at den kan fange opp kontekst, men som en avveining fanger den dårlig opp global tekststatistikk. Omvendt er tradisjonelle vektorrepresentasjoner gode til å bestemme global tekststatistikk, men de er ikke nyttige for å bestemme konteksten til ord og uttrykk. GloVE trekker fra det beste fra begge tilnærmingene, og skaper ord-kontekst basert på global tekststatistikk.