Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi

Relevanta dokument
Bootstrapping för substantivtaggning

Att använda Weka för språkteknologiska problem

Word- sense disambiguation

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Automatisk Sentimentklassificering av Twitter-inlägg

Excel-guide. Introduktion

Gränssnitt för FakeGranska. Lars Mattsson

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Statistiska undersökningar - ett litet dokument

Kursledaren: Serguei Shimorin. Övningsledarna: Daniel Zavala Svensson, Shiva Samieinia, Nils Dalarsson.

Syfte Syftet med den här laborationen är att du ska lära dig använda några grundfunktioner i Microsoft Excel.

Laboration i datateknik

Klassificering av homonymer Inlämningsuppgift språkteknologi

SF1911 Statistik för bioteknik: Autumn 2016 Lab 3 för CBIOT3. 1 Problem 1 - Fördelning av nukleotider i DNA

Vad är kännetecknande för en kvalitativ respektive kvantitativ forskningsansats? Para ihop rätt siffra med rätt ansats (17p)

PROGRAMRÅD INTERAKTIONSDESIGN

Data mining. Data mining Skillnaden mellan observationella och experimentella data

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 13. Svarsfrekvens i procent = 27.

Kognitionsvetenskap C, HT-04 Mental Rotation

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Instruktion för laboration 1

Word-guide Introduktion

1DV434 VT15. Antal svar: 7

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

Del 1 och 2 HTML/CSS. Webbutveckling Laboration 1 Nicklas Bostedt

Innehåll. Grammatikkontroll i Granska. Problemställning. Datorstöd för skrivande. Vilka metoder finns? Granskas uppbyggnad

DD

BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden

JavaScript del 3 If, Operatorer och Confirm

Aristi Fernandes Examensarbete T6, Biomedicinska analytiker programmet

Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, , 15 oktober 2001

PROGRAMMERING AV LEGO-ROBOT VIA NXC

TDDC74 Lab 02 Listor, sammansatta strukturer

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

Slutrapport för SquareShooter

Instruktion för laboration 1

Installera Anaconda Python

Vindkraft och ML. - hur kan vindkraft dra nytta avml

SVÄNGNINGSTIDEN FÖR EN PENDEL

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Andel förskollärare, %

2. Registrera en ny medlem

Matematisk statistik allmän kurs, MASA01:B, HT-14 Laborationer

Bakgrundsinformation Kursens namn: Biomedicinsk laboratorievetenskap: Introduktion

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

TDDB96 Projekt: Object priming med visuell stimuli

Inlämningsuppgift: Pronomenidentifierare

MATEMATIK. Ämnets syfte. Kurser i ämnet

TITEL. Johannes Hedberggymnasiet. Laborantens namn: Medlaboranters namn: Klass: Skola: Påbörjad: Inlämnad:

Kursutvärdering Matematisk analys IV H11

Svängningar - laborationsrapport + L A TEX-nyttigheter Fysik - mekanik och vågor (FAFA01) Första utkastet 12 maj 2014

Datorlaboration :: 1 Problembeskrivning ::

WEBB13: Bild och Grafisk produktion, 7,5 hp, H13 (31KBG1)

Kritiskt tänkande HTXF04:3 FTEB05. Induktiv argumentation

Matematik och statistik

Genetisk programmering i Othello

Introduktionsmöte Innehåll

TDDD02 Språkteknologi för informationssökning (2016) Introduktion. Marco Kuhlmann Institutionen för datavetenskap

Statistisk mönsterigenkänning

Försättsblad tentamen Fakulteten för hälsa och samhälle

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Definiera delen och det hela vid beräkningar i jämförande situationer. Svaret ska anges i procent.

Hur mäts kunskap bäst? examinationen som inlärningsmoment

Arbetsrapport CEQ, ETS170

Att visa kunskap genom argumentation Muntlig examination inom etik och logik

En Kvart Om Dagen. - Hjälper föräldrar hjälpa - Böckerna. En Kvart Om Dagen

Uppföljning av de personer som uppnådde maximal tid i sjukförsäkringen vid årsskiftet 2009/2010

Design och konstruktion av grafiska gränssnitt

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

ANONYMA TENTAMINA (FÖRDELAR) ÅSIKTSTORG:

Institutionen för Tillämpad fysik och elektronik Stefan Berglund och Per Kvarnbrink. Laboration: Flerskiktade applikationer

Uppgift 1a (Aktiekurser utan poster)

SKOLUTVECKLIGSPROJEKT MED GEOGEBRA. Jaana Zimmerl Suneson (Älvkullegymnasiet)

Sätt att skriva ut binärträd

Modell och verklighet och Gy2011

Webbprogrammering 725G54

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Matematik inom tekniksektorn Adam Andersson, MY-dagen 2016

Perceptron som ordklasstaggare: ett fördjupningsarbete i 729G43 -Artificiell Intelligens

Innehåll Error! Bookmark not defined. Error! Bookmark not defined.

Manual för kursspecifika ansökningsformulär Folkhögskola.nu

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Kunskapsgraf. Fredrik Åkerberg Tommy Kvant 1 Introduktion. 2 Relaterade projekt.

LMA201/LMA521: Faktorförsök

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Bruksanvisning GPS Inköpslistan

Programmering för språkteknologer II, HT2014. Rum

av Marie Helleday Ekwurtzel Illustratör: Lena Furberg

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

FÅ FRAM INDATA. När inga data finns!? Beslutsfattarens dilemma är att det är svårt att spå! Särskilt om framtiden!

Redaktionell sökoptimering. Utbildning för publicerare maj 2016 Elisabet Wartoft

Inledning (Problemlösning 1.)

Hur tycker du kursen har varit? Tycker du att kursens upplägg har underlättat för dig att uppnå lärandemålen?

Uppföljning av de personer som uppnådde maximal tid i sjukförsäkringen under 2010 eller under första och andra kvartalet 2011

Torun Berlind Elin Önstorp Sandra Gustavsson Klas Nordberg. Föreläsningar Lektioner Laborationer Projekt

Transkript:

Maskininlärning med boostrapping Maskininlärningslabb i Språkteknologi

Abstrakt Vi undersöker, med hjälp av maskininlärningslabben från denna kurs, hur pass bra resultat bootstrapping ger i samband med den data som ges till laborationen. Vi har delat upp datan i flera mängder i olika storlekar och börjar med att jämföra en liten del färdigtaggad data från testdatan i labben. Denna data har vi använt för maskininlärning och sedan applicerat på den större delen från testdatan. Vi jämförde sedan detta resultat med att använda den lilla taggade mängden med den stora otaggade mängden tillhörandes labben som vi delade upp i tre olika storlekar. Vi använde då den först taggade datan på den minsta av dessa mängder, applicerade maskininlärning på den nya taggade mängden och använde detta på en större mängd o.s.v. genom Bootstrap-teorin. Vi såg att i detta fall var det inte värt att handtagga en större mängd data utan att den lilla mängden lätt kunde appliceras genom bootstrapping för att få ett bättre resultat.

Abstrakt Inledning Bakgrund Begrepp Täckning Precision Accuracy Bootstrap Matematisk teori Metod Resultat Diskussion Förbättringar Slutsats Referenslista

Inledning Vi har valt att undersöka fördelarna, om det finns några, med bootstrap- taggning på data samt hur detta förhåller sig till om man taggar data för hand. Bakgrund I maskininlärningslaborationen så fick vi prova på att jobba med att låta ett program klassificera olika data med olika taggar utifrån en träningsdata. Vi tyckte detta var intressant och bestämde oss för att göra vårt projekt om maskininlärning. Vi hade tidigare stött på begreppet Bootstrapping och tyckte att det vore kul att undersöka och testa tidsskillnaden mellan att använda bootstrapping för att tagga data, med god precision, jämfört med att göra det för hand. Vi tänkte använda oss av Weka 1 som är ett word mining program för att genomföra vår bootstrapping. Men då dokumentationen var bristfällig om hur man kan genomföra bootstrapping så valde vi att kolla på alternativa lösningar. Det alternativ som vi iställer valde att använda var koden från maskininlärningslaborationen. 1 http://www.cs.waikato.ac.nz/ml/weka/ 271212

Begrepp Täckning Täckningen ger ett mått på hur många fel som hittas i en text. Precision Precisionen ger ett mått på hur många av de alarm som ges som är korrekta. Accuracy Accuracy är ett mått på hur många object som klassificerats korrekt. Bootstrap Använder en mindre mängd statistisk data för att skapa en större. 2 Matematisk teori a= antal korrekt detekterade fel = antal korrekta alarm b = falska alarm c = missade fel täckning/recall R = a/(a+c) precision P = a/(a+b) M = antalet korrekt klassificerade objekt N = totala antalet objekt Korrekthet (accuracy) = M / N (x100) Metod Vi började med att undersöka hur bootstrappingen skulle kunna genomföras i programstrukturen 3 för maskininlärningslaborationen genom att bootstrappa otaggat data utan att egentligen ha haft någon ursprunglig taggad mängd som utgångspunkt. Detta för att få en siffra att utgå ifrån. Programstrukturen kollar på bland annat PoS- taggarna för att avgöra ett ords klassificering, eller tagg. Den tar även hänsyn till ord före och efter det ord som är i fokus. Sedan skapar programmet en uppsättning regler utifrån datamängden den arbetat på. Vi använde oss av filen news.txt som innehåller 10 000 ord och deras Part of Speech- taggar. Reglerna kan man sedan använda på en annan uppsättning data, som PoS- taggats på samma sätt, och utifrån 2 http://www.stat.rutgers.edu/home/mxie/rcpapers/bootstrap.pdf 090113 3 http://www.csc.kth.se/utbildning/kth/kurser/dd2418/sprakt12/labbar/labb5/ 080113

reglerna försöka klassificera den nya datan. Till slut kan man testa den nytaggade datan mot ett facit för att undersöka hur god precision ens regler haft. Det vi gjorde var att dela upp news.txt i 3 mindre filer innehållandes ca 2 000, 3 000 respektive 5 000 ord. Detta för att först träna programmet på en mindre mängd data och få ut en regeluppsättning av det. Därefter använde vi dessa regler för att träna programmet på den mellanstora mängden och få ut en ny uppsättning regler. Dessa användes på den stora mängden och de regler vi fick ut därifrån använde vi på testfil som vi sedan jämförde med facit för att beräkna precisionen. Det vi vill jämföra med är huruvida resultatet blir bättre om man handtaggar en större del och sedan bootstrappar eller om det är bättre att tagga en stor mängd data och sedan bara genomföra maskininlärning. Vi jämföre detta också med att bootstrappa otaggad data för att se att den lilla taggade mängden gjorde någon skillnad. Resultat Det vi började med var att genomföra bootstrapping på data som inte blivit taggad manuellt. Resultatet vi fick då var 8.9 %.

Efter att ha fått utgångssiffran genomfördes bootstrapping på en datamängd där gruppen hade handtaggat en del av datan (54/212 data taggades). Resultatet blev då 48.7 %.

Vi testade också mot en större handtaggad mängd utan bootstrapping och fick resultatet 13.27% vilket betyder att det inte alls är värt i det här fallet att handtagga data, utan att bootstrapping var ett mycket bra verktyg!

Diskussion Det första resultat vi fick var 8.9 % vilket är ett väldigt dåligt resultat och det man kan utläsa från statistiken är att det som gissades rätt på var entity. Entity - posten hade 62.5 % rätt vilket i förhållande till det totala resultatet är väldigt bra. Det man kan säga är att precisionen blev förhållandevis bra medan täckningen och accuracyn var dålig. Vi tror att detta beror på att programmet inte hade något att gå på egentligen utan att det mest var en slump att den hittade så förhållandevis många entity. Det bästa resultatet vi uppnådde var med en datamängd som var delvis taggad och sedan bootstrappade, 48.7 %. Vi tror att det resultat vi fick kan bero på ett antal olika saker. Bland annat att vi använde oss av facit för att tagga vår data. Eftersom vi tog bort de data vi tog från facit så kan det tänkas att resultatet försämrades. Det vi borde gjort är att vi borde låtit det vi tog från facit stå kvar eftersom det är dumt att ta bort data bara för det är rätt när vi strävar efter högre precision, utan att försämra täckningen. Det resultat vi uppnådde med en större taggad mängd som vi inte använde bootstrap på blev 13.27% vilket kan jämföras med den mindre mängden som var bootstrappad. Enligt teorin skulle resultaten vara snarlika ifall det inte skulle löna sig att göra bootstrap och skilja sig markant (med bootstrapping i top) ifall det inte skulle löna sig att handtagga mer data. Skillnaden blir då att bootstrapping fungerar ca 367% bättre i det här fallet, vilket vi hade hoppats på! Relativt sätt så gav bootstrappingen betydligt bättre accuracy än de andra två försöken men på det hela så är det egentligen för dålig för att ha någon praktisk tillämpning då resultaten inte ens nådde upp till 50 %. Att använda sig av maskininlärning som inte ens har rätt på varannat ord är suboptimalt. Laborationen i sig har uppnått högre resultat men i det här fallet skräddarsydde vi datan för att endast visa resultat i jämförelse gällande bootstrapping. Det vi först försökte använda oss av var Weka, men vi kunde inte riktigt få programmet att användas till det vi ville. Där hade vi tänkt använda oss av en helt annan mängd data som vi själva skapat; rubriker från tidningsartiklar och deras kategorier. Tyvärr kom vi inte så långt då bootstrapmöjligheterna med detta program var begränsade och det gick inte att använda taggad data på otaggad, eller ens en större fristående mängd. Efter vår redovisning försökte vi göra klart projektet men bestlutade oss för att börja om och använde oss av maskininlärningslabben istället vilket nu visade sig ge tillfredsställande resultat. Det som påverkar resultat är främst att maskininlärningen använder sig av PoS-taggar som måste skrivas in för hand och måste vara korrekta. Själva taggningen för bootstrapping var istället kategorierna så som Entity, Company, Place och Person. Datan var alltså dubbeltaggad, vilket inte spelade allt för stor roll så länge som en sorts taggning alltid fanns och var korrekt. Det vi egentligen hade velat använda oss av var en mängd som inte hade några taggningar alls och en annan mindre som hade en sorts taggning. Då hade man kunnat se resultat från en

större taggad mängd mot en liten taggad med bootstrapping. Hade resultatet skiljts sig? Vi tror att vårt resultat motsvarade teorin tillräckligt för att kunna motsvara ett sådant projekt. Förbättringar Det vi känner att vi hade kunnat göra bättre är att manipulera labbkoden så att den ger ännu bättre accuracy men då vi la så mycket tid på att försöka jobba med Weka så fanns inte riktigt den tid vi ville ha till optimera de resultat vi fick fram. Hade vi haft ännu mer tid så hade vi kanske också kunnat skapa ett eget program som är mer anpassat för just bootstrapping än vad labbkoden var. Slutsats Bootstrapping är en giltig metod, även i detta fall. Vi bekräftade teorin och fick tillfredsställande resultat om än inte till den utsträckning som normalt kan önskas. Weka verkar ha potential för liknande undersökningar men i så fall behövs betydligt bättre dokumentation.

Referenslista http://www.csc.kth.se/utbildning/kth/kurser/dd2418/sprakt12/, 2012, Kurshemsida med teori från DD2418 Språkteknologi http://www.csc.kth.se/utbildning/kth/kurser/dd2418/sprakt12/labbar/labb5/, 2012, maskininlärningslabb i DD2418 Språkteknologi http://www.cs.waikato.ac.nz/ml/weka/, 2012, Weka http://www.stat.rutgers.edu/home/mxie/rcpapers/bootstrap.pdf, 2003, Kesar Singh och Minge Xie, Rutgers University