stub Hvordan fungerer tekstklassificering? - Unite.AI
Følg os

AI 101

Hvordan fungerer tekstklassificering?

mm
Opdateret on

Tekstklassificering er processen med at analysere tekstsekvenser og tildele dem en etiket og placere dem i en gruppe baseret på deres indhold. Tekstklassificering ligger til grund for næsten enhver AI- eller maskinlæringsopgave, der involverer Natural Language Processing (NLP). Med tekstklassificering kan et computerprogram udføre en lang række forskellige opgaver som spamgenkendelse, sentimentanalyse og chatbot-funktioner. Hvordan fungerer tekstklassificering præcist? Hvad er de forskellige metoder til at udføre tekstklassificering? Vi vil undersøge svarene på disse spørgsmål nedenfor.

Definition af tekstklassificering

Det er vigtigt at tage lidt tid og sørge for, at vi forstår hvad tekstklassificering ergenerelt, før du dykker ned i de forskellige metoder til at lave tekstklassificering. Tekstklassificering er et af de udtryk, der anvendes på mange forskellige opgaver og algoritmer, så det er nyttigt at sikre, at vi forstår det grundlæggende koncept for tekstklassificering, før vi går videre for at udforske de forskellige måder, det kan udføres på.

Alt, hvad der involverer at oprette forskellige kategorier for tekst og derefter mærke forskellige teksteksempler som disse kategorier, kan betragtes som tekstklassificering. Så længe et system udfører disse grundlæggende trin, kan det betragtes som en tekstklassifikator, uanset den nøjagtige metode, der bruges til at klassificere teksten, og uanset hvordan tekstklassificeringen i sidste ende anvendes. Detektering af e-mail-spam, organisering af dokumenter efter emne eller titel og genkendelse af følelsen af ​​en anmeldelse af et produkt er alle eksempler på tekstklassificering, fordi de opnås ved at tage tekst som input og udskrive en klasseetiket for det pågældende stykke tekst.

Hvordan fungerer tekstklassificering?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0, (https://www.flickr.com/photos/quinnanya/4714794045)

De fleste tekstklassificeringsmetoder kan placeres i en af ​​tre forskellige kategorier: regelbaserede metoder eller maskinlæringsmetoder.

Regelbaserede klassificeringsmetoder

Regelbaserede tekstklassificeringsmetoder fungerer ved brug af eksplicit udviklede sproglige regler. Systemet bruger de regler, som ingeniøren har oprettet, til at bestemme, hvilken klasse et givet stykke tekst skal tilhøre, og leder efter spor i form af semantisk relevante tekstelementer. Hver regel har et mønster, som teksten skal matche for at blive placeret i den tilsvarende kategori.

For at være mere konkret, lad os sige, at du ønskede at designe en tekstklassificering, der er i stand til at skelne almindelige samtaleemner, såsom vejret, film eller mad. For at gøre det muligt for din tekstklassificering at genkende diskussioner om vejret, kan du bede den om at lede efter vejrrelaterede ord i brødteksten af ​​de teksteksempler, den bliver fodret med. Du vil have en liste over søgeord, sætninger og andre relevante mønstre, der kan bruges til at skelne mellem emnet. For eksempel kan du bede klassificereren om at lede efter ord som "vind", "regn", "sol", "sne" eller "sky". Du kan derefter få klassificereren til at se gennem inputtekst og tælle antallet af gange, disse ord optræder i tekstens brødtekst, og hvis de forekommer mere almindeligt end ord relateret til film, vil du klassificere teksten som tilhørende vejrklassen.

Fordelen ved regelbaserede systemer er, at deres input og output er forudsigelige og fortolkbare af mennesker, og de kan forbedres gennem manuel indgriben fra ingeniøren. Regelbaserede klassifikationsmetoder er dog også noget skrøbelige, og de har ofte svært ved at generalisere, fordi de kun kan overholde de foruddefinerede mønstre, der er programmeret i. Som et eksempel kan ordet "sky" referere til fugt i himmel, eller det kan være at henvise til en digital sky, hvor data er gemt. Det er svært for regelbaserede systemer at håndtere disse nuancer, uden at ingeniørerne bruger ret meget tid på at forsøge manuelt at forudse og justere for disse finesser.

Maskinlæringssystemer

Som nævnt ovenfor har regelbaserede systemer begrænsninger, da deres funktioner og regler skal forprogrammeres. Derimod fungerer maskinlæringsbaserede klassifikationssystemer ved at anvende algoritmer, der analyserer datasæt for mønstre, der er forbundet med en bestemt klasse.

Maskinlæringsalgoritmer tilføres præ-mærkede/præklassificerede forekomster, der analyseres for relevante funktioner. Disse præ-mærkede forekomster er træningsdataene.

Maskinlæringsklassifikatoren analyserer træningsdataene og lærer mønstre, der er forbundet med de forskellige klasser. Herefter fjernes usynlige forekomster for deres etiketter og føres til klassificeringsalgoritmen, som tildeler forekomsterne en etiket. De tildelte etiketter sammenlignes derefter med de originale etiketter for at se, hvor nøjagtig maskinlæringsklassifikatoren var, og måler, hvor godt modellen lærte hvilke mønstre, der forudsiger hvilke klasser.

Maskinlæringsalgoritmer fungerer ved at analysere numeriske data. Det betyder, at for at bruge en maskinlæringsalgoritme på tekstdata, skal teksten konverteres til et numerisk format. Der er forskellige metoder til at kode tekstdata som numeriske data og skabe maskinlæringsmetoder omkring disse data. Vi vil dække nogle af de forskellige måder at repræsentere tekstdata på nedenfor.

Bag-of-words

Pose med ord er en af ​​de mest brugte metoder til kodning og repræsentation af tekstdata. Udtrykket "pose-of-words" kommer fra det faktum, at du i det væsentlige tager alle ordene i dokumenterne og lægger dem alle sammen i én "pose" uden at være opmærksom på ordrækkefølge eller grammatik, og kun være opmærksom på hyppighed af ord i tasken. Dette resulterer i et langt array eller vektor, der indeholder en enkelt repræsentation af alle ordene i inputdokumenterne. Så hvis der er 10000 unikke ord i alt i inputdokumenterne, vil funktionsvektorerne være 10000 ord lange. Sådan beregnes størrelsen af ​​ordet taske/funktionsvektor.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

Efter at funktionsvektorstørrelsen er blevet bestemt, tildeles hvert dokument på listen over samlede dokumenter sin egen vektor fyldt med tal, der angiver, hvor mange gange det pågældende ord forekommer i det aktuelle dokument. Dette betyder, at hvis ordet "mad" forekommer otte gange i et tekstdokument, vil den tilsvarende funktionsvektor/funktionsmatrix have en otte i den tilsvarende position.

Sagt på en anden måde bliver alle de unikke ord, der optræder i inputdokumenterne, alle stablet i én pose, og så får hvert dokument en ordvektor af samme størrelse, som så udfyldes med det antal gange, de forskellige ord optræder i dokumentet .

Tekstdatasæt vil ofte indeholde et stort antal unikke ord, men de fleste af dem bruges ikke særlig ofte. Af denne grund er antallet af ord, der bruges til at skabe ordvektoren, typisk begrænset til en valgt værdi (N), og så vil trækvektordimensionen være Nx1.

Term Frequency-Inverse Document Frequency (TF-IDF)

En anden måde at repræsentere et dokument på baseret på ordene i det er eftersynkroniseret Term Frequency-Inverse Document Frequency (TF-IDF). En TF-IDF tilgang skaber også en vektor, der repræsenterer dokumentet baseret på ordene i det, men i modsætning til Bag-of-words er disse ord vægtet med mere end blot deres frekvens. TF-IDF overvejer betydningen af ​​ordene i dokumenterne og forsøger at kvantificere, hvor relevant dette ord er for dokumentets emne. Med andre ord analyserer TF-IDF relevans i stedet for frekvens, og ordtal i en featurevektor erstattes af en TF-IDF score, der beregnes med hensyn til hele datasættet.

En TF-IDF tilgang fungerer ved først at beregne termfrekvensen, det antal gange, de unikke termer optræder i et specifikt dokument. TF-IDF sørger dog også for at begrænse den indflydelse, som ekstremt almindelige ord som "det", "eller" og "og", da disse "stopord" er meget almindelige, men alligevel formidler meget lidt information om indholdet af dokumentet. Disse ord skal udelukkes, hvilket er hvad "omvendt dokumentfrekvens"-delen af ​​TF-IDF refererer til. Dette gøres, fordi jo flere dokumenter et specifikt ord dukker op i, jo mindre nyttigt er ordet til at skelne det fra de andre dokumenter på listen over alle dokumenter. Formlen, som TF-IDF bruger til at beregne betydningen af ​​et ord, er designet til at bevare de ord, der er de hyppigste og mest semantisk rige.

Funktionsvektorerne skabt af TF-IDF-tilgangen indeholder normaliserede værdier, der summerer til én, og tildeler hvert ord en vægtet værdi, som beregnes af TF-IDF-formlen.

Ordindlejringer

Ordindlejringer er metoder til at repræsentere tekst, der sikrer, at ord med lignende betydninger har lignende numeriske repræsentationer.

Ordindlejringer operere ved at "vektorisere" ord, hvilket betyder, at de repræsenterer ord som vektorer med virkelig værdi i et vektorrum. Vektorerne findes i et gitter eller en matrix, og de har en retning og længde (eller størrelse). Når ord repræsenteres som vektorer, konverteres ordene til vektorer bestående af reelle værdier. Hvert ord er kortlagt til én vektor, og ord, der har samme betydning, har samme retning og størrelse. Denne type kodning gør det muligt for en maskinlæringsalgoritme at lære komplicerede forhold mellem ord.

De indlejringer, der repræsenterer forskellige ord, skabes med hensyn til, hvordan de pågældende ord bruges. Fordi ord, der bruges på lignende måder, vil have lignende vektorer, oversætter processen med at skabe ordindlejringer automatisk noget af den betydning, ordene har. En pose med ord-tilgang skaber derimod sprøde repræsentationer, hvor forskellige ord vil have uens repræsentationer, selvom de bruges i meget ens sammenhænge.

Som et resultat er ordindlejringer bedre til at fange konteksten af ​​ord i en sætning.

Der er forskellige algoritmer og tilgange, der bruges til at skabe ordindlejringer. Nogle af de mest almindelige og pålidelige ordindlejringsmetoder inkluderer: indlejringslag, word2vec og GloVe.

Indlejring af lag

En potentiel måde at bruge ordindlejringer sammen med et maskinlærings-/deep learning-system er at brug et indlejringslag. Indlejringslag er deep learning-lag, der konverterer ord til indlejringer, som derefter føres ind i resten af ​​deep learning-systemet. Ordet indlejringer læres efterhånden som netværket træner til en specifik tekstbaseret opgave.

I en ordindlejringstilgang vil lignende ord have lignende repræsentationer og være tættere på hinanden end på uens ord.

For at bruge indlejringslag skal teksten først forbehandles. Teksten i dokumentet skal være one-hot-kodet, og vektorstørrelsen skal angives på forhånd. Den one-hot-tekst konverteres derefter til ordvektorer, og vektorerne overføres til maskinlæringsmodellen.

Word2Vec

Word2Vec er en anden almindelig metode til indlejring af ord. Word2Vec bruger statistiske metoder til at konvertere ord til indlejringer, og det er optimeret til brug med neurale netværksbaserede modeller. Word2Vec er udviklet af Google-forskere, og det er en af ​​de mest almindeligt anvendte indlejringsmetoder, da det pålideligt giver nyttige, rige indlejringer. Word2Vec-repræsentationer er nyttige til at identificere semantiske og syntaktiske fællestræk i sprog. Dette betyder, at Word2Vec-repræsentationer fanger relationer mellem lignende begreber, idet de er i stand til at skelne, at fællesskabet mellem "King" og "Queen" er royalty, og at "King" implicerer "man-ness", mens Queen implicerer "Woman-ness".

Handske

GloVE eller Global Vector til ordrepræsentation, bygger på de indlejringsalgoritmer, der bruges af Word2Vec. GloVe-indlejringsmetoder kombinerer aspekter af både Word2Vec og matrixfaktoriseringsteknikker som Latent Semantic Analysis. Fordelen ved Word2Vec er, at det kan fange kontekst, men som en afvejning fanger det dårligt global tekststatistik. Omvendt er traditionelle vektorrepræsentationer gode til at bestemme global tekststatistik, men de er ikke nyttige til at bestemme konteksten af ​​ord og sætninger. GloVE trækker fra det bedste fra begge tilgange og skaber ord-kontekst baseret på global tekststatistik.

Blogger og programmør med speciale i Maskinelæring , Deep Learning emner. Daniel håber at kunne hjælpe andre med at bruge AI's kraft til socialt gode.