|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| TextRepresentationPyTorch.ipynb | ||
| TextRepresentationTF.ipynb | ||
| assignment.md | ||
README.md
Representera text som tensorer
Quiz före förelÀsning
Textklassificering
Under den första delen av detta avsnitt kommer vi att fokusera pÄ uppgiften textklassificering. Vi kommer att anvÀnda AG News-datasetet, som innehÄller nyhetsartiklar som följande:
- Kategori: Vetenskap/teknik
- Titel: Ky. Företag vinner bidrag för att studera peptider (AP)
- Text: AP - Ett företag grundat av en kemiforskare vid University of Louisville vann ett bidrag för att utveckla...
VÄrt mÄl kommer att vara att klassificera nyhetsartikeln i en av kategorierna baserat pÄ texten.
Representera text
Om vi vill lösa uppgifter inom Natural Language Processing (NLP) med neurala nÀtverk behöver vi ett sÀtt att representera text som tensorer. Datorer representerar redan texttecken som siffror som mappar till typsnitt pÄ din skÀrm med hjÀlp av kodningar som ASCII eller UTF-8.
Som mÀnniskor förstÄr vi vad varje bokstav representerar, och hur alla tecken tillsammans bildar orden i en mening. Datorer har dock inte en sÄdan förstÄelse pÄ egen hand, och det neurala nÀtverket mÄste lÀra sig betydelsen under trÀningen.
DÀrför kan vi anvÀnda olika metoder för att representera text:
- TeckennivÄrepresentation, dÀr vi representerar text genom att behandla varje tecken som ett nummer. Givet att vi har C olika tecken i vÄr textkorpus, skulle ordet Hello representeras av en 5xC-tensor. Varje bokstav skulle motsvara en tensor-kolumn i en one-hot-kodning.
- OrdnivÄrepresentation, dÀr vi skapar ett ordförrÄd av alla ord i vÄr text och sedan representerar ord med hjÀlp av one-hot-kodning. Denna metod Àr pÄ sÀtt och vis bÀttre, eftersom varje bokstav i sig inte har mycket betydelse, och genom att anvÀnda högre semantiska koncept - ord - förenklar vi uppgiften för det neurala nÀtverket. Dock, med tanke pÄ den stora ordbokens storlek, mÄste vi hantera högdimensionella glesa tensorer.
Oavsett representation mÄste vi först konvertera texten till en sekvens av tokens, dÀr en token Àr antingen ett tecken, ett ord eller ibland till och med en del av ett ord. Sedan konverterar vi token till ett nummer, vanligtvis med hjÀlp av ett ordförrÄd, och detta nummer kan matas in i ett neuralt nÀtverk med hjÀlp av one-hot-kodning.
N-Grams
I naturligt sprÄk kan den exakta betydelsen av ord endast bestÀmmas i kontext. Till exempel Àr betydelserna av neural network och fishing network helt olika. Ett sÀtt att ta hÀnsyn till detta Àr att bygga vÄr modell pÄ par av ord och betrakta ordpar som separata tokens i ordförrÄdet. PÄ detta sÀtt kommer meningen I like to go fishing att representeras av följande sekvens av tokens: I like, like to, to go, go fishing. Problemet med denna metod Àr att ordförrÄdets storlek ökar avsevÀrt, och kombinationer som go fishing och go shopping representeras av olika tokens, som inte delar nÄgon semantisk likhet trots samma verb.
I vissa fall kan vi övervÀga att anvÀnda tri-grams -- kombinationer av tre ord -- ocksÄ. DÀrför kallas denna metod ofta n-grams. Det kan ocksÄ vara vettigt att anvÀnda n-grams med teckennivÄrepresentation, dÀr n-grams ungefÀr motsvarar olika stavelser.
Bag-of-Words och TF/IDF
NÀr vi löser uppgifter som textklassificering behöver vi kunna representera text med en fast storleksvektor, som vi kommer att anvÀnda som indata till den slutliga tÀta klassificeraren. Ett av de enklaste sÀtten att göra detta Àr att kombinera alla individuella ordrepresentationer, t.ex. genom att lÀgga till dem. Om vi lÀgger till one-hot-kodningar av varje ord, kommer vi att fÄ en frekvensvektor som visar hur mÄnga gÄnger varje ord förekommer i texten. En sÄdan representation av text kallas bag of words (BoW).
Bild av författaren
En BoW representerar i princip vilka ord som förekommer i texten och i vilka mÀngder, vilket faktiskt kan vara en bra indikation pÄ vad texten handlar om. Till exempel Àr en nyhetsartikel om politik sannolikt att innehÄlla ord som president och land, medan en vetenskaplig publikation skulle ha nÄgot som kolliderare, upptÀckt, etc. SÄledes kan ordfrekvenser i mÄnga fall vara en bra indikator pÄ textens innehÄll.
Problemet med BoW Àr att vissa vanliga ord, sÄsom och, Àr, etc. förekommer i de flesta texter och har högsta frekvenser, vilket döljer de ord som verkligen Àr viktiga. Vi kan minska vikten av dessa ord genom att ta hÀnsyn till frekvensen med vilken ord förekommer i hela dokumentkollektionen. Detta Àr huvudidén bakom TF/IDF-metoden, som behandlas mer detaljerat i de anteckningsböcker som Àr kopplade till denna lektion.
Dock kan ingen av dessa metoder fullt ut ta hÀnsyn till textens semantik. Vi behöver mer kraftfulla modeller för neurala nÀtverk för att göra detta, vilket vi kommer att diskutera senare i detta avsnitt.
âïž Ăvningar: Textrepresentation
FortsÀtt ditt lÀrande i följande anteckningsböcker:
Slutsats
Hittills har vi studerat tekniker som kan lÀgga till frekvensvikt till olika ord. De kan dock inte representera betydelse eller ordning. Som den berömda lingvisten J. R. Firth sa 1935: "Den fullstÀndiga betydelsen av ett ord Àr alltid kontextuell, och ingen studie av betydelse bortsett frÄn kontext kan tas pÄ allvar." Vi kommer senare i kursen att lÀra oss hur man fÄngar kontextuell information frÄn text med hjÀlp av sprÄkmodellering.
đ Utmaning
Prova nÄgra andra övningar med bag-of-words och olika datamodeller. Du kan bli inspirerad av denna tÀvling pÄ Kaggle
Quiz efter förelÀsning
Granskning & SjÀlvstudier
Ăva dina fĂ€rdigheter med textinbĂ€ddningar och bag-of-words-tekniker pĂ„ Microsoft Learn
Uppgift: Anteckningsböcker
Ansvarsfriskrivning:
Detta dokument har översatts med hjĂ€lp av AI-översĂ€ttningstjĂ€nsten Co-op Translator. Ăven om vi strĂ€var efter noggrannhet, bör det noteras att automatiserade översĂ€ttningar kan innehĂ„lla fel eller brister. Det ursprungliga dokumentet pĂ„ dess originalsprĂ„k bör betraktas som den auktoritativa kĂ€llan. För kritisk information rekommenderas professionell mĂ€nsklig översĂ€ttning. Vi ansvarar inte för eventuella missförstĂ„nd eller feltolkningar som kan uppstĂ„ vid anvĂ€ndning av denna översĂ€ttning.