Distributionella representationer av ord för effektiv informationssökning

Storlek: px
Starta visningen från sidan:

Download "Distributionella representationer av ord för effektiv informationssökning"

Transkript

1 EXAMENSARBETE INOM TEKNIK, GRUNDNIVÅ, 15 HP STOCKHOLM, SVERIGE 2017 Distributionella representationer av ord för effektiv informationssökning Algoritmer för sökning i kundsupportforum TIM LACHMANN JOHAN SABEL KTH SKOLAN FÖR DATAVETENSKAP OCH KOMMUNIKATION

2 Abstract As the abundance of information in society increases, so does the need for more sophisticated methods of information retrieval. Extracting information from internal systems becomes a more complex task when handling larger amounts of information and when more communications are transferred to digital platforms. Recent years methods for word embedding in vector space have gained traction. In 2013 Google sent ripples across the field of Natural Language Processing with a new method called Word2vec, significantly outperforming former practices. Among different established methods for information retrieval, we implement a retrieval method utilizing Word2vec and related methods of word embedding for the search engine at IT company Kundo and their product Kundo Forum. We demonstrate the potential to improve information retrieval recall by a significant margin without diminishing precision. Coupled with the primary subject of information retrieval we also investigate potential market and product development implications related to a different kind of search engine.

3 Referat I takt med att informationsmängden ökar i samhället ställs högre krav på mer förfinade metoder för sökning och hantering av information. Att utvinna relevant data från företagsinterna system blir en mer komplex uppgift då större informationsmängder måste hanteras och mycket kommunikation förflyttas till digitala plattformar. Metoder för vektorbaserad ordinbäddning har under senare år gjort stora framsteg; i synnerhet visade Google 2013 banbrytande resultat med modellen Word2vec och överträffade äldre metoder. Vi implementerar en sökmotor som utnyttjar ordinbäddningar baserade på Word2vec och liknande modeller, avsedd att användas på IT-företaget Kundo och för produkten Kundo Forum. Resultaten visar på potential för informationssökning med markant bättre täckning utan minskad precision. Kopplat till huvudområdet informationssökning genomförs också en analys av vilka implikationer en förbättrad sökmotor har ur ett marknads- och produktutvecklingsperspektiv.

4 Förord Vi vill tacka Emil Stenström och Kundo för förtroendet att genomföra detta arbete. Ett särskilt tack riktas även till Johan Boye på KTH för värdefulla synpunkter. Dessutom vill vi tacka våra handledare på KTH, Jens Edlund och Bo Karlsson, som gett oss vägledning vid behov.

5 Innehållsförteckning 1. Introduktion Uppdragsgivare och problemformulering Syfte, mål och frågeställning 2 2. Bakgrund Terminologi Lingvistik Informationssökning Utvärdering av sökmotorer Distributionella representationer av ord Neurala nätverk och prediktionsbaserade representationer Räknebaserade representationer Tidigare studier Verktyg för analys kopplad till industriell ekonomi Metod Översikt Resurser Inlärning Sökmotor Shingles Ngram-index Ordinbäddning med distributionella representationer Utvärdering Resultat Utvärdering av närliggande termer Visualisering med t-sne Utvärdering av sökmotorn Porters generiska strategier SWOT-analys Diskussion Slutsats Referenser 44 Bilagor

6 1. Introduktion I denna rapport utforskas hur metoder för distributionella representationer av ord kan utnyttjas inom den särskilda tillämpningen informationssökning. Rapporten är kopplad till företaget Kundo och sökfunktionen i deras produkt Kundo Forum. I anslutning till detta huvudområde utforskas även ett industriellt perspektiv på Kundo och Kundo Forum. Den allt mer tilltagande digitaliseringen av samhället gör att människor får tillgång till mer och mer information 1. Tillgång på nyheter och annan media ökar samtidigt som processer och kommunikation i allt större utsträckning förflyttas till digitala plattformar 2. Informationssökning blir en viktigare och mer komplex uppgift då större mängd information finns tillgänglig och högre krav ställs på effektiv och flexibel åtkomst. Forskning och teknik som syftar till att förstå och analysera mänskligt språk i digital form kallas språkteknologi; informationssökning är den gren inom språkteknologi som avser sökning efter information. Många nuvarande system och tekniker inom språkteknologi begränsas av att ord betraktas som atomiska enheter, och att det därmed inte finns något begrepp om semantiska likheter och skillnader ord emellan[8]. Metoder för informationssökning begränsas ofta på samma sätt i och med dålig hantering av synonymi, polysemi och andra semantiska relationer mellan söktermer och termer som förekommer bland eftersökt information[3]. Maskininlärningsbaserade metoder för att hantera dessa typer av begränsningar har under senare år fått större uppmärksamhet. Användning av särdragsvektorer för att effektivt representera ord på ett sätt som återspeglar deras semantiska innebörd har visat sig vara ett effektivt sätt att bädda in ord inom flera tillämpningar. År 2013 fick en modell under namnet Word2vec, utvecklad på Google, stor uppmärksamhet med resultat som markant överträffade äldre metoder för ordinbäddning i semantiska tester[8]. Sedan dess har andra relaterade metoder föreslagits med liknande resultat [13][14]. Det huvudsakliga området som utforskas i denna rapport är hur dessa typer av representationer kan utnyttjas inom det avgränsade området informationssökning i syfte att skapa intelligenta och effektiva sökmetoder. 1.1 Uppdragsgivare och problemformulering Uppdragsgivare är IT-företaget Kundo som tillhandahåller ett enhetligt digitalt gränssnitt för kundsupport till företagskunder. Exempel på kunder är Sveriges Television, Statens Järnvägar (SJ), Sveriges Radio, Försäkringskassan, Skistar, Dagens Industri och Forex Bank. Kundo verkar i huvudsak i Sverige men erbjuder sina tjänster på flera språk. I dagsläget utgörs tjänsterna av Kundo Chat, Kundo Forum, Kundo Mail och Kundo Knowledge som alla är helt webbaserade. Kundo Forum utgörs av ett underliggande ärendehanteringssystem gentemot företagskunderna samt ett webbaserat gränssnitt där användare kan ställa frågor och få svar från redaktörer på företagen. Varje ställd fråga skapar en forumtråd där konversationer mellan användare och redaktörer kan fortgå. 1 newspapers-a-day.html 2 1

7 Förutom att själv ställa frågor finns det också möjlighet för kunderna att söka bland befintliga frågor och svar i forumet. Kundo tror att det finns utrymme att förbättra den befintliga sökmotorn men har i dagsläget ingen konkret plan för hur det kan göras. Sökmotorer kan ha vitt skilda utformningar beroende på vilken kontext de är avsedda att användas i. En utredning av metoder och verktyg med särskild hänsyn till Kundos specifika domän är därför nödvändig. Utifrån ett industriellt perspektiv skulle en förbättrad sökmotor innebära att kunder som använder forumet hittar den information de söker snabbare och blir mer nöjda med tjänsten. Detta skulle i sin tur också medföra att färre kunder ställer samma fråga flera gånger vilket minskar arbetsbördan hos företagskunden. En förbättrad sökmotor skulle dessutom eventuellt kunna appliceras på andra tjänster inom Kundo. Specificerad problemformulering Innehållet i Kundo Forum består i huvudsak av frågor ställda av användare och svar på dessa från administratörer. Eftersom frågorna ställs av användare tenderar de att vara formulerade på ett ickegenerellt sätt. Vidare tenderar liknande frågor att kunna ställas flera gånger eftersom det finns mer än ett sätt att formulera liknande informationsbehov. Sökfunktionen tillhandahåller inget sätt att hitta liknande frågor annat än om de är formulerade med samma termer. Således kan Kundo Forum i viss mån karaktäriseras som ett forum som potentiellt är rikt på information men samtidigt saknar ett effektivt sätt att göra informationen lättillgänglig och organiserad. Problemet som ska undersökas kan därmed formuleras som att informationen i forumet ska göras mer lättillgänglig. För att göra detta utforskar vi metoder som ska göra sökfunktionen mer flexibel att använda. Samhälleliga och etiska aspekter Kundos arkivdata kommer användas som grund för att utveckla och testköra sökalgoritmer. Denna data är sekretessbelagd vilket ger en etisk aspekt på arbetet i den mening att den inte får spridas vidare. Data inkluderar inlägg som företag valt att inte publicera på sina webbplatser, vilket innebär att data måste behandlas med varsamhet och sekretess. Detta påverkar förmodligen inte arbetet negativt då det ändå är fullt möjligt att publicera resultatet från utvärderingarna utan att inkludera känslig data från olika företag. 1.2 Syfte, mål och frågeställning Syftet med denna rapport är att få en bild av hur Word2vec och liknande algoritmer fungerar och kan användas, samt hur dessa kan utnyttjas och kombineras med metoder för informationssökning. I kontexten av detta avser vi också undersöka metoder för informationssökning och hur dessa bäst kan kombineras och implementeras för en effektiv sökmotor. Målet med arbetet är att implementera och utvärdera nya modeller för ordrepresentationer vid informationssökning i Kundo Forum. För att göra detta undersöks modeller som Word2vec (2013), Fasttext (2016) och Glove (2014), samt hur dessa kan användas. Önskat resultat är att arbetet resulterar i en explicit slutsats gällande vilken/vilka metoder och algoritmer som kan utnyttjas för att förbättra sökmotorn inom användningsområdet som beskrivits. Nyhetsvärdet består i hur vektorbaserade ordrepresentationer kan användas inom ramen för en sökmotor samt hur praktiskt det är att använda i vår specifika kontext. Hur denna typ av 2

8 representationer tar sig uttryck på svenska har också visst nyhetsvärde eftersom den information som finns tillgänglig nästan uteslutande avser representationer av engelska ord. Frågeställningar Kan vi producera användbara vektorrepresentationer av ord med hjälp av egen träningsdata och hur görs detta på ett bra sätt? Vilka metoder för att representera ord är användbara i kontexten av domänspecifik sökning och hur kan dessa metoder implementeras i praktiken? Vilken eventuell påverkan kan metoderna som utreds ha på Kundo och Kundo Forum ur ett marknads- och produktutvecklingsperspektiv? 3

9 2. Bakgrund Detta arbete är av tvärvetenskaplig natur och berör datalogi, (data)lingvistik och i viss utsträckning även industriell ekonomi. Detta innebär att målgruppen är bred vilket kräver en omfattande bakgrund eftersom läsaren inte kan förväntas vara insatt i samtliga områden som behandlas. 2.1 Terminologi Vektor. I denna rapport beskrivs en vektor som en ordnad sekvens av värden eller med annan benämning tal. En vektor har ett antal dimensioner n och existerar i ett vektorrum. Korpus. En korpus är en stor samling språklig data i textform som används av forskare i lingvistik. Texter som finns i en korpus kan antingen vara transkriberat tal eller vanlig text. En korpus återspeglar ofta naturligt språkbruk. 3 Shingles. Shingles är ett begrepp inom informationsökningsbiblioteket Lucene 4 som beskriver parvis uppdelning av ord efter ordningen de förekommer i (avsnitt 2.3). 2.2 Lingvistik Inom datorbaserad lingvistik och språkteknologi är förbehandling av text (på engelska preprocessing) en viktig och nödvändig del i de flesta program och applikationer. Syftet är att ta bort irrelevant data och transformera text till en form som möjliggör och underlättar analys. Morfologi. Flertalet metoder som tillämpas inom förbehandling av text utnyttjar morfologiska regler. Morfologi är läran om ordbildning, ordböjning och den grammatiska funktionen hos olika ord. Alla ord är uppbyggda av en eller flera mindre enheter, så kallade morfem, som ofta delas in i klasserna ordstam och affix. Ordstammen utgör ordets grundläggande del medan den syntaktiska funktionen kan anges genom att ett affix tillfogas stammen 5. En stam kan i sin tur utgöras av rotmorfem och affix (undantaget böjningsmorfem). Ordet stol är ett exempel på ett rotmorfem (fritt morfem) som kan förekomma som ett självständigt ord till skillnad från exempelvis -ar, vilket är ett affix (bundet morfem) som inte ensamt kan bilda ett ord (t.ex. stol-ar)[1]. Ord kan även brytas ner i en rot och en stam, exempelvis ordet stolsitsar som består av tre morfem [ stol, sits, ar ] där stol utgör roten, vilket innebär att stolsits utgör stammen eftersom ar är ett böjningsmorfem som inte tillhör stammen 6. I fallet ovan utgör ar ett suffix (en typ av affix). Affix ges nämligen olika benämningar beroende på deras placering i förhållande till rotmorfem(en)/ordstammen, där prefix (före; re-konstruera), suffix (efter; hus-et), infix (inuti; korru-m-pera) och cirkumfix (före/efter; ge-sag-t) är några utvalda exempel Boye, Johan, docent i talteknologi, KTH, föreläsning Boye, Johan, docent i talteknologi, KTH, föreläsning

10 Stemming. En stemmer är en algoritm eller ett program vars uppgift är att producera ordstammar (eller ordrötter) från ord genom att avlägsna affix eller utnyttja undantagslistor och specialregler[2]. Denna operation kallas trunkering - om exempelvis ordet klokare ges som indata till en stemmer så skulle klok kunna produceras. På samma sätt skulle bland annat kloke, klokast, klokhet och klokheten också kunna resultera i klok 8. Detta gör en stemmer praktiskt användbar vid informationssökning och informationsextraktion. Oavsett om ordet är klokhet eller klokast så kommer det tolkas som klok efter stemming, vilket innebär att orden kan analyseras enhetligt. Samtidigt finns det nackdelar med att samla flera morfologiskt besläktade ord under samma stam på detta sätt. Det kan röra sig om situationer där ordens affix och kontext är relevanta, d.v.s. i de fall där ord med helt olika betydelse kan härledas från samma stam. Beroende på vilka regler som används så är det exempelvis möjligt att ord som tomat och tomte båda ger stammen tom vid stemming. Utöver detta skulle homonymerna klubba (godis), klubba (idrottsredskap) och klubba (vapen) alla få stammen klubb fastän de används i olika kontexter. Detta kallas övergenerering och resulterar i minskad precision.[3] Stemming är en språkberoende operation som kräver olika regler för olika språk. Idealt ska implementationerna kunna hantera svenska, engelska, norska, danska, finska, tyska, polska och spanska eftersom Kundos tjänst erbjuds för dessa språk. Själva stemmingprocessen för engelska tenderar att fungera bra dels eftersom många studier har utförts på området och dels eftersom engelska stemmers kan ha relativt enkel utformning tack vare att det engelska språket har mindre komplex morfologi jämfört med andra europeiska språk som finska[4]. Samtidigt kan engelskans relativt enkla morfologi, till skillnad från andra europeiska språk, medföra en ökad risk för att morfologiskt besläktade ord som används i olika kontexter får samma stam[3]. Lemmatisering. Till skillnad från stemming där flertalet morfologiskt besläktade ord ofta samlas under en enda gemensam stam så innebär lemmatisering att varje enskilt ord ersätts med sitt lemma (grundform) som dessutom måste ha samma ordklass som det specifika ordet. Detta innebär att lemmatisering generellt sett resulterar i högre precision, men samtidigt lägre täckning. Exempelvis skulle orden cykeln, cyklarnas respektive cyklade uteslutande kunna resultera i cykl vid stemming, men cykel, cykel respektive cykla vid lemmatisering. Lemmatisering är mer flexibelt än stemming i den mening att lemmatiserare är bättre på att hantera specialfall likt vissa oregelbundna verb vars morfologi skiljer sig helt från motsvarande lemma. Exempelvis skulle samtliga engelska ord go, goes, going och went kunna knytas till lemmat go vid lemmatisering. En stemmer skulle däremot inte lyckas härleda lemmat go för verbet went.[5] Lemmatiserare utnyttjar ordklasstaggare samt lexikon som kopplar ordformer till motsvarande lemman[6]. Detta innebär att även om flera olika ord har samma grundform så går det att skilja på dem genom att lägga till en ordklassbeteckning till grundformen och eventuellt även numrera grundformerna om ordklasserna skulle visa sig överensstämma. 9 Till skillnad från en stemmer så är det alltså möjligt för en lemmatiserare att skilja på homonymerna klubba (godis), klubba (idrottsredskap) och klubba (vapen). Att lemmatisering använder morfologisk analys medför dock att processen är betydligt mer resurskrävande än stemming. Detaljer angående tillvägagångssättet vid lemmatisering beror således på vilket språk som lemmatiseraren är avsedd att hantera[3] Sågvall Hein, Anna, professor i datorlingvistik, Uppsala universitet, föreläsning

11 Tokenisering. Om stemming eller lemmatisering ska gå att tillämpa på en godtycklig text så måste varje ord först identifieras och tolkas som en självständig enhet. Tokenisering är metoden för detta och innebär att en teckensekvens (text) delas upp i mindre självständiga enheter, så kallade tokens. Exakt vad som räknas som en token kan variera beroende på tillämpning. I denna rapport beskrivs en token som ett ord. Vid tokenisering är det vanligt att vissa tecken som punkter, kommatecken och andra skiljetecken avlägsnas helt[3]. Texten Igår, idag, imorgon, alla dagar är sig lika; kan exempelvis tokeniseras till: Igår idag imorgon alla dagar är sig lika Det är även fördelaktigt att konvertera alla bokstäver till gemener i syfte att erhålla en mer enhetlig representation. Om tokeniseraren ska kunna producera tillfredsställande resultat måste textens/dokumentets språk vara känt så att operationerna kan anpassas därefter[3]. Stoppord. I vissa tillämpningar är det överflödigt eller rent av negativt att samtliga ord i en teckensekvens tillvaratas. Vanliga och betydelsefattiga ord tillför inte nödvändigtvis något särdrag till en text som analyseras. Därför är det vanligt att avlägsna vissa ord vid förbehandling av text utifrån en lista av så kallade stoppord.[3] En ordsekvens på formen var kan man köpa billig tvål i Danmark skulle exempelvis kunna kortas ned enligt nedan: var kan man köpa billig tvål i danmark När alla stoppord i texten har avlägsnats erhålls: köpa billig tvål danmark Denna typ av textbehandling är förutom ovan nämnda fördelar också positiv eftersom den minskar datamängden som måste hanteras[3]. Användningen av stoppord kan emellertid också ha negativ påverkan, beroende på vilka andra metoder man använder, eftersom det leder till mindre precision[3]. Ngram av tecken. Ett ngram är en sekvens av ett godtyckligt antal tecken n. Varje ord med mer än en bokstav kan delas upp i mindre ngram som utgör delar av ordet. Strängen kung kan exempelvis delar upp i 2gram: ku, un och ng, eller likaledes 3gram: kun och ung. Ngram är en användbar enhet för att ta till vara på mindre beståndsdelar av ord och undersöka ordens uppbyggnad. 2.3 Informationssökning Informationssökning är att hitta material, ofta benämnt dokument, som tillfredsställer något form av informationsbehov och ingår i en större ostrukturerad samling[3]. Det är användbart att särskilja mellan tre huvudsakliga kontexter; webbsökning, domänspecifik sökning och sökning bland personlig information. Utmaningarna i dessa tre områden skiljer sig åt i många avseenden[3]. Denna rapport 6

12 kommer enbart att fokusera på den andra formen - domänspecifik sökning - där domänen avser Kundo Forum och materialet (dokumenten) som eftersöks utgörs av inlägg (frågor och svar) i forumet. Boolesk informationssökning. Den mest grundläggande formen av informationssökning är boolesk. Denna form av sökning innebär att användaren utifrån ett informationsbehov kan formulera en sökfråga i form av ett booleskt uttryck där exempelvis ett disjunktivt (också benämnt OR) uttryck medför att sökmotorn hämtar de dokument som innehåller något av orden som förekommer i sökningen. Denna form av sökmotor tar ingen hänsyn till ordens ordning eller antal förekomster.[3] Term-dokument-matris. För att inte behöva läsa in varje dokument linjärt vid varje sökning kan dokumenten med fördel indexeras i förväg. I kontexten av en boolesk sökmotor konstrueras därför ett index i form av en binär term-dokument-matris. Detta är en matris där varje rad motsvaras av ett ord och varje kolumn av ett dokument. Cellerna i matrisen innehåller en binär siffra som indikerar om ordet förekommer i dokumentet eller inte.[3] Inverterat index. Ett inverterat index är ett sätt att framställa en term-dokument-matris som gör att storleken blir dramatiskt reducerad. Eftersom de flesta ord bara förekommer i ett fåtal dokument är det onödigt att lagra (och genomsöka) en hel matris. En mer effektiv struktur är att använda ett index där varje ord pekar på en lista över vilka dokument det förekommer i. Detta index kan utökas till att även omfatta antalet gånger som ordet förekommer i varje dokument.[3] Vektorrumsmodellen. En effektiv sökmotor bör inte bara hämta alla relevanta dokument utan även rangordna deras inbördes ordning på ett meningsfullt sätt. För att åstadkomma detta kan varje dokument tilldelas ett betyg beroende på hur väl det matchar sökfrågan. En fundamental metod för detta är vektorrumsmodellen[3]. I kontexten av denna modell antas en sökfråga vara på formen fri text och inte som en del av ett booleskt uttryck. Ett dokument antas vara mer relevant om det innehåller fler förekomster av termer i sökningen och således tilldelas varje term en vikt TF som motsvarar dess termfrekvens. Varje dokument representeras därmed som en vektor där varje dimension anger hur många gånger en specifik term förekommer i dokumentet.[3] Cosinuslikhet. Med hjälp av formeln för cosinuslikhet kan vinkelavståndet mellan sökfråga och dokument beräknas. Vinkelavståndet är på intervallet [0, 1] och antas motsvara hur väl sökfrågan och ett specifikt dokument matchar varandra. Detta värde används för att rangordna dokumenten och ge användaren de mest relevanta dokumenten. 10 Fördelen med att använda cosinuslikhet jämfört med exempelvis euklidiskt avstånd är att vinkelavståndet inte påverkas av vektorernas längd. Euklidiskt avstånd ger missvisande resultat när dokumenten har samma distributiva egenskaper men olika storlek. 11 TF-IDF-viktning. Dokumentvektorer baserade på termfrekvens TF har nackdelen att alla termer betraktas som lika viktiga för att bestämma relevans. Zipfs lag postulerar att den mest frekvent förekommande termen i en samling text förekommer dubbelt så ofta som den näst mest frekventa osv. 10 Boye, Johan, docent i talteknologi, KTH, Information retrieval, föreläsning

13 Denna typ av fördelning gör att en del termer säger väldigt lite om dokumentets särart - och därmed har låg kraft att urskilja relevanta dokument.[3] För att adressera detta problem används måttet invers-dokumentfrekvens IDF för att försvaga vikten av termer som förekommer med hög frekvens i hela dokumentmängden. IDF beräknas för varje term genom att det totala antalet dokument i sökmängden divideras med antalet dokument som innehåller termen. Termfrekvens och invers-dokumentfrekvens multipliceras med varandra för att erhålla en användbar viktning av varje term, vilken benämns som TF-IDF-viktning. Cosinuslikhet mellan två dokument beräknas sedan enligt: cos( qd, ) q d q d n i 0 qd n n 2 2 qi di i 0 i 0 i i där q är vektorn för sökfrågan och q i är TF-IDF-vikten för term nummer i i sökfrågan, d är vektorn för dokumentet och d i är TF-IDF-vikten för term nummer i i dokumentet.[3] Ngram-index. Ett ngram-index är ett index som innehåller varje ngram av bokstäver som går att hitta bland alla ord i sökmängden. Varje indexerat ngram har en pekare mot de ord det ingår i, vilket möjliggör snabb hämtning av orden. Nedan finns en exempelbild på ett 3gram-index. Figur 1. Ngram-index. Denna typ av index kan användas för att utöka antalet termer som matchas mot ordinarie index vid sökning. Ett känt exempel är wildcard queries vilket innebär att varje sökterm delas upp i mindre ngram av godtycklig storlek, sedan hämtas alla matchande ord från index[3]. Sökningen utökas därmed till att omfatta alla ord som innehåller samma ngram som någon av termerna i sökfrågan. För att begränsa sökningen till ord som har mer gemensamt med den ursprungliga söktermen är en vanlig metod att bara välja ut de ord som har flera ngram gemensamt med söktermen. Detta är även ett vanligt sätt att bestämma korrekt term för sökningar som är felstavade och därmed inte kan matchas mot ordinarie index. Positionsindex. Många koncept, produkter och namn består av flera ord eller fraser. Informationssökning som inte tar någon hänsyn till vilken ordning ord förekommer i har därmed begränsade förutsättningar att tillgodose olika typer av informationsbehov. För att hantera detta utökas 8

14 ofta det invertade indexet till att även omfatta ett positionsindex som lagrar vilken position (eller positioner) i dokumentet ordet förekommer. Detta index kan sedan användas för att hämta eller prioritera de dokument som innehåller den specifika eller snarlika sökfrasen.[3] Shingles. En annan metod för att hantera fraser är att indexera varje ord parvis i den ordning de förekommer. Inom informationssökningsbiblioteket Lucene 12 kallas denna typ av indexering för Shingles vilket är den term vi också kommer använda. Utifrån meningen Katt åt stol, satt i halsen. skapas Shingles: Katt åt åt stol stol satt satt i i halsen Shingles kan indexeras och användas inom en sökmotor på samma sätt som vanliga termer och är ett effektivt sätt att hantera fraser eftersom det inte kräver den extra beräkningsbörda vid sökning som positionsindex medför. En Shingle hittas lika snabbt som en vanlig term och kan användas i måttet för cosinuslikhet. Shingles kan dessutom viktas med IDF på samma sätt som vanliga termer och därmed kan ovanliga Shingles bestående av vanliga termer få rättvisande vikt. Nackdelar med Shingles är att det gör index större samt att det inte fångar upp fraser som inte exakt matchar med någon Shingle.[3] 2.4 Utvärdering av sökmotorer Precision och täckning. Precision och täckning (recall) är två vanliga mått för att bedöma hur väl en sökalgoritm presterar. Precision anger hur stor andel av de returnerade dokumenten (sökträffarna) som är relevanta. Täckning anger hur stor andel av alla existerande relevanta dokument i sökmängden som faktiskt returnerades vid sökningen. Båda måtten anges på intervallet [0, 1] där högre värden indikerar bättre precision respektive täckning.[7] TP Precision = TP + FP TP Recall = TP + FN TP = True Positives (antalet relevanta dokument som returnerades) FP = False Positives (antalet irrelevanta dokument som returnerades) FN = False Negatives (antalet relevanta dokument som inte returnerades) Genomsnittlig precision. Måtten för precision och täckning tar ingen hänsyn till hur väl de returnerade dokumenten rangordnats av sökmotorn. Genomsnittlig precision, eller på engelska Average Precision (AP), är ett mått som råder bot på detta problem genom att precision och täckning beräknas för varje position i den rangordnade listan av returnerade dokument. Genomsnittlig precision definieras som integralen över varje precisionsvärde och deltavärde för täckning.[3]

15 Precision genomsnittligt precision p() r dr 1 0,8 0,6 0,4 0,2 Precision och täckning vid olika antal returnerade dokument 0 0,13 0,47 0,65 0,76 0,83 0,84 0,84 0,86 Täckning Figur 2. Kurva för precision och täckning. Om man som i figuren ovan ritar en kurva för precision och täckning vid olika antal returnerade dokument så utgörs genomsnittlig precision av arean under kurvan. Vid ett litet antal returnerade dokument är täckningen naturligt låg eftersom det i regel fortfarande återstår många falska negativer. Detta innebär att täckningen normalt sett ökar med antalet returnerade dokument. Precisionen följer ett annat mönster förutsatt att sökmotorn returnerar relevanta dokument före irrelevanta dokument. I detta fall minskar precisionen när antalet returnerade dokument ökar eftersom man får fler falska positiver. Vidare skulle en sökmotor som rankar irrelevanta dokument högt medföra initialt låg precision, vilket bidrar till att minska arean under kurvan. Detta medför i sin tur ett lägre värde på genomsnittlig precision jämfört med en sökmotor som rangordnar dokumenten mer korrekt. Därmed är genomsnittlig precision ett sätt att mäta hur väl sökmotorn prioriterar relevanta dokument framför irrelevanta. Måttet anges på intervallet [0, 1] där ett högre värde indikerar bättre genomsnittlig precision. Medelvärdet av genomsnittlig precision. Genomsnittlig precision används vid utvärdering av separata sökningar. Medelvärdet av genomsnittlig precision, eller på engelska Mean Average Precision (MAP), definieras som den genomsnittliga precisionen utvärderad över ett antal sökningar. Detta mått är användbart för att erhålla ett ensamt värde som indikerar hur väl en sökmotor hämtar och rangordnar dokument. Nära relaterat till detta mått är måttet medelvärdet av genomsnittlig precision vid k (MAPk), vilket enbart tar hänsyn till de första k dokumenten som returneras av sökmotorn. MAPk kräver inte att antalet relevanta dokument är känt, vilket gör måttet praktiskt för att utvärdera sökmotorer som används i sökmängder som är svåra att överblicka.[3] Normalized Discounted Cumulative Gain. Som nämnts anger MAP-värdet hur väl sökmotorn lyckas rangordna relevanta dokument högre än irrelevanta. MAP tar dock inte hänsyn till den inbördes rangordningen av relevanta dokument. Detta är en begränsning i de fall då vissa relevanta dokument betraktas som mer relevanta än andra relevanta dokument. Normalized Discounted Cumulative Gain (NDCG) är ett mått som kan ta hänsyn till fler än två rankingnivåer där varje nivå motsvaras av ett siffervärde som anger relevansen. Exempelvis skulle mycket relevanta dokument kunna tilldelas siffran 2, dokument med viss relevans siffran 1 och irrelevanta dokument siffran 0.[3]

16 Cumulative Gain (CG) utgör summan av alla returnerade dokuments motsvarande siffervärde för relevans, alternativt summan fram till en specifik rankingposition p. CG p p rel i 1 i där p anger rangordningsposition och rel i anger siffervärdet för relevans vid position p. Discounted Cumulative Gain (DCG) används för att vikta ner CG logaritmiskt när dokument med hög relevans tilldelas låg ranking av sökmotorn. DCG p p reli log ( i 1) i 1 2 Normalized Discounted Cumulative Gain (NDCG) används för att vid varje rankingsposition normalisera CG över sökfrågor. Detta eftersom DGC inte är tillräckligt vid jämförelse av hur sökmotorn presterar för olika sökfrågor i och med att antalet returnerade dokument kan variera stort mellan olika frågor. För att erhålla NDCG måste först IDCG p beräknas. IDCG p är största möjliga värdet på DGC vid position p och beräknas enligt: IDCG p 2 1 log ( i 1) REL rel i i 1 2 där REL är en lista av de relevanta dokument som sökmotorn returnerat fram till och med position p. Slutligen beräknas NDCG för en sökfråga enligt: NDCG p DCG IDCG p p 2.5 Distributionella representationer av ord Många nuvarande system och tekniker inom språkteknologi begränsas av att varje ord betraktas som en atomisk enhet där det inte finns något begrepp om semantiska likheter eller skillnader ord emellan[8]. Boolesk sökning och sökning baserat vektorrumsmodeller begränsas på samma sätt eftersom informationssökningen bygger på matchning mot explicita avgränsade termer. Användning av synonymdatabaser eller uppslagsverk för att skapa ett mer flexibelt sätt att hantera ord medför en rad begränsningar, inte minst p.g.a. varierande tillgänglighet på olika språk; brist på ord - särskilt i domänspecifika eller nya kontexter; samt brist på djupare kontextuella relationer mellan ord, exempelvis kohyponymi.[9] Den distributionella hypotesen postulerar att ett ords betydelse återspeglas av dess distributiva egenskaper i en korpus. J.R. Firth beskriver intuitionen bakom detta med citatet[9]: You shall know a word by the company it keeps! 11

17 På senare år har användning av särdragsvektorer (på engelska feature vectors ) inom mönsterigenkänning och maskininlärning fått ökad spridning. En särdragsvektor är en vektor med numeriska egenskaper som representerar något form av objekt visade Mikolov m.fl. banbrytande resultat i flera semantiska och syntaktiska tester med en ny algoritm för att effektivt skapa särdragsvektorer som representerar distributionella egenskaper hos ord i en korpus[8]. Den semantiska likheten mellan ord kan i denna kontext approximeras med hjälp av ett avståndsmått i vektorrummet. Vi utforskar detta fenomen med att först gå igenom en äldre metod kallad Latent Semantic Indexing som bygger matrisoperationer på statistisk data hämtad från en korpus[3]. Sedan går vi vidare till en introduktion av neurala nätverk för att komma in på arkitekturen för Word2vec och Fasttext. Vi avslutar med en genomgång av Glove (Global Vectors) som bygger på en mix av dessa två paradigm. Latent Semantic Indexing (LSI). LSI är en metod inom informationssökning som introducerades av Scott Deerwester m.fl. 1990[3]. Det är en matematisk och statistisk metod vars mål är att representera ord på ett sätt som motsvarar förväntad kontextuell samförekomst. Metoden utgår ifrån en term-dokument-matris där varje dokument motsvaras av ett dokument i sökmängden och cellerna innehåller förekomstfrekvens av varje ord. Matrisen faktoriseras med singulärvärdesuppdelning och därefter följer dimensionalitetsreduktion genom att små skalärvärden från diagonalmatrisen reduceras bort. Detta motsvarar i praktiken en minstakvadratapproximation av den ursprungliga matrisen till ett underrum (på engelska subspace).[3] I den lägre dimensionen kan varje ord representeras som en vektor vars dimensioner - istället för förekomstfrekvens i olika dokument - utgörs av värden som approximerar dess samförekomst med liknande ord i dokumentmängden. Varje dokument kan på samma sätt representeras som en vektor vars värden approximerar dokumentets kontextuella egenskaper istället för explicit ordfrekvens.[3] Vid informationssökning kan därmed en sökfråga reduceras till beskrivna lägre plan och matchas med dokument som delar dess distributiva egenskaper. Den främsta svagheten med LSI är att beräkningsbördan vid singulärvärdesuppdelning blir avskräckande stor när det handlar om stora mängder data. För att lägga till ytterligare data till modellen så krävs det vidare att hela processen görs om på nytt.[3] 2.6 Neurala nätverk och prediktionsbaserade representationer Artificiella neurala nätverk (ANN) är beräkningsmodeller inom datateknik som kan användas för inlärning av komplexa klassificeringsproblem och processer. Likt den mänskliga hjärnan så utnyttjar ANN ett stort antal sammanlänkade enheter (neuroner) för att kunna uppnå hög precision då antalet parametrar som är relevanta för problemet är stort. [10] Vi börjar med att definiera strukturen på en enskild neuron. Bilden nedan visar en neuron med inputvärden i form av vektorn: x x1, x2,...x K 12

18 och vikter i form av vektorn: w w1, w2,... wk samt en aktiveringsfunktion f och ett skalärt outputvärde y: Figur 3. Neuron i ett neuralt nätverk[11]. Formellt fungerar alltså en enskild neuron som följande: y f ( u) där u är en skalär som utgör input-värdet för neuronen. u definieras som: u K wix i 0 i Med vektornotation kan vi skriva: u T w x Olika typer av aktiveringsfunktioner gör att neuronen beter sig på olika sätt. Vanliga typer av aktiveringsfunktioner inkluderar bland andra Heavisides stegfunktion och sigmoida funktioner (även kallad s-kurva)[11]. Ett inlärningsproblem kan definieras som att neuronen matas med inputvärden x och eftersökta outputvärden t. Vikterna i nätverket samt aktiveringsfunktionen gör att neuronen producerar vissa värden för y. Därmed definieras en kostnadsfunktion E som beskriver skillnaden mellan eftersökta outputvärden t och faktiska outputvärden y producerade av det neurala nätverket[11]: 1 ( ) 2 E t y 2 Inlärningen sker genom att vikterna i förbindelserna - och därmed också nätverkets sätt att behandla den inkommande informationen - modifieras. För att hitta de optimala vikterna deriveras kostnadsfunktionen med avseende på varje vikt i w och minimeras genom stokastisk gradientsökning.[11] 13

19 Ett fullständigt neuralt nätverk kan illustreras som nedan där x är lagret där inputvärden förs in, h är mittenlagret - det gömda lagret - och y är lagret där outputvärden hamnar. Vikterna mellan inputlagret och det gömda lagret definieras på samma sätt som förut som w och vikterna mellan det gömda lagret och outputlagret definieras som w. Figur 4. Ett neuralt nätverk med ett input-lager, ett gömt lager och output-lager[11]. De optimala vikterna kan läras, på samma sätt som för en enskild neuron, genom att vikterna ändras i proportion till deras bidrag till det globala felet i kostnadsfunktionen. Metoden för att optimera vikterna i ett fullständigt neuralt nätverk på denna form kallas backpropagation-algoritmen. [11] Word2vec. Word2vec är en paraplyterm för modeller utvecklade på Google 2013 av Mikolov m.fl.[8]; modellerna är skrivna i C med öppen källkod och tillgängliga under Apache License Word2vec bygger på användningen av stora korpus för att genom maskininlärning skapa meningsfulla representationer av ord i vektorform[8]. Vi börjar med en genomgång av den första modellen; Continuos Bag of Words och fortsätter sedan med den andra; Skip-gram. Continuous Bag of Words (CBOW). Vid inläsning av en stor korpus skapas till att börja med ett vokabulär som innehåller alla ord i korpuset. Varje ord representeras som en vektor vars längd motsvarar vokabulärets storlek och vars värden är 0 i varje dimension utom en särskild som innehåller en 1:a. På så sätt får alla ord i vokabuläret en unik vektor - så kallad one-hot-encoding. Algoritmen skannar sedan hela korpuset genom att använda ett avgränsat ordfönster. Fönstret kan exempelvis fånga två ord framför och bakom ett mittenord enligt följande:

20 Vid varje inläsning matas ordvektorerna för orden i fönstret in i ett neuralt nätverk - som beskrivet tidigare - där inputvärden motsvaras av one-hot-vektorerna för kringliggande orden och det eftersträvade outputvärdet motsvaras av one-hot-vektorern för mittenordet. Vikterna i nätverket kommer därmed optimeras för att förutsäga mittenord baserat på kringliggande ord för varje ord i korpuset.[11] Nätverket innehåller ingen aktiveringsfunktion i mittenlagret men använder funktionen softmax i outputlagret. Softmax är en funktion som omvandlar en vektor med godtyckliga värden till en vektor av samma längd vars värden har den sammanlagda summan 1. Denna funktion gör på så sätt att outputvärdena kan användas i en kostnadsfunktion där de eftersträvade värdena utgörs av en viss sannolikhetsdistribution.[11] Formellt är alltså målet med modellen att: givet en sekvens av ord w w w w,,... T 1 2 ; maximera den logaritmerade sannolikheten för mittenordet w t givet ett antal kringliggande ord, beroende av storleken på kontextfönstret C t [12]: T t 1 c C t log p( w w ) t c Arkitekturen av det neurala nätverket medför att varje nod i input- och outputlagret associeras med ett antal vikter i förbindelsen till mittenlagret. Dessa vikter är sedan i praktiken vad som används, när modellen är färdigtränad, för att representera varje ord som en distinkt vektor.[11] Skip-Gram. Skip-gram bygger på samma arkitektur som CBOW med distinktionen att modellen försöker att predicera kringliggande ord baserat på mittenordet - snarare än tvärtom.[11] Komplexitet. Word2vec är avsett att användas för stora korpus och inlärningsprocessen blir snabbt väldigt komplex då storleken på det neurala nätverket ökar. Aktiveringsfunktionen i outputlagret medför vidare att varje vikt i hela nätverket behöver optimeras för varje träningsexempel. För att minska beräkningskomplexiteten används ett antal modifikationer, som är relevanta för den praktiska användningen av Word2vec, i form av inlärningsparametrar. Hierachal Softmax. Hierarchal softmax är ett alternativ till softmax-funktionen som innebär att ett binärt träd används där löven representerar outputlagret. En stig till varje löv från roten används för att approximera sannolikheten för varje ord i outputlagret.[11] 15

21 Negative Sampling. Negative sampling utgör ett alternativ till den ursprunliga softmax-arkitekturen och innebär att vikterna i nätverket bara modifieras mot ett litet antal slumpmässigt valda ord i outputlagret.[11] Subsampling. Subsampling är en metod för att minska betydelsen av frekvent förekommande ord. En subsampling rate t väljs ut där p(word) är sannolikheten att ordet ska plockas bort ur vokabuläret och f(word) är frekvensen som ordet förekommer i korpuset.[11] p( word) 1 t f ( word) Word2phrase. Word2phrase är en algoritm skriven i C, anpassad att användas till Word2vec. Utifrån en korpus skapar algoritmen statistik över ord som ofta förekommer i följd; vid tillräckligt stort antal samförekomster konkateneras orden med ett understreck. En korpus behandlat på detta sätt kan sedan användas som inlärningsdata i Word2vec för att erhålla vektorrepresentationer av mindre fraser, som exempelvis kalla fakta eller liknande, vars innebörd starkt skiljer sig från de individuella ordens innebörd.[12] Fasttext. Fasttext är en modell utvecklad på Facebook 2016 för liknande typ av inlärning som Word2vec. Modellen utvecklades med syftet att tillvarata information om ords interna struktur vid inlärning med motivet att modeller som bygger på diskret kategorisering av ord har dåliga förutsättningar att skapa meningsfulla representationer på språk med rikare morfologi.[13] Fasttext har samma arkitektur som Word2vec - men istället för att bara ge varje ord en unik one-hotvektor så associeras varje ord även med en vektor för varje Ngram som utgör en del av ordet. Denna typ av arkitektur möjliggör att ovanliga ord - exempelvis längre ord bestående av flera morfem - kan dela Ngram med många andra ord och således representeras på ett mer rättvisande sätt.[13] 2.7 Räknebaserade representationer Glove (Global Vectors) är en modell utvecklad på Standford 2014 som utgör ett försök att kombinera räknebaserade metoder - som vi såg ett exempel på med LSI - med inläsning via ordfönster och stokastisk gradientsökning.[14] Word2vec är som vi visat en modell som optimeras successivt med träningsdata från ett ordfönster. Glove använder på samma sätt som Word2vec ett ordfönster, men bygger istället en global matris över ordens samförekomst med andra ord av insamlad träningsdata. Optimeringsproblemet definieras sedan med en kostnadsfunktion där målet är att minimera skillnaden mellan skalärprodukten av två ordvektorer och logaritmen av antalet gånger de förekommer tillsammans. Formellt definieras funktionen som: ˆ T J f ( X )( w w log X ) i, j ij i j ij 2 16

22 där X ij är antalet gånger ordet i förekommer i kontexten j. w i samt w j är vektorerna för de två orden och f är en aktiveringsfunktion. Kostnadsfunktionen optimeras för hela vokabuläret genom stokastisk gradientsökning.[14] 2.8 Tidigare studier WMD. Kusner, Sun, Kolkin och Weinberger på Washington University i S:t Louis föreslår i studien From Word Embeddings To Document Distances en ny metod för att klassificera likartade dokument eller paragrafer med hjälp av Word2vec-baserade ordrepresentationer. WMD (Word Movers Distance) som metoden kallas utvärderar likheten mellan två olika dokument genom att mäta avståndet som inbäddade ord i det ena dokumentet behöver färdas för att nå de inbäddade orden i det andra dokumentet.[15] Figur 5. Alla (icke-stoppord) bäddas in i vektorbaserade ordrepresentationer, exempelvis med Word2vec. Avståndet mellan två dokument är det kortaste samlade avståndet som ordinbäddningarna i dokument 1 behöver färdas för att nå ordinbäddningarna i dokument 2.[15] Metoden kan formellt definieras som att skillnaden mellan två dokument är det minsta möjliga totala euklidiska avståndet som orden i dokument 1 behöver färdas för att nå dokument 2. Längden av dokumenten normaliseras för att inte få asymmetriska resultat när dokument av olika längd jämförs.[15] WMD ger state-of-the-art-resultat på flera benchmarks för dokumentklassificering och medför bättre resultat jämfört med andra modeller såsom TF-IDF och LSA/LSI som båda tas upp i den här studien. Metoden behandlar förvisso inte informationssökning men är ändå intressant att ta upp eftersom den tangerar vårt arbete på flera nivåer.[15] 17

23 2.9 Verktyg för analys kopplad till industriell ekonomi Här följer en bakgrundsbeskrivning av modeller och verktyg som kommer att användas för analysen inom ämnesområdet industriell ekonomi. SWOT-analys. Föremålet för en SWOT-analys kan vara ett företag, en produkt eller en enskild företeelse. Bokstäverna i SWOT representerar Strengths (styrkor), Weaknesses (svagheter), Opportunities (möjligheter) och Threats (hot). Ett företag kan själv påverka faktorer som styrkor och svagheter, men i mindre utsträckning omvärlds- eller framtidsfaktorer som möjligheter och hot. I en SWOT-analys granskas dessa fyra faktorer i syfte att erhålla en bild av nuläget, vilket ger en strategisk översyn som kan ligga till grund för den framtida strategin. En SWOT-analys är således ett verktyg för att identifiera vad som kan utnyttjas i företagets eller produktens utveckling samt vad som kan förbättras eller beaktas. 14 S Strengths (styrkor) O Opportunities (möjligheter) W Weaknesses (svagheter) T Threats (hot) Figur 6. Komponenterna i en SWOT-analys. Porters generiska strategier. Porters generiska strategier anger olika sätt för ett företag att positionera sig på marknaden med hänsyn till konkurrenter. De tre generiska strategierna utgörs av kostnadsledarskap, differentiering och fokusering.[16] Kostnadsledarskap: Kostnadsledarskap innebär att företaget försöker uppnå konkurrensfördelar genom att erbjuda ett lågt pris i ett brett segment, ofta hela branschens marknad. Differentiering: Utgångspunkten i en differentieringsstrategi är att som företag särskilja sig från konkurrenterna, ofta genom att erbjuda en unik produkt. Även vid differentiering är målgruppen ett brett segment av kunder. Fokusering: Fokusering är en form av nisch-strategi mot ett mindre segment av kunder. Det finns två typer av fokusering; kostnadsbaserad och differentierad. Kostnadsbaserad fokusering liknar kostnadsledarskap, men med inriktning mot ett fokuserat segment av priskänsliga kunder. Differentierad fokusering liknar differentiering, men med inriktning mot ett fokuserat segment av kunder som ställer särskilda krav på produkten. Matrisen nedan visar hur ett företag kan positionera sig med utgångspunkt i dessa strategier

24 Figur 7. Porters generiska strategier. 19

25 3. Metod 3.1 Översikt Sammanfattning. Vi implementerar en prototyp-sökmotor för Kundo Forum. Sökmotorn utgörs av en grundimplementering som liknar Kundos nuvarande sökmotor och byggs på med flera andra funktioner. Distributionella ordrepresentationer skapade med Word2vec, Fasttext och Glove används och utvärderas inom ramen för sökmotorn. Metoder för att skapa effektiva representationer med dessa verktyg utvärderas således också - vi undersöker lämplig träningsdata och inlärningsparametrar. Maskininlärningsalgoritmen t-sne används för att visualisera ordrepresentationerna i ett tvådimensionellt plan i syfte att utvärdera om kontextuellt besläktade ord bildar kluster. För att sätta vårt arbete i ett större perspektiv genomförs en semistrukturerad intervju med Kundos VD (se bilaga 1). Intervjun utgör en viktig del av underlaget för analysen av Porters generiska strategier samt SWOT-analysen. Intervjun och analyserna kan sedan utgöra utgångspunkt för vidare diskussion om arbetets inverkan på Kundo och Kundo Forum ur ett marknads- och produktutvecklingsperspektiv. Verktyg. Hela sökmotorn implementeras i Python; detta på grund av att det är ett språk vi båda har mycket erfarenhet av och att Kundo använder Python i hög utsträckning. Inom Python utnyttjas bibliotek för språkteknologi NLTK (Natural Language Toolkit), bibliotek för vektorrumsmodeller mm. Gensim, samt bibliotek för maskininlärning: Scikit-learn för visualisering av ordvektorer. Word2vec, FasText och Glove körs i Bash. Förbehandling av stora texter för inlärning sker med en tokeniserare, som genomgår viss modifiering, skriven av Johan Boye på Tal, musik och hörsel (KTH). Skriptspråket Perl utnyttjas även i liten omfattning för förbehandling av text. 3.2 Resurser Forum. För att kunna utveckla och utvärdera en sökmotor till Kundo Forum krävs tillgång till företagsdatabaser för forum för kundsupport. Kundo har försett oss med arkivdatabaser i JSONformat där hela kundforum görs lättillgängliga. Korpus för inlärning. Språkbanken tillhandahåller stora korpus som är fritt tillgängliga. Huvudsakligen används det senaste tillägget till the Swedish Culturomics Gigaword Corpus. Denna korpus har sammanställts av språkbanken mellan Innehållet består av nyhetsartiklar, vetenskapliga artiklar samt innehåll från sociala medier 15. Web Crawling. Generella korpus från mängder av olika domäner kan kompletteras med domänspecifika korpus. För att hämta text från specifika domäner skapar vi en web-crawler i Python. Specifikt används denna på SVT:s webbplats i syfte att skapa en korpus som återspeglar domänen som tillhör SVT Forum. Algoritmen börjar med att hämta SVT:s startsida och traverserar sedan genom webbplatsens URL-adresser som extraheras allteftersom nya URL-adresser besöks. För varje adress hämtas och sparas textinnehållet från sidan. Tidsåtgången reduceras genom att arbetet delas upp i flera parallella trådar. Algoritmen sammanfattas i bilaga

26 3.3 Inlärning Huvudsakligen används Gigaword Corpus från språkbanken för inlärning. Därtill skapar vi två ytterligare korpus, SVT Korpus och SVT Forum, som beskrivet nedan. Text hämtad med web-crawler från SVT:s webbsida behandlas genom att alla hämtade dubbletter av rader tas bort. Innehållet slås sedan samman med hela textinnehållet från SVT forum för att skapa ett så stort domänspecifikt korpus som möjligt. Ordningen på raderna randomiseras för att göra det samlade dokumentet symmetriskt. Denna korpus benämns SVT Korpus. Vi skapar även korpusen SVT Forum genom att enbart använda textinnehållet från SVT Forum. Förbehandling. Varje korpus tokeniseras genom att alla former av skiljetecken (exempelvis punkt, komma, apostrof mm.) avlägsnas och att varje numerisk siffra (0-9) ersätts med dess motsvarighet i ordform. Detta resulterar i en textfil som enbart består av ord, blanksteg och tecken som indikerar radbyten. Radbyte utgör relevant information vid användning av Word2vec och Fasttext eftersom det medför att inläsningen bryts 16. Efter förbehandlingen blir antalet ord (tokens) för Gigaword Corpus drygt 4 miljarder, SVT Korpus ca 16 miljoner och SVT Forum ca 4 miljoner. Träningsparametrar. Här listas de parametrar vi använt vid körning av Word2vec, Fasttext och Glove på Gigaword Corpus. Word2vec och Fasttext tränas med modellen Skip-Gram eftersom Mikolov m.fl. samt Bojanowski, Grave m.fl. visat att denna modell presterar bäst på flera tester.[8][13] För samtliga körningar har ett ordfönster på storlek 10 använts. Detta med motivet att både Mikolov m.fl. samt Pennington m.fl. visar på goda resultat med storlek 10 för Word2vec respektive Glove[8][14]. För både Word2vec och Fasttext har vektordimension 300 använts. Mikolov m.fl. samt Bojanowski, Grave m.fl. visar på avtagande resultat med högre dimensioner än 300, även vid användning av större mängd träningsdata[8][13]. För Glove har vektordimension 200 använts. Pennington m.fl. visar på avtagande förbättringar med fler än 200 dimensioner för Glove och använder bara så pass höga dimensioner som 300 vid större antal iterationer (100 st)[14]. Vi kör bara 50 iterationer; en iteration med Glove är betydligt snabbare än med Word2vec och Fasttext och därför körs fler iterationer med Glove

27 Figur 8. Träningsparametrar för Fasttext, Word2vec och Glove. För icke specificerade parametrar har standardparameter använts. SVT Korpus och SVT Forum tränas enbart på Fasttext med Skip-Gram-modellen. Inlärningsparametrarna skiljer sig åt något med en lägre vektordimension på 150 samt enbart krav på minimum två antal ordförekomster. Eftersom korpuset är så pass litet har vi möjlighet att göra fler iterationer; vi genomför 400 iterationer. På SVT Forum använder vi vektordimension 50 och genomför 500 iterationer. Detta stora antal iterationer gör troligtvis inte vektorerna bättre eftersom nätverkets vikter inte kan bli bättre efter ett visst antal iterationer. Kostnaden av större antal iterationer är dock inte särskilt stor eftersom träningsdata är så pass begränsad. Word2phrase. Gigaword Corpus körs i Word2phrase med träningsparameter threshold 200. Denna parameter anger hur många samförekomster som krävs för att två ord ska konkateneras utifrån ett särskilt mått[12]. Det modifierade korpuset tränas sedan med Fasttext och Word2vec med samma parametrar som innan. 3.4 Sökmotor Här beskrivs implementationen av sökmotorn för Kundo Forum. Grundimplementationen beskrivs först och sedan beskrivs olika påbyggnadsfunktioner. Tokenisering. För att kunna indexera dokument i forumet måste texten i varje dokument först tokeniseras. Tokeniseringen av ord sker enligt modellen WordPunctTokenizer i NLTK 17. Denna typ av tokenisering gör att mindre delar av sammanskrivningar betraktas som individuella ord. På så sätt kommer oavsiktliga sammanskrivningar - exempelvis utelämnade av mellanslag efter punkt - tokeniseras som olika ord

28 Tokenisering av meningar. Varje dokument delas upp i meningar baserat på förekomsten av interpunktionstecken. Denna typ av tokenisering är nödvändig för kunna skapa meningsfulla fraser med Shingles eftersom fraser aldrig antas löpa över menings- eller radbrytning. Filtrering av stoppord. Stoppord filtreras (valfritt) bort vid tokeniseringen utifrån NLTKs standardlista för stoppord. Stemming. Efter tokeniseringen genomgår alla ord (valfritt) stemming. Från egen undersökning konstaterar vi att det finns betydligt fler stemmers än lemmatiserare att tillgå för olika mänskliga språk. Eftersom språkflexibilitet är ett krav från Kundo är därför stemming en mer praktiskt metod för att knyta ord till sin grundform. Vi har valt att använda Snowball stemmer, vilket är en välanpassad algoritm för europeiska språk 18. Algoritmen anpassas för svenska vilket innebär att semantiska regler specifika för svenska språket tillvaratas och används för att skapa de regler som ger stammen för varje ord. Indexering. Varje ordstam - hädanefter term - indexeras kontinuerligt vid inläsning av dokument i forumet. För ett givet dokument så indexeras alla termer där varje term tillfogas antalet förekomster av termen i det aktuella dokumentet samt dokumentets id-nummer. Om termen redan finns i index så kommer enbart antalet förekomster samt dokumentets id-nummer att tillfogas termen i index. På detta sätt skapas ett inverterat index på formen beskrivet i bakgrundsdelen (avsnitt 2.3). Denna typ av index medför snabb hämtning av antal förekomster i olika dokument givet en sökterm. IDF-index. Efter indexeringen skapas även ett index över IDF-värdet för varje term. Detta skapas genom att varje term tillfogas sitt IDF-värde, vilket beräknas som det totala antalet dokument i forumet dividerat med antalet dokument termen förekommer i. Logaritmisk skala används och således kan formeln skrivas som: IDF term log( totalt antal dokument ) antal dokument termen förekommer i Normering. För att kunna använda måttet för cosinuslikhet mellan sökfråga och dokument måste dokumentvektorerna normeras. Detta innebär att längden på varje dokument måste beräknas. Enligt standardmetodik används den euklidiska normen där elementen i dokumentvektorn utgörs av TF-IDFvärdet av termerna i dokumentet. Sökning. Vid sökning tokeniseras och stemmas sökfrågan på samma sätt som dokumenten. Med hjälp av det inverterade indexet görs en boolesk sökning efter alla dokument som innehåller någon av söktermerna. Sedan beräknas cosinuslikheten mellan sökfrågan och varje dokument som hämtats. För att prioritera dokument som innehåller större antal unika söktermer används ett koordinationsmått (query coordination) föreslaget i Lucene 19. Detta innebär att cosinuslikheten mellan sökfråga och dokument multipliceras med en koordinationsfaktor definierad som andelen av det totala antalet söktermer som finns i dokumentet. Givet sökningen Katt åt stol beräknas alltså koordinationsfaktorn:

29 Dokument som enbart innehåller katt : 1/3 Dokument som innehåller katt och åt : 2/3 Dokument som innehåller katt, åt och stol : 3/3 = 1 På detta sätt viktas dokument som bara innehåller många upprepningar av fragment från sökfrågan nedåt. Till sist sorteras dokumenten efter deras sammanlagda poäng. 3.5 Shingles Shingles implementeras som metod för sökning med fraser. Denna metod är snabb och ger god precision eftersom Shingles kan IDF-viktas på samma sätt som vanliga termer. Vid inläsning skapas Shingles av ordpar inom separata meningar. Shingles läses in och indexeras på samma sätt som vanliga termer. Vid normering tas ingen hänsyn till Shingles eftersom det i praktiken inte tillför några större särdrag mellan olika dokument. Vid sökning skapas Shingles av sökfrågan, matchas mot index och genomgår samma formel för cosinuslikhet som vanliga termer. Enda skillnaden är att Shingles viktas ned med shingle-koordination såväl som koordinationsmåttet för vanliga söktermer. Detta för att inte ge individuella Shingles för stor kraft att bestämma utfallet av en sökning. 3.6 Ngram-index Användningen av Ngram har potential att öka sökmotorns täckning relativt enkelt och implementeras i detta syfte. Tanken är att en sökterm ska kunna generera dokument som inte nödvändigtvis innehåller hela termen men i alla fall delar av den. Som beskrivet i bakgrund utformas Ngram-index genom att alla termer som förekommer i dokumentmängden delas upp i lämpliga Ngram och indexeras så att varje Ngram pekar på en lista av de ord som det utgör en delsträng av. Två metoder för att konstruera index implementeras: Ngram av delsträngar. Den första metoden är så kallad wildcard queries. Ett index konstrueras av Ngram med godtyckligt fixerat värde på N och givet en sökterm så matchas alla Ngram som finns i söktermen mot index. Alla termer med gemensamma Ngram returneras och sökning görs mot ordinarie index. Denna metod beskrivs i ElasticSearch:s dokumentationen som en shot-gun approach 20 på grund av dess potential att övergenerera matchande termer. Söktermen kortautomat givet 3gram genererar exempelvis matchningar av termer som innehåller något av 3grammen: kor ort rta tau aut uto tom oma mat Ngram av ordrander. Den andra metoden är ett försök att begränsa potentialen för övergenerering. Index begränsas till att omfatta Ngram som kan fästas i början eller slutet på ord i dokumentmängden. Utifrån ett godtyckligt minimumvärde på N så indexeras alla Ngram av ordrander upp till ett visst maxvärde. Dessa Ngram har varierande storlek och kan därmed matchas direkt mot hela söktermen. Givet söktermen kung genereras således exempelvis: kungapar kungöra kung kungarike älvakung

30 Vi implementerar även funktionalitet för att matcha ordranden i söktermer, istället för enbart hela söktermer, mot ordrander i index. Detta kan antas ge högre täckning men på samma sätt öka risken för övergenerering. 3.7 Ordinbäddning med distributionella representationer Inläsning i Python. Gensim tillhandahåller modulen Keyedvectors för hantering av vektorbaserade representationer av ord i Python. 21 Vektorer tränade i Word2vec, Fasttext och Glove kan alla produceras i textformat där varje ny rad i filen utgörs av ett ord följt av dess vektorrepresentation. Med hjälp av detta enhetliga format kan alla vektorfiler läsas in i Python och sparas ned i ett enhetligt binärt format för snabbare inläsning. Keyedvectors ger stöd för snabb utvärdering av närliggande ord, trots höga vektordimensioner, genom att projicera vektorerna på lägre hyperplan. Måttet som utvärderas är cosinuslikhet. Varje ord har därigenom en viss likhet med andra närliggande ord. Expandering av söktermer. Med Gensim som verktyg för utvärdering av närliggande ord föreslår vi en metod för expandering av söktermer som bygger på att närliggande ord hämtas vid sökning. Dessa termer matchas mot ordinarie index och således kommer sökmotorn returnera dokument som innehåller ordinarie söktermer samt termer med närliggande distributionella representationer. Normal IDF-viktning lämpar sig dåligt för närliggande termer eftersom deras informationsvärde inte återspeglas av hur ofta de förekommer i dokumentmängden - utan snarare av hur pass lika de är ordinarie sökterm. För att ge närliggande termer en meningsfull viktning, samt prioritera ordinarie sökterm, viktas dessa med en faktor som motsvarar cosinuslikheten med ordinarie sökterm. Givet att ordinarie sökterm t har ett visst IDF-värde t IDF viktas alltså den närliggande termen w enligt formeln: w cos( t, w ) t vikt vektor vektor IDF I de fall då ordinarie sökterm inte finns i dokumentmängden, och därmed har IDF-värde noll så väljs istället den mest närliggande termens IDF-värde som t IDF i formeln ovan. Ett modifierat koordinationsmått används där närliggande termer betraktas som substitut för ordinarie sökterm. Därmed kan kombinationer av närliggande termer erhålla högre koordinationsfaktor än fragment av sökfrågan där substitut saknas. Ordinbäddning med Shingles. Shingles kombineras med ordinbäddning för att skapa meningsfulla fraser av kombinationer mellan ordinarie söktermer och närliggande termer. Givet en Shingle av ordinarie söktermer implementeras detta med följande algoritm: 1. Första termen kombineras med alla närliggande termer till andra termen. 2. Andra termen kombineras med alla närliggande termer till första termen. 3. Närliggande termer till första termen kombineras med närliggande termer till andra termen

31 De nya Shingles som skapas kommer sedan att viktas ned med faktorn av: 1. Cosinusavståndet mellan den andra termen till dess närliggande term. 2. Cosinusavståndet mellan den första termen till dess närliggande term. 3. Produkten av (1.) och (2.). Word2phrase. Stöd för ordvektorer tränade med Word2phrase implementeras genom att närliggande ord till Shingles från sökfrågan hämtas på samma sätt beskrivet ovan. För att kunna hämta närliggande termer till Shingles konkateneras termerna med ett understreck. Närliggande termer viktas på samma sätt som förut där s motsvarar den aktuella Shingeln och w den hämtade närliggande termen: w cos( s, w ) s vikt vektor vektor IDF Word2phrase innebär att närliggande ord till individuella termer kan utgöras av Shingles. I detta fall delas den konkatenerade termen upp till en Shingle och viktas på samma sätt som tidigare. 3.8 Utvärdering Sökmotorns olika utformningar utvärderas med hjälp av manuellt klassificerade delmängder av dokument. Givet en sökfråga så klassificeras varje dokument med en siffra från (0-2) där 0 indikerar icke relevant, 1 indikerar delvis relevant och 2 indikerar mycket relevant. Sökmotorn borde idealt rangordna dokument med klassificering 2 högre än dokument med klassificering 1 medan dokument med klassificering 0 borde rangordnas sist eller inte hämtas alls. Forumet som används är SVT Forum och dokumenten som genomsöks utgörs av frågor som ställts av riktiga användare, specifikt titeln på frågan och frågan i sig. Vi har formulerat tio egna sökfrågor där sökningen sker i delmängder av 200 stycken klassificerade inlägg för varje fråga. Med andra ord har totalt 2000 inlägg klassificerats manuellt. Inlägg har valts ut från intervall som innehåller vissa relevanta inlägg, samt helt slumpvis framtagna intervall. Anledningen till varför endast frågor utvärderas är för att få så enhetligt innehåll som möjligt. En blandning av frågor och svar, samt andra typer av inlägg, är svårare att klassificera objektivt. Vidare saknar vi resurser för att klassificera ett stort antal hela trådar på grund av mängden inlägg dessa kan innehålla. Det är vi själva som klassificerar inläggen. En nackdel med detta är att vårt egna arbete med att utforma sökmotorn riskerar att påverka hur vi väljer att klassificera inlägg. Detta utgör ett problem men på grund av sekretesskyddet samt begränsad tid har vi inte haft möjlighet eller tid att hämta klassificering från utomstående eller få vår klassificering granskad och omarbetad. Frågorna är framtagna genom att vi identifierat vanligt förekommande frågor i forumet och formulerat dessa på ett neutralt sätt för att kunna publicera dem i rapporten utan att bryta kravet på sekretess. Som framgår av figuren nedan är frågorna formulerade på ett tydligt sätt som ger litet utrymme för olika tolkningar. Mindre specifika formuleringar hade gjort det svårare att klassificera dokument. Förekomsten av stoppord i frågorna gör vidare att det går att utvärdera samma frågor med eller utan stoppord för vissa funktioner. Sökfrågorna presenteras i tabellen nedan: 26

32 Sökfråga dålig bildupplösning i svt play fungerar inte att se i mobilen när lägger ni upp allsång på skansen på svt play? när börjar julkalendern sändas? kan man ladda ner klipp? fungerar inte att se från utlandet ingen bild när man klickar på fullskärm problem med mobilappen kommer eurovision song contest läggas upp på nätet? kommer ni anordna någon valvaka inför valet i USA? 27

33 4. Resultat 4.1 Utvärdering av närliggande termer Nedan visas en bild på närliggande ordinbäddningar med Word2vec, Fasttext och Glove för tre olika termer. Som figuren visar tenderar Fasttext att klustra ord med gemensamma Ngram medan Word2vec och Glove klustrar ord som enbart har semantisk relation. Term nätverk dokumentärserie medicin Word2vecexpansioner broadcasting realtidskommunikation paketförmedlare programserie medialized realityserie fysiologi neurologi farmakologi Fasttextexpansioner hemnätverk kontaktnätverk stödnätverk doumentärsidan dokumentär dokumentärfilm humanmedicin värkmedicin magmedicin Gloveexpansioner paketförmedlare trådlösa kontakter dramaserie miniserie svt receptbelagd ayurvedisk antidepressiv Figur 9. Exempel på hämtning av närliggande ord för söktermerna nätverk, dokumentärserie och medicin. Närliggande ord för dessa termer redovisas för samtliga tre modeller: Word2vec, Fasttext och Glove. Syntaktiska variationer av samma ord är utelämnade. 4.2 Visualisering med t-sne Varje ordinbäddning i vokabuläret från Fasttext, Word2vec eller Glove kan visualiseras som en punkt i ett tvådimensionellt plan. Punkternas koordinater baseras på motsvarande ordvektorer efter att dessa genomgått dimensionsreduktion med t-sne. Nedan visas visualiseringar av ordinbäddningar skapade med Fasttext och Gigaword Corpus: 28

34 Figur 10. De 8000 första orden i Fasttext-vokabuläret visualiserade med t-sne på ett 2Dplan. Som figur 10 visar så bildar orden i Fasttext-vokabuläret olika kluster med varandra. Nedan undersöks hur dessa kluster ser ut på närmare avstånd. Figur 11a (vänster) och figur 11b (höger) visar hur kontextuellt besläktade ord bildar kluster. 29

35 Precision Täckning Figur 12a (vänster) och figur 12b (höger) visar hur kontextuellt besläktade ord bildar kluster. I dessa kluster observeras även högre förekomst av syntaktiska variationer av samma ord. Visualiseringarna visar att ordinbäddningar skapade i Fasttext tenderar att hamna i samma område på t-sne-projiceringen om de är kontextuellt besläktade. Vidare visas även att olika syntaktiska variationer av samma ord, samt ord som i vissa fall delar Ngram med varandra, också tenderar att hamna nära varandra. 4.3 Utvärdering av sökmotorn Baseline. Vi börjar med att etablera en baseline som påbyggnadsfunktionerna kan jämföras med. Baseline utgörs av grundimplementeringen av sökmotorn beskrivet i avsnitt ,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 Baseline ,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0,0 Baseline Antal returnerade dokument Antal returnerade dokument Figur 13a (vänster) beskriver sökmotorns precision för olika antal returnerade dokument. Vi observerar att precisionen är hög initialt men snabbt sjunker. Figur 13b (höger) beskriver sökmotorns täckning vid olika antal returnerade dokument. Som figuren visar planar täckningen ut kring 0,55 vilket innebär att ca 55% av alla relevanta dokument hittas. 30

36 1,00 0,80 0,60 0,46 0,63 0,40 Baseline 0,20 0,00 MAP Medelvärde NDCG Figur 14 visar att baseline har MAP 0,46 och medelvärde av NDCG 0,63. Vid utvärdering av baseline visas att användning av stoppord har liten inverkan på resultatet och ger försumbara skillnader. Ngram. Här utvärderas Ngram implementerat som tillägg till grundimplementationen. Tre varianter utvärderas med två olika värden på N. Den första varianten är Ngram från hela söktermen vilket innebär Ngram av ordrander som matchar med hela söktermen. Den andra varianten är Ngram från alla ordrander vilket innebär att alla ordrander från söktermen matchas mot alla ordrander i index. Den tredje är Ngram alla vilket innebär att alla Ngram från söktermen matchas mot alla Ngram i index. 1,00 0,80 0,60 0,46 0,50 0,80 4gram från 0,46 0,50 0,64 0,67 0,69 0,47 0,63 0,64 0,68 hela söktermen 0,60 4gram 0,46 från alla ordrander 0,40 4gram alla 0,20 0,00 Baseline 3gram från hela söktermen 3gram från alla ordrander 3gram alla 0,50 0,46 0,46 0,47 0,46 0,64 0,67 0,69 0,63 0,64 0,68 0,68 0,40 0,20 0,00 MAP Medelvärde NDCG Figur 15 beskriver hur 3gram och 4gram presterar jämfört med baseline. Som staplarna visar ger 4gram från alla ordrander och 4gram alla bäst resultat överlag. 31

37 Precision Täckning Precision Täckning 1,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 Baseline 4gram alla Antal returnerade dokument 1,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0,0 Baseline 4gram alla Antal returnerade dokument Figur 16a (vänster) och 16b (höger) visar precisions- respektive täckningskurvan för 4gram alla vilken gav bäst resultat bland alla testade varianter. Metoden verkar ge högre täckning men samtidigt lägre initial precision. Grundimplementation med ordinbäddning. Vi utvärderar baseline gentemot den grundläggande implementationen av ordinbäddning beskriven i avsnitt 3.7. Ordrepresentationer skapade med Word2vec, Fasttext och Glove med Gigaword Corpus som inlärningsdata utvärderas inom ramen för implementationen. 1,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 Baseline FastText Word2vec GloVe ,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0,0 Baseline FastText Word2Vec GloVe Antal returnerade dokument Antal returnerade dokument Figur 17a (vänster) visar att Fasttext och Word2vec stadigt ger betydligt högre precision än baseline. Kurvan för Glove går både under och över baseline. Figur 17b (höger) visar att Fasttext och Word2vec ger knappt 25 procentenheter högre täckning än baseline, Glove ca 7 procentenheter. 32

38 1,00 0,80 0,60 0,40 0,71 0,69 0,50 0,46 0,83 0,82 0,67 0,63 FastText Word2vec GloVe Baseline 0,20 0,00 MAP Medelvärde NDCG Figur 18 visar hur Fasttext och Word2vec ger signifikant högre värde på MAP och NDCG jämfört med baseline. Shingles. Grundimplementationen av Shingles (avsnitt 3.5) utvärderas mot baseline. I de fall stoppord används kommer Shingles kunna bestå av stoppord och icke-stoppord, samt också enbart ickestoppord. När stoppord inte används indexeras inte stoppord i sökmängden och därmed kommer förekomsten av stoppord inte ha någon påverkan på vilka Shingles som bildas. 1,00 0,80 0,60 0,40 0,46 0,46 0,44 0,63 0,63 0,61 Baseline Shingles utan stoppord Shingles med stoppord 0,20 0,00 MAP Medelvärde NDCG Figur 19 visar att Shingles med stoppord underpresterar marginellt jämfört med baseline. Eftersom Shingles ger intetsägande resultat i ordinarie utvärdering genomförs ett ytterligare test där MAP vid k utvärderas för en sökning i hela SVT Forum. Syftet med detta är att undersöka om vår implementation av Shingles över huvud taget har möjlighet att påverka resultatet. Vi väljer att söka efter frasen Det okända vilket är en TV-serie om paranormala fenomen. 33

39 1,00 0,80 0,60 1 Baseline Shingles med stoppord 0,40 0,30 0,20 0,00 MAP vid 20 Figur 20. Sökning efter frasen Det okända i hela SVT Forum vilket består av ca frågor. Som staplarna visar är Shingles en kraftfull metod vid denna sökning. Ordinbäddning i kombination med Shingles. Som beskrivet i avsnitt 3.7 kan ordinbäddning kombineras med Shingles för att ge meningsfulla fraser. Stoppord används aldrig för att hämta närliggande termer och en närliggande term kan heller inte vara ett stoppord. 1,00 0,80 0,60 0,40 0,71 1,00 FastText 0,83 0,71 shingles 0,70 0,81 utan stoppord 0,68 0,63 0,61 FastText 0,46 0,44 shingles med stoppord 0,50 Word2vec shingles utan stoppord 0,00 Word2vec shingles med stoppord Baseline Shingles utan stoppord Shingles med stoppord 0,70 0,68 0,68 0,46 0,46 0,44 0,83 0,83 0,81 0,81 0,63 0,63 0,61 0,20 0,00 MAP Medelvärde NDCG Figur 21. Shingles utan stoppord presterar bäst men är inte mer än marginellt bättre än andra metoder. 34

40 Word2phrase. Word2phrase utvärderas som ovan med och utan stoppord. 1,00 0,80 0,60 1,00 FastText 0,71 0,70 0,69 Word2Phrase 0,82 0,81 utan stoppord 0,63 0,46 0,50 FastText Word2Phrase med stoppord Word2vec Word2Phrase utan stoppord 0,00 Word2vec Word2Phrase med stoppord Baseline 0,71 0,70 0,70 0,69 0,46 0,82 0,82 0,81 0,81 0,63 0,40 0,20 0,00 MAP Medelvärde NDCG Figur 22. Word2phrase visar inte några större skillnader mot ordinbäddning med Shingles. Som figuren visar medför varken Shingles eller Word2phrase några signifikanta skillnader mot grundimplementationen för ordinbäddning. WMD. WMD för dokumentavstånd (avsnitt 2.8) utvärderas för att benchmarka våra egna metoder mot en annan metod. Först utvärderas WMD mot ordinarie baseline och med ordinarie sökfrågor. Därefter utvärderas samma metod med nyckelordssökning. Detta innebär att vi kortat ner våra utvärderingsfrågor till nyckelord eller enstaka ord för att undersöka hur det påverkar resultatet vid denna specifika metod. Nyckelordsfrågorna vi tagit fram är inte lika specifika som ordinarie frågor och därför är NDCG, som tar hänsyn till olika rangordningsnivåer ointressant. Exakt utformning av nedkortade frågor finns i bilaga 3. 1,00 0,80 0,60 0,46 0,43 Baseline ordinarie WMD ordinarie 1,00 0,80 0,60 0,52 0,56 Baseline nedkortade frågor WMD nedkortade frågor 0,40 0,40 0,20 0,20 0,00 MAP 0,00 MAP Figur 23a (vänster) visar att WMD ger marginellt sämre resultat än baseline vid ordinarie utvärdering. Figur 23b (höger) visar att WMD ger marginellt bättre resultat än baseline vid utvärdering med nyckelordsfrågor (nedkortade frågor, bilaga 3). 35

41 Jämförelse av korpus med Fasttext. Här jämförs hur grundimplementationen med ordinbäddning presterar med olika korpus för inlärning. Eftersom Fasttext är den metod som gett bäst resultat utvärderas endast denna metod. Inlärda ordrepresentationer med hjälp av Gigaword Corpus, SVT Korpus och SVT Forum utvärderas. Därtill utvärderas färdigtränade ordrepresentationer, som tränats med svenska Wikipedia som korpus, tillhandahållna av Boyanovski m.fl ,00 0,80 0,60 0,40 0,71 0,65 0,62 0,66 0,83 0,78 0,72 0,79 Gigaword Corpus Wikipedia SVT Korpus 0,20 SVT Forum 0,00 MAP Figur 24. Ordrepresentationer skapade med Gigaword Corpus ger bäst resultat i grundimplementationen med ordinbäddning. Det lilla korpuset SVT Forum ger näst bäst resultat trots sitt väldigt begränsade innehåll. Wikipedia som är det största korpuset ger marginellt sämre resultat än SVT Forum men har större avstånd till Gigiaword Corpus. SVT Korpus vilket är större än SVT Forum men betydligt mindre än Wikipedia och Gigiaword ger sämre resultat. 4.4 Porters generiska strategier Här följer en analys av Kundo utifrån ett industriellt perspektiv med hjälp av modellen Porters generiska strategier. Analysen vilar till viss del på intervjun som utförts med Kundos VD (bilaga 1). När Kundo grundades fanns det ingen befintlig produkt i Sverige som motsvarade Kundo Forum. Eftersom forumet dessutom är den första produkten som lanserades av Kundo så är det tydligt att företaget från start har dragit nytta av en differentieringsstrategi. Man har riktat in sig på att erbjuda en unik produkt till ett brett segment av företag inom olika branscher. Det faktum att forumet utgör en betydande del av omsättningen indikerar att strategin har varit framgångsrik. Differentieringen har förstärkts ytterligare genom bland annat svensk service, support och på-platsenutbildning till produkterna. Kundo är, bland annat tack vare detta, väletablerat inom framförallt Sverige men affärsmodellen fungerar bra i hela Norden och delar av Europa. I nuläget är det uppenbarligen inte attraktivt att satsa på en global marknad eftersom affärsmodellen förutsätter intim kontakt och någorlunda geografisk närhet till kunderna, vilket är en av Kundos framgångsfaktorer. Därigenom förefaller det som om den geografiska avgränsningen utgör ett segment av marknaden där Kundo avser tjäna en specifik målgrupp bättre än sina konkurrenter. Detta är således en form av differentierad fokusering. Man erbjuder mer eller mindre unika produkter till ett brett spektrum av kunder som är verksamma inom ett preciserat geografiskt segment av marknaden. 4.5 SWOT-analys NDCG Här följer en tvärvetenskaplig SWOT-analys som sätter sökmotorn vi utvecklat i ett större perspektiv. Föremålet för SWOT-analysen är sökmotorn och potentialen hos olika metoder kopplade därtill

42 Analysen kopplas även till företaget i stort. Underlag till analysen utgörs av de erfarenheter och avvägningar vi själva samlat på oss och gjort under arbetet med sökmotorn samt intervjun som utförts med Kundos VD (bilaga 1). Styrkor Goda förutsättningar för pilotprojekt Kundo har för att vara ett relativt litet företag många kunder. Utöver Kundo Forum använder företagskunder också interna ärendehanteringssystem tillhandahållna av Kundo. Dessutom har Kundo själva ett eget forum och ett eget ärendehanteringssystem. Detta innebär att det finns goda förutsättningar att göra testimplementationer och pilotprojekt för att utvärdera hur väl olika sökfunktioner fungerar i olika kontexter. Denna typ av förutsättningar möjliggör iterativt arbete med hjälp av prototyper och kontinuerligt lärande. Givet en fullskalig implementation hos en kund är det möjligt att använda benchmarking mot andra kunder i form av statistik från deras respektive forum för att Kundo tillsammans med sina kunder ska kunna lära sig vad som kännetecknar best practice. Ökad fokus på maskininlärning och artificiell intelligens I dagsläget finns det inte betydande inslag av maskininlärning och avancerad språkteknologi i Kundos produktsortiment. En ny sökmotor baserad på dessa fält ändrar dock på detta. Framgångar med nya sökfunktioner kan utgöra ett incitament att fortsätta arbeta med innovation längs med spåret för maskininlärning och artificiell intelligens. Ekonomiprofessorn Giovanni Dosi lyfter fram vikten av att bryta teknologiskt inlåsning och vikten av teknologiskt breddning för att vara konkurrenskraftig i en dynamisk miljö [17]. Eftersom Kundo är ett relativt litet företag med tätt samarbete mellan olika avdelningar så skulle utvecklarnas insikter om den nya tekniken snabbt kunna få genomslag i hela verksamheten. Förstärkt differentiering I analysen för Porters generiska strategier framgår det att Kundo ägnar sig åt differentierad fokusering mot ett geografiskt segment av marknaden. En unik helhetslösning erbjuds på den Nordiska marknaden samt delar av den Europeiska marknaden. En mer sofistikerad sökmotor i Kundo Forum skulle medföra att produkten blir ännu mer differentierad, vilket är i linje med den befintliga strategin om fokuserad differentiering. Svagheter Ingen hantering av polysemi En användare som söker med en specifik term är inte nödvändigtvis intresserad av dokument som innehåller semantiskt eller syntaktiskt liknande termer. Vår sökmotor har utformats i syfte att öka antalet sökträffar utan att ge allt för negativ påverkan på sökmotorns precision. Denna strävan begränsas dock av att de metoder för ordrepresentationer som vi använder inte innefattar någon hantering av polysemi. Effektiv åtskillnad mellan polysema termer skulle hypotetiskt kunna förbättra sökmotorn ytterligare. Tillgång på korpus på andra språk än svenska För att träna nya ordrepresentationer krävs stora korpus. Tillgången på svenska korpusar är god bland annat tack vare Språkbanken som förser allmänheten med hundratals gratis korpus. Detta är dock inte 37

43 fallet med många andra språk, vilket vi själva fått erfara under vårt arbete. Många korpus på andra språk kostar pengar samtidigt som gratisversioner ofta är bristfälliga avseende textmängd och formatering. Kontinuerlig utökning av träningsdata Om den data som används inte är aktuell riskerar sökmotorn att missa relevanta kontextuella relationer mellan ord. Detta innebär att träningsdatan måste utökas kontinuerligt om Kundo vill garantera att Kundo Forum alltid ger så bra sökträffar som möjligt. Om träningsdatan sträcker sig från 2010 och bakåt skulle sökmotorn exempelvis inte kunna tolka Estelle och prinsessa som relaterade termer eftersom prinsessan Estelle föddes Vikten av detta kan antas variera beroende vilket företag som avses. Sökmotorer för företag i branscher med snabb förändringstakt gynnas sannolikt mer av kontinuerligt uppdatering av träningsdata. Möjligheter Mindre antal frågor till kundsupport Syftet med vår sökmotor är att fler inlägg med högt informationsvärde ska kunna hämtas med samma sökning. Detta innebär att kundsupport kan fokusera på att hantera mer komplexa frågor utan att distraheras av upprepade standardfrågor. Detta underlättar arbetet för medarbetarna och möjliggör resursbesparingar. Genom att inte behöva anställa lika många nya kundsupportmedarbetare minskar kostnader samtidigt som man kan koncentrera sig på kompetensutveckling av befintlig personal. Det skulle innebära att slutanvändare blir mer nöjda om de snabbt kan hitta svar på enklare frågor i forumet samt få bättre hjälp med komplexa ärenden. Attraktivare värdeerbjudande Pitchen för Kundo Forum är att produkten minskar antalet samtal och mejl som måste besvaras av kundsupport (bilaga 1). En bättre sökmotor skulle potentiellt kunna ge en starkare pitch om det kan påvisas att supportarbetet effektiviseras ytterligare. Detta skulle kunna åstadkommas genom kartläggning av slutanvändarnas beteendemönster (exempelvis genom att mäta antalet användarklick på sökträffar) och dels genom att statistik förs över antalet supportärenden (d.v.s. ärenden som kräver mänsklig kontakt). Därigenom kan Kundo förstärka sin pitch med konkreta siffror, vilket är nödvändigt om kunderna inte är tekniskt bevandrade. Kundos värdeerbjudande blir därmed mer attraktivt, vilket innebär att nya kunder kan värvas samtidigt som befintliga kunder blir mer nöjda. Integrering i ärendehanteringssystemet Utöver gränssnittet mot slutanvändarna av Kundo Forum så skulle det vara möjligt att utnyttja nya sökfunktioner i själva ärendehanteringssystemet som tillhandahålls av Kundo. Därigenom skulle även kundernas egna redaktörer kunna dra nytta av olika förbättringar. Företag kan spara tid och resurser om medarbetarna utnyttjar en mer sofistikerad sökfunktion för att internt leta efter, och vidarebefordra, befintliga svar på frågor som inkommit via exempelvis mejl. Vidare finns det förutsättningar för distributionella representationer av ord att vara användbart i andra avseenden än just sök. Hot Övergenerering Informationsbehov uttryckta i ord kan beroende på kontext och ordval motsvara flera olika intentioner från användarens sida. Om användaren vet exakt vad denne är ute efter och formulerar en preciserad 38

44 sökfråga i forumet så finns det en risk för att utökning av antalet söktermer försämrar sökupplevelsen. En implementation som inte tar tillräckligt stor hänsyn till skilda behov och kontexter riskerar att ge försämrade resultat jämfört med en primitiv sökmotor. Många irrelevanta sökträffar riskerar att skada förtroendet för Kundo Forum som produkt. Ökade kostnader De metoder vi behandlat kräver ingen expertkunskap för att kunna användas. När maskininlärningsbaserade verktyg byggs in i system och algoritmer blir dock djupare kunskap en viktigare faktor för att kunna systematisera och felsöka implementationer. Nya kompetenser och resurser kan vara kostsamt att förvärva. Dålig skalbarhet Metoderna för sökning i den här rapporten är i huvudsak testade på mindre delmängder av kundforum. Det är således inte kartlagt vilken skalbarhet metoderna har och i vilken mån de är praktiska att använda i en större kontext. Vår metod för sökning med ordinbäddning bygger på att själva sökfrågan expanderas detta gör att närliggande termer måste hämtas vid sökning vilket i viss mån är ett hinder för vidare tidsoptimering jämfört med en metod som bygger på expandering av index. Komplexitet och mindre förutsägbarhet En primitiv sökmotor är funktionell i den mån att det är förutsägbart hur den kommer att fungera i olika kontexter och på olika språk. Det är svårare att förutsäga hur en sökmotor baserat på ordinbäddning presterar i olika kontexter och kräver i viss mån kontinuerlig översyn. En bristfällig implementation i ett forum där Kundo har mindre översyn riskerar att göra mer skada än nytta. Samtidigt är tekniken så pass komplicerad att det kan vara svårt för kunder att själva utvärdera hur sökmotorn presterar. Hur pass användbara ordrepresentationer som produceras med olika träningsdata är och hur sökning bör justeras för en specifik kontext är parametrar som i viss mån måste kontrolleras och övervakas, vilket kan vara en resurskrävande process. 39

45 5. Diskussion Utvärdering och resultat. Vi börjar med att diskutera några egenskaper hos grundimplementationen och går sedan vidare till resultaten för utvärderingen av olika påbyggnadsfunktioner. Vi ger ett antal rekommendationer till Kundo baserat på de erfarenheter vi samlat på oss under arbetet och till sist återkopplar vi till några punkter i SWOT-analysen. Vår metod för tokenisering ger bättre förutsättningar att begränsa mängden falska negativer men ger samtidigt fler falska positiver. Som exempel observeras hur söktermen se ger träffar på webadresser med domänen.se vilket inte är relevant. En tokeniseringsmetod som bygger på att termer delas upp vid varje förekomst av skiljetecken lämpar sig dock ganska bra för svenska överlag eftersom skiljetecken inom ord knappt förekommer på svenska. På andra språk, som exempelvis engelska, kan andra metoder för tokenisering vara mer lämpliga. Snowball stemmer ger överlag bra resultat men har i viss mån kontraintuitiva egenskaper eftersom samma typ av variationer av olika termer ibland ger samma stam och ibland inte. Vidare skapar Snowball i vissa fall samma stam av ord som inte är morfologiskt besläktade, exempelvis billig och bil. Ngram visar sig ge spretiga resultat utan någon verklig förbättring jämfört med baseline. Baserat på observationer vid exempelkörningar tror vi att Ngram av ordrander som matchar hela söktermen är den mest intressanta metoden. Denna metod lyckas dock inte ge bättre resultat i den här utvärderingen. I någon mån kan detta bero på att de flesta söktermer är ganska långa. Metoden lämpar sig bättre för kortare mindre specificerade söktermer som exempelvis mobil eller app istället för mobilapp. Sökning med mindre Ngram från söktermerna hämtar naturligt fler dokument men tenderar också att ge fler falska positiver eftersom gemensamma Ngram-termer emellan inte nödvändigtvis indikerar någon semantisk relation. Ordinbäddning med Fasttext och Word2vec ger goda resultat. Trots samma inlärningsdata och ungefär samma tid för inlärning ger Glove betydligt sämre resultat. Denna diskrepans kan antas bero på att Glove är dåligt anpassad för den mängd eller form av träningsdata som vi använder. Pennington m.fl. visar på goda resultat med minst en miljard tokens från Wikipedia som inlärningsdata; mindre mängder utvärderas inte[14]. Vidare har raderna i Gigaword Corpus randomiserad ordning 23. Vi vet däremot inte om Glove tar någon hänsyn till radbrytning vid inläsning. Om inte är detta något som med största sannolikhet påverkar kvaliteten på ordinbäddningarna negativt. Ordinbäddning med Fasttext och Word2vec ger i stort sett likvärdiga resultat. Vid exempelkörningar observerar vi att Fasttext har större tendens att skapa kluster av ord med många gemensamma Ngram, samt olika syntaktiska variationer av samma ord. Detta är i linje med modellens syfte och ger förutsättningar att hantera sökning i samlingar där liknande ord med samma semantiska innebörd förekommer med olika stavning eller olika form. Fasttext kan på detta sätt fungera som komplement till en stemmer genom att hämta större mängd morfologiskt besläktade ord. Vidare har Fasttext som figur 9 (avsnitt 4.1) visar potential att ge liknande fördelar som ett Ngram-index utan samma bristande diskriminering mellan semantiskt relaterade och icke-relaterade termer. Hur inlärningsparametrarna kan anpassas för att bäst tjäna detta syfte är ett intressant föremål för vidare utvärdering

46 Shingles ger marginellt sämre resultat i ordinarie utvärdering. Vi tror att detta beror på att delmängderna som genomsöks är så pass små att den förbättring som stöd för sökning efter specifika fraser medför inte utkristalliseras. Detta illustreras i utvärderingen med exempelsökning i hela forumet. Som konstaterat ovan begränsas vår utvärdering av att de delmängder av dokument som genomsöks är väldigt små jämfört med ordinarie forum. Detta verkar återspeglas i resultaten för grundimplementationen med ordinbäddning respektive ordinbäddning med Shingles samt Word2phrase. Dessa funktioner i sökmotorn utnyttjar metoder som skiljer sig åt på flera väsentliga sätt men resultaten skiljer sig knappt åt över huvud taget. Vi tror att detta beror på att potentialen till övergenerering underskattas kraftigt. I en mindre delmängd av dokument erhåller metoder som lyckas fånga upp fler relaterade dokument högre resultat. I en större sökmängd skulle rangordning av dokument vara en mer känslig faktor i och med att risken för falska positiver naturligt blir större. Vidare begränsas utvärderingen även av andra faktorer redovisade i avsnitt 3.8. Benchmarking mot WMD för dokumentavstånd (avsnitt 2.8) visar att WMD ger resultat som ligger nära baseline. WMD verkar således inte vara en lämplig metod för informationssökning. Till skillnad från beräkning av dokumentavstånd handlar informationssökning ofta snarare om att matcha en kortare sökfråga mot ett längre dokument. Vidare verkar resultaten indikera att WMD har dåliga förutsättningar att hantera utfyllnadstermer eftersom nyckelordsökning ger bättre resultat. Detta kan bero på att WMD inte använder någon form av IDF-viktning. Jämförselsen mellan olika korpus visar att ordvektorer som vi skapat med Gigaword Corpus ger bättre resultat än Fasttexts egna färdigtränade ordvektorer. Detta indikerar att vi använt lämpliga inlärningssparametrar samt att en korpus som kontextuellt liknar sökdomänen kan ge bättre resultat. Wikipedia är större än den del av Gigaword Corpus vi använt men fångar upp större mängd olika kontexter och tenderar att innehålla ett mer formellt språk. Vidare visar jämförelsen med SVT Forum och SVT Korpus som inlärningsdata att ett väldigt litet Korpus (SVT Forum) kan ge goda resultat eftersom det är extremt domänspecifikt. Viktigt att nämna är dock att forumet som inlärningsdata inte medför några ordinbäddningar för termer som inte förekommer i forumet, vilket utgör en begräsning. Resultaten för SVT Korpus visar att denna typ av korpus är för liten och samtidigt inte tillräckligt domänspecifik för att ge bra resultat. Rekommendationer. Kundos nuvarande sökmotor tillhandahålls av ElasticSearch 24 vilket är en sökmotor baserad på Lucene 25. Utifrån de erfarenheter vi samlat på oss under det här arbetet ser vi flera förbättringar som kan göras inom ramen ElasticSearch. I den mån det inte redan finns tror vi att sökmotorn skulle gynnas av: Att stoppord inte plockas bort helt vid tokenisering. Att stoppord helt plockas bort ger en kontraintuitiv användarupplevelse eftersom sökmotorn tycks ignorera delar av sökfrågan. Användning av Shingles alternativt positionsindex (tillsammans med stoppord) för bättre hantering av sökning efter specifika fraser. Någon form av stavningskontroll, exempelvis med hjälp Levenshteinavstånd[3] och Ngramindex[3]

47 Att forumet indexeras så att varje dokument utgörs av ett enskilt inlägg, alternativt någon annan mindre enhet, istället för en hel tråd. När dokumentvektorer normeras inom ramen av formeln för cosinuslikhet så riskerar inlägg med högt informationsvärde att prioriteras ned kraftigt om de förekommer i en längre tråd med annat innehåll. Eventuellt Ngram-indexering av ordrander som kan matchas mot hela söktermen. Detta utnyttjas redan, dock enbart för search-as-you-type 26, men skulle kunna utökas till att även omfatta sökningar där användaren inte får svar på den exakta termen. Vi återkopplar till några problem som lyfts i SWOT-analysen. Vår utvärdering indikerar att vilken typ av inlärningsdata som används är viktigt för hur användbara ordinbäddningar som skapas för en viss domän. Pennington m.fl. visar att inlärningsdata hämtad med common-crawl har potential att ge kvalitativa ordinbäddningar[14]. Data från common-crawl 27 är tillgängligt på över 40 olika språk och kan potentiellt anpassas för att matcha en särskild kontext. Utöver domänspecifik data tillhandahåller Wikipedia fritt tillgängliga nedladdningar av hela deras innehåll 28. Vidare tillhandahåller Bojanowski, Grave m.fl. färdigtränade ordinbäddningar för Fasttext på 294 språk 29. En intressant metod för att bättre hantera polysemi i kontext av ordinbäddningar är ordtaggning, bland annat föreslaget M. Honnibal på sajten Explosion AI. 30 Som alternativ till expandering vid sökning har vi experimenterat kort med metoder för att expandera index med hjälp av ordinbäddningar. För att inte index ska bli överdrivet stort är en intressant metod att försöka klustra ordinbäddningar inom index på ett meningsfullt sätt, exempelvis med klustringsmetoden K-means 31. Ur ett marknads- och produktutvecklingsperspektiv så tror vi att Kundo gynnas av att implementera och utvärdera någon form av sökmotor som nyttjar den teknologi vi utvärderat. Snarare än att ersätta den gamla sökmotorn så tror vi kortsiktigt att en implementation som bygger på ordinbäddning lämpar sig bäst som komplement eller valbart alternativ till en enklare typ av sökmotor

48 6. Slutsats Vi har undersökt vilka metoder för informationssökning som är lämpade för domänspecifik sökning inom Kundo Forum. Baserat på detta har vi implementerat en primitiv sökmotor i Python som ger möjlighet till effektiv sökning baserat på matchning med explicita termer. Med detta som grund har vi utredd hur vi kan skapa användbara distributionella representationer av ord och hur dessa kan integreras i sökmotorn på ett praktiskt och användbart sätt. Sökmotorn har utvärderats mot Kundo Forum med resultat som visar att sökning med distributionella representationer av ord ger bättre täckning utan minskad precision jämfört med en primitiv sökmotor och olika sökmetoder som utnyttjar indexering av Ngram. Slutsatsen vi drar av resultaten är att informationssökningsmetoder som utnyttjar distributionella representationer av ord har potential att förbättra sökfunktionen på Kundo Forum markant. Men det krävs vidare forskning och utvärdering för att avgöra med exakt vilken metod detta bör implementeras och hur väl det fungerar i större skala. Vår metod är väldigt intuitiv och ger goda resultat i den kontrollerade miljö den testats i. Vi tror dock att potentialen hos tekniken sträcker sig långt utanför den här rapporten och hoppas därför att den kan tjäna som ett startskott för vidare utforskning. Produktdifferentiering genom forskning och utveckling är en förutsättning för att kunna verka inom en modern dynamisk bransch. Vi tror utredning av denna typ av teknik är extremt relevant för den bransch Kundo verkar i och att företaget kan ha stor nytta av att integrera tekniken inom sin verksamhet och produktportfölj. 43

49 7. Referenser [1] Müller, Peter O., Ohnheiser, Ingeborg, Olsen, Susan & Rainer, Franz (red.), Word-formation. Vol. 1. an international handbook of the languages of Europe [Elektronisk resurs], De Gruyter Mouton, Berlin, 2015 [2] Deept Chopra. Nisheeth Joshi. Iti Mathur., Mastering Natural Language Processing with Python [Elektronisk resurs], 2016 [3] Manning, Christopher D., m.fl., Introduction to information retrieval [Elektronisk resurs], Cambridge University Press, Cambridge, 2008 [4] Savoy, Jacques, Stemming Strategies for European Languages, University of Neuchatel, Neuchatel, 2009 [5] Bonzanini, Marco, Mastering Social Media Mining with Python [Elektronisk resurs], Packt Publishing, 2016 [6] Lavrac, Nada, Mladenic, Dunja & Plisson, Joël, A Rule based Approach to Word Lemmatization, Proceeding of the 7th International Multiconference Information Society, Ljubljana, 2008 [7] Guillet, Fabrice J. & Hamilton, Howard J., Quality Measures in Data Mining [elektronisk resurs], Springer-Verlag Berlin Heidelberg, Berlin, Heidelberg, 2007 [8] Mikolov, Tomas, m.fl., Efficient Estimation of Word Representations in Vector Space, Google Inc., Mountain View, CA, 2013 [9] Jurafsky, Dan & Martin, James H., Speech and language processing: an introduction to natural language processing, computational linguistics and speech recognition, 2. ed., Prentice Hall, Upper Saddle River, N.J., 2009 [10] Marsland, Stephen, Machine learning: an algorithmic perspective, Chapman & Hall/CRC, Boca Raton, FL, 2009 [11] Rong, Xin, Word2vec Parameter Learning Explained, University of Michigan, Michigan, 2014 [12] Mikolov, Tomas, m.fl., Distributed Representations of Words and Phrases and their Compositionality, Google Inc., Mountain View, CA, 2013 [13] Bojanowski, Piotr, Grave, Edouard, m.fl., Enriching Word Vectors with Subword Information, Facebook AI Research, 2016 [14] Manning, Christopher D., Pennington, Jeffrey & Socher, Richard, Glove: Global Vectors for Word Representation, Stanford University, Stanford, 2014 [15] Kusner, Matt J, m.fl., From Word Embeddings To Document Distances, Washington University St. Louis, 1 Brookings Dr., St. Louis, MO 63130, 2015 [16] Porter, Michael E., Competitive advantage: creating and sustaining superior performance, Free Press, New York,

50 [17] Dosi, G., Technological paradigms and technological trajectories. A suggested interpretation of the determinants and directions of technical change, Research Policy, 11(3): ,

51 Bilaga 1: Intervju med Kundos VD Nedan följer en sammanställning baserad på intervjun med Kundos VD Björn Lilja : Kundo, marknaden och konkurrenter Redan innan Kundo grundades 2010 så fanns det olika aktörer som tillhandahöll verktyg för digital kundservice, till exempel Telias prenumerationsbaserade systemlösningar. Kundo var således inte först in på marknaden för digital kundservice. Dock var man först i Sverige med att erbjuda frågeforum enligt konceptet och funktionaliteten som återspeglas i produkten Kundo Forum. Kundo Forum är företagets absolut populäraste produkt och utgör en betydande del av omsättningen, delvis på grund av att det var första produkten som lanserades av Kundo. Utöver att det historiskt sett har funnits få konkurrenter avseende Kundo Forum så är en annan anledning till Kundos framgångar att man ovanpå sina produkter erbjuder svensk service och andra tillägg. Man erbjuder exempelvis utbildning på plats hos kunder, seminarier, genomgång av skrivteknik, trendspaningar inom digital kundservice och gratis kundsupport i syfte att hjälpa företagskunderna att få ut mer av produkterna. Kundo erbjuder därmed en differentierad form av helhetslösning till sina kunder, vilket har fått framförallt många svenska företag att välja just Kundo som leverantör. Kundo tillämpar alltså inte någon nisch-strategi utan vänder sig istället till ett brett spektrum av kunder som är verksamma inom vitt skilda branscher. I dagsläget utgörs målgruppen av stora och medelstora företag där majoriteten av kunderna finns inom Sverige. Kundos ambition är att expandera i hela Norden. Produkten är användbar globalt, men mycket av helhetslösningen är som nämnt anpassad till framförallt den svenska marknaden. Om produkten lanseras globalt på flertalet andra språk så skulle differentieringsstrategin motarbetas eftersom uppskattade tillägg som svensk service, support och utbildning förmodligen skulle begränsas på en global marknad. Därmed anser man att den nuvarande affärsmodellen skulle fungera bäst i Norden och delar av Europa, men inte nödvändigtvis globalt. Konkurrensmässigt tillkommer det nya aktörer efterhand. Det finns exempelvis väldigt många amerikanska konkurrenter, likt Zendesk, som utvecklar system som liknar Kundos. Konkurrenternas verktyg är ofta billiga med stort fokus på självservice för slutanvändarna. Tanken är alltså att slutanvändarna i större utsträckning ska kunna använda produkterna för att hjälpa sig själva utan interaktion med personer från kundsupport. Kundo tror att både artificiell intelligens och kontakt med riktiga människor kommer vara relevant framöver och att mycket går i vågor. Uppfattningen är att slutanvändare vill konversera med människor, men bara som sådant som är värdefullt för verksamheten. Därmed kan inte allting ersättas av maskininlärning, men mycket kan effektiviseras. Ett exempel är en FAQ som behandlar vanligt förekommande frågor vilka ofta har enkla svar. Denna form av kundservice är inte beroende av mänsklig interaktion till skillnad från mer komplexa ärenden. Därmed kommer det inom överskådlig tid alltid finnas behov av mänsklig och kompetent kundsupport. Många svenska kunder föredrar Kundo framför de amerikanska konkurrenterna just eftersom Kundo erbjuder tillägg som svensk service, support och utbildning riktad till företagen. Något man har konstaterat är att företagskunderna upplever ett tydligt mervärde genom användarträffar där de ges möjlighet att träffa representanter från andra företag som använder samma i

52 digitala verktyg för kundservice. Kunderna får där möjlighet att lyssna på föreläsningar, representanter från Kundo men även varandra. Därigenom ger de många kunderna upphov till nätverkseffekter som i framtiden kan förstärkas ytterligare genom att möjliggöra utökat ömsesidigt utbyte mellan kunderna. Det skulle exempelvis kunna vara benchmarking gentemot varandra, d.v.s. företag inom samma bransch kan jämföra sig med varandra avseende exempelvis hur snabbt de i genomsnitt besvarar frågor. Utöver kunderna själva så kan även Kundo dra nytta av nätverkseffekterna. Detta gäller exempelvis insamling av kunskap för att bilda sig en uppfattning om vad som kan förbättras eller vilka andra behov som finns på marknaden. Till skillnad från nya aktörer så behöver inte Kundo börja från noll när det kommer till sådant tack vare sitt relativt stora nätverk. Det finns även många externa källor som spekulerar huruvida aktörer likt Facebook skulle kunna utnyttja sitt enorma nätverka av företag och privatpersoner avseende kundsupport. Så sent som i april 2017 presenterade Facebook nya Messenger-funktioner för kommunikation, eller annan form av interaktion, mellan företag och deras kunder. Det handlar bland annat om direktkommunikation med företagen, chattbottar för enklare ärenden, samt Smart Replies vilket utgör en form av FAQ som kan användas när kundsupporten är stängd. 1 Kundos syn på detta är att Facebook inte verkar ha någon direkt vilja att konkurrera med företag inom Kundos specifika bransch. Facebook verkar istället vilja tillhandahålla en plattform som företag likt Kundo kan bygga lösningar mot. Även om företag flyttar kundservice till sin Facebook-sida eller liknande så behövs det fortfarande ett bakomliggande ärendehanteringssystem för att hantera flödet, vilket Kundo kan tillhandahålla. Kundo tillhandahåller alltså inte själva kanalerna, utan istället det underliggande ärendehanteringssystemet. Facebook är således i dagsläget en kanal som Kundo kan bygga system till, såvida inte Facebook bestämmer sig för att utveckla ärendehanteringssystem på egen hand. Detta ligger dock utanför Facebooks kärnverksamhet. Ett mer påtagligt hot vore dock om Facebook utvecklade en sofistikerad sökfunktion till företagens Facebook-vägg. I dagsläget finns det inte någon sökfunktion, vilket innebär att fastän företag publicerar svar på många frågor på sin Facebook-vägg så är det svårt för användare att dra nytta av detta i framtiden då frågorna och svaren snabbt försvinner bland en uppsjö av andra inlägg. En sökfunktion för Facebook-väggar skulle således utgöra ett direkt hot mot Kundo Forum eftersom det som mest tydligt skiljer forumet från en Facebook-vägg är just möjligheten att enkelt söka upp gamla inlägg i forumet. 1 ii

53 Sökmotorn i Kundo Forum Kundos initiativ att försöka vidareutveckla sökmotorn i Kundo Forum grundar sig främst på den egna strävan efter inkrementell förbättring. Den befintliga sökfunktionen är bra, men givetvis är man medveten om vissa svagheter. Fastän det inte råder några direkta problem så tror Kundo att sökfunktionen kan bli ännu bättre varav det finns ett internt intresse att undersöka detta. Maskininlärning och språkteknologiska verktyg bedöms ha stor potential och kan bidra till verkshöjd i form av en relevant och icke-trivial förbättring. Pitchen för Kundo Forum är att kunderna kan minska antalet samtal och mejl till kundsupport och därmed spara resurser. En förbättrad sökmotor skulle därigenom göra pitchen ännu mer attraktiv förutsatt att man kan presentera statistik som pekar på förbättring. En central del av Kundos Pitch är nämligen att trycka på konkreta siffror som visar på förbättring i mätbara termer. En bättre sökfunktion kan potentiellt ge bättre siffror på att mängden samtal och mejl minskar och kan därmed vara ett sätt att få en bättre pitch. Ökning av användarklick på trådar kan exempelvis vara ett sätt att bevisa att en ny sökmotor haft bra effekt. Sökmotorn fungera alltså som en USP. Dels eftersom den utgör en relevant del av Kundos pitch och dels eftersom användningsområdet kan utvidgas till att exempelvis omfatta själva ärendehanteringssystemet som kundtjänstmedarbetare på olika företag använder (d.v.s. utöver slutanvändarnas användning). Även ärendehanteringssystemet skulle alltså kunna förbättras med en mer sofistikerad sökmotor. Om arbetet med sökmotorn inte kan förbättra värdeerbjudandet till kunder nämnvärt så kommer Kundo förmodligen inte investera i projektet eftersom konkret output är viktigare än strategiskt lärande för ett relativt litet företag som Kundo. Huvudprioritet är erbjuda verktyg som i praktiken effektiviserar kundservicearbetet så att företagskunderna upplevs som mer tillgängliga för slutanvändarna av forumet. Fastän kandidatexamensarbetet eventuellt inte påvisar någon förbättring av sökfunktionen så värdesätter ändå Kundo alla insikter dels eftersom det kan spara utvecklingskostnader och dels eftersom man på lång sikt bedömer att denna teknik är nödvändig att behärska. Framförallt med tanke på att andra aktörer skulle kunna bygga system helt baserade på maskininlärning och därigenom göra Kundo mer eller mindre irrelevanta. iii

54 Bilaga 2: Beskrivning av web-crawler iv

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning... LINKÖPINGS UNIVERSITET Innehåll 1. Inledning... 2 2. Terminologi... 3 3. Allmänt om Word2Vec... 3 4. Continous Skip-gram model... 4 Word2Vec Högkvalitativa vektorrepresentationer av ord tränat på stora

Läs mer

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

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

Läs mer

Tentamen 2016-01-13. Marco Kuhlmann

Tentamen 2016-01-13. Marco Kuhlmann TDDD02 Språkteknologi för informationssökning (2015) Tentamen 2016-01-13 Marco Kuhlmann Denna tentamen består av 10 frågor. Frågorna 8 10 ligger på en högre kunskapsnivå än de övriga och kräver utförliga

Läs mer

Introduktion till språkteknologi

Introduktion till språkteknologi Introduktion till språkteknologi OH-serie 9: informationshantering http://stp.lingfil.uu.se/~matsd/uv/uv08/ist/ Informationshantering Hjälpa en användare att söka efter dokument eller information i dokumentsamlingar.

Läs mer

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 3 Marco Kuhlmann Institutionen för datavetenskap Modell med vektornotation parametervektor särdragsvektor Perceptron kombinerar linjär regression med

Läs mer

TDDD02 Språkteknologi för informationssökning / Textsammanfattning. Marco Kuhlmann Institutionen för datavetenskap

TDDD02 Språkteknologi för informationssökning / Textsammanfattning. Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning / 2015 Textsammanfattning Marco Kuhlmann Institutionen för datavetenskap Textsammanfattning Textsammanfattning går ut på att extrahera den mest relevanta informationen

Läs mer

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

TDDD02 Språkteknologi för informationssökning (2016) Introduktion. Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) Introduktion Marco Kuhlmann Institutionen för datavetenskap Vad är språkteknologi? Vad är språkteknologi? Språkteknologi är all teknologi som skapas

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Linköpings Universitet Artificiell Intelligens II 729G11 HT QA- system. Anders Janson

Linköpings Universitet Artificiell Intelligens II 729G11 HT QA- system. Anders Janson Linköpings Universitet Artificiell Intelligens II 729G11 HT 2011 QA- system Anders Janson 861128-6918 andja338@student.liu.se Sammanfattning Inom denna uppsats tar jag upp Question Answering system, som

Läs mer

TDDD02 Föreläsning 7 HT-2013

TDDD02 Föreläsning 7 HT-2013 TDDD02 Föreläsning 7 HT-2013 Textsammanfattning Lars Ahrenberg Litt: Våge et al.170-185; Das & Martins, A Survey on Automatic Text Summarization sid 1-4, 11-14, 23-25. Översikt Textstruktur Problemet textsammanfattning

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 2 Marco Kuhlmann Institutionen för datavetenskap Förra gången: Gradientsökning tangentens lutning i punkt θ steglängdsfaktor Översikt Introduktion

Läs mer

Klustring av svenska tidningsartiklar

Klustring av svenska tidningsartiklar Klustring av svenska tidningsartiklar Magnus Rosell rosell@nada.kth.se http://www.nada.kth.se/ rosell/ Klustring Kategorisering eller klassificering att föra texter till på förhand bestämda kategorier

Läs mer

Omvärldsbevakning. Sammanfattning av Business Intelligence-kursen. Nyhetsarkiv och källork. Hämta webbnyheter. Modeller över texter

Omvärldsbevakning. Sammanfattning av Business Intelligence-kursen. Nyhetsarkiv och källork. Hämta webbnyheter. Modeller över texter Sammanfattning av Business Intelligence-kursen Hercules Dalianis DSV-SU-KTH e-post:hercules@kth.se Omvärldsbevakning Påverkan från omvärlden Påverka omvärlden Tidigare långsam spridning papperstidningar,

Läs mer

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap ARTIFICIELLA NEURALA NÄT MARCO KUHLMANN Institutionen för datavetenskap Example Alt Bar Fri Hun Pat Price Rain Res Type Est WillWait 1 Yes No No Yes Some $$$ No Yes French 0 10 Yes 2 Yes No No Yes Full

Läs mer

http://www.youtube.com/watch?v=jpenfwiqdx8

http://www.youtube.com/watch?v=jpenfwiqdx8 http://www.youtube.com/watch?v=jpenfwiqdx8 1 Sökmotoroptimering SEO En introduktion för webbredaktörer 2 Agenda Var är vi på väg? Hur fungerar sökmotorer? Hur går det till när jag söker? Hur hänger det

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer

Läs mer

Dagens lektion. Mina forskningsintressen. Min bakgrund. Information Retrieval. Varför IR & disambiguering

Dagens lektion. Mina forskningsintressen. Min bakgrund. Information Retrieval. Varför IR & disambiguering Information retrieval & ordbetydelsedisambiguering Leif Grönqvist (leifg@ling.gu.se) Växjö universitet (Matematiska och systemtekniska institutionen) GSLT (Sveriges nationella forskarskola i språkteknologi)

Läs mer

Statistisk Maskinöversättning eller:

Statistisk Maskinöversättning eller: 729G43 Statistisk Maskinöversättning eller: Hur jag slutade ängslas (över fördjupningsuppgiften) och lärde mig hata stoppord. Jonas Hilmersson 2019-04-15 Innehåll 1. Introduktion... 1 2. Datamängden...

Läs mer

Föreläsning 7. Felrättande koder

Föreläsning 7. Felrättande koder Föreläsning 7 Felrättande koder Antag att vi vill skicka ett meddelande som består av bokstäver a,b,c,d. Vi kan koda a,b,c,d. Antag att det finns en viss sannolikhet att en bit i ett meddelande som skickas

Läs mer

Att söka information (med betoning på Internet)

Att söka information (med betoning på Internet) Att söka information (med betoning på Internet) - en sökguide för distansstuderande 1. Var finns informationen? 2. Hur söker man? Sökstrategier 3. Olika informationskällor, hjälpmedel vid informationssökning

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

729G09 Språkvetenskaplig databehandling (2018) Kursintroduktion. Marco Kuhlmann Institutionen för datavetenskap

729G09 Språkvetenskaplig databehandling (2018) Kursintroduktion. Marco Kuhlmann Institutionen för datavetenskap 729G09 Språkvetenskaplig databehandling (2018) Kursintroduktion Marco Kuhlmann Institutionen för datavetenskap Denna föreläsning Kursens innehåll och organisation Korpuslingvistik och språkteknologi Textsegmentering

Läs mer

Föreläsning 5: Grafer Del 1

Föreläsning 5: Grafer Del 1 2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första

Läs mer

Tekniker för storskalig parsning

Tekniker för storskalig parsning Tekniker för storskalig parsning Introduktion Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning 1(18) Kursöversikt Kursnamn:

Läs mer

Linköpings universitet

Linköpings universitet Översikt Kognitionsvetenskaplig introduktionskurs Föreläsning 4 Informationsbearbetningsmodeller Vad är kognitionsvetenskap? Kort bakgrund/historik Representation och bearbetning av information Vetenskapliga

Läs mer

Klassificering av homonymer Inlämningsuppgift språkteknologi

Klassificering av homonymer Inlämningsuppgift språkteknologi Klassificering av homonymer Inlämningsuppgift språkteknologi 2013-01-10 Kurskod: DD2418 Författare Gustav Ribom 910326-0593 Erik Aalto 861108-0212 Kontaktperson Johan Boye Abstract Ordet fil har flera

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

Avtalsform Ramavtal & enstaka köp Namn Söktjänst

Avtalsform Ramavtal & enstaka köp Namn Söktjänst Sveriges Radio AB Utvärdering Ekonomiskt mest fördelaktigt Helt anbud Avtalsform Ramavtal & enstaka köp Namn Söktjänst Diarie SR 1332 Ansvarig upphandlare Catherine Finér Detta dokument är en kopia på

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd Innehåll Föreläsning 12 Sökträd Sökning Sökning och Sökträd 383 384 Binärt sökträd Används för sökning i linjära samlingar av dataobjekt, specifikt för att konstruera tabeller och lexikon. Organisation:

Läs mer

Google Guide: Tips för sökoptimering

Google Guide: Tips för sökoptimering Google Guide: Tips för sökoptimering Google Guide Digital publikation www.intankt.se, Intankt Författare: Adam Ahlgren Typsnitt: Calibri, 11 punkter Formgivning: Intankt Omslagsfoto: Google Stockholm,

Läs mer

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

Lösningsförslag till tentamen i Språkteknologi 2D1418, Lösningsförslag till tentamen i Språkteknologi 2D1418, 2004-10-18 1. Stavningskontroll utan ordlista (10 poäng) a) Med 29 bokstäver i alfabetet och en specialbokstav för ordbörjan/ordslut så finns det

Läs mer

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 2 Marco Kuhlmann Förra gången: Linjär regression Gradientsökning Vandra ner i felets dal. Steg 0: Börja med ett godtyckligt värde för θ. Steg 1: Räkna

Läs mer

Grundläggande textanalys. Joakim Nivre

Grundläggande textanalys. Joakim Nivre Grundläggande textanalys Joakim Nivre Om kursen Ni har hittills läst Lingvistik Datorteknik Matematik Språkteknologiska tillämpningar Nu ska vi börja med språkteknologi på allvar Hur gör man text hanterbar

Läs mer

Utveckling av ett grafiskt användargränssnitt

Utveckling av ett grafiskt användargränssnitt Datavetenskap Opponenter: Daniel Melani och Therese Axelsson Respondenter: Christoffer Karlsson och Jonas Östlund Utveckling av ett grafiskt användargränssnitt Oppositionsrapport, C-nivå 2010-06-08 1 Sammanfattat

Läs mer

1 Minkostnadsflödesproblem i nätverk

1 Minkostnadsflödesproblem i nätverk Krister Svanberg, april 2012 1 Minkostnadsflödesproblem i nätverk Ett nätverk består av en given mängd noder numrerade från 1 till m (där m är antalet noder) samt en given mängd riktade bågar mellan vissa

Läs mer

b) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.)

b) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.) LINKÖPINGS TEKNISKA HÖGSKOLA Tekniska fakultetskansliet FÖRSLAG TILL PROGRAMNÄMND INFÖR ÅR NÄMND/NÄMNDER: Förslagsställare (Namn, funktion, Inst/Enhet) FÖRSLAGET GÄLLER: a) EXISTERANDE KURS (Ange kurskod

Läs mer

Språkteknologi. Språkteknologi

Språkteknologi. Språkteknologi Språkteknologi Denna kurs handlar om naturliga språk (svenska, engelska, japanska, arabiska ), och hur vi kan få datorer att utföra användbara och intressanta uppgifter med naturliga språk. Språkteknologi

Läs mer

Läget, läget, läget. Sök, sök, sök. mars 2018/Ted Durdel

Läget, läget, läget. Sök, sök, sök. mars 2018/Ted Durdel Läget, läget, läget Sök, sök, sök mars 2018/Ted Durdel Episerver Find is a powerful, scalable query platform that can index and query large amounts of structured or unstructured data of any type, create

Läs mer

Googles sidrankning - linjär algebra värt en förmögenhet

Googles sidrankning - linjär algebra värt en förmögenhet Googles sidrankning - linjär algebra värt en förmögenhet Outline 1 Sökmotorer 2 Grafteori Linjär algebra 3 Målet Utifrån användarens sökord lista de mest relevanta webbsidorna. Dessutom i en ordning som

Läs mer

Innehåll. Informationssökning språkteknologiska hjälpmedel

Innehåll. Informationssökning språkteknologiska hjälpmedel Informationssökning språkteknologiska hjälpmedel Hercules Dalianis NADA-KTH Email: hercules@kth.se Tel: 08-790 91 05 http://www.nada.kth.se/~hercules Hercules Dalianis sid 1 Innehåll Sökmotor Stemming,

Läs mer

KOKBOKEN 1. Håkan Strömberg KTH STH

KOKBOKEN 1. Håkan Strömberg KTH STH KOKBOKEN 1 Håkan Strömberg KTH STH Hösten 2006 Håkan Strömberg 2 KTH Syd Innehåll Olikheter.................................... 6................................. 6 Uppgift 2.................................

Läs mer

HKGBB0, Artificiell intelligens

HKGBB0, Artificiell intelligens HKGBB0, Artificiell intelligens Kortfattade lösningsförslag till tentan 3 november 2005 Arne Jönsson 1. Vad karaktäriserar dagens AI-forskning jämfört med den AI-forskning som bedrevs perioden 1960-1985.

Läs mer

Taltaggning. Rapport av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003

Taltaggning. Rapport av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003 Taltaggning av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003 Sammanfattning Denna rapport är skriven i kursen Språkteknologi och behandlar taggning av årtal i en text. Metoden som används

Läs mer

Automatisk textsammanfattning

Automatisk textsammanfattning Språkteknologi 2001-10-14 Nada Kungliga Tekniska högskolan Automatisk textsammanfattning Per Karefelt (d98-pka) Marcus Hjelm (d98-mhj) Sammanfattning (manuell) Denna rapport belyser en del av de problem

Läs mer

Dependensregler - Lathund

Dependensregler - Lathund Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas

Läs mer

Information Retrieval. Information Retrieval (IR)

Information Retrieval. Information Retrieval (IR) Information Retrieval Johan Boye, KTH Information Retrieval (IR) Att hitta relevantinformation i en stor mängd texter (och/eller bilder, audio, video, programkod, biomedicinsk data, ) Användaren ger en

Läs mer

PubMed (Medline) Fritextsökning

PubMed (Medline) Fritextsökning PubMed (Medline) PubMed är den största medicinska databasen och innehåller idag omkring 19 miljoner referenser till tidskriftsartiklar i ca 5 000 internationella tidskrifter. I vissa fall får man fram

Läs mer

Mälardalens högskola

Mälardalens högskola Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del

Läs mer

Väl godkänt (VG) Godkänt (G) Icke Godkänt (IG) Betyg

Väl godkänt (VG) Godkänt (G) Icke Godkänt (IG) Betyg Betygskriterier Examensuppsats 30 hp. Betygskriterier Tregradig betygsskala används med betygen icke godkänd (IG), godkänd (G) och väl godkänd (VG). VG - Lärandemål har uppfyllts i mycket hög utsträckning

Läs mer

Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord

Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord Joakim Nivre / 30 Varför bry sig om stavning? Stavfel kan skapa missförstånd Stavfel kan dölja innehåll Standardiserad stavning underlättar många uppgifter Slå upp ord i ordbok Identifiera svårlästa ord

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

Sökning, källkritik och referenshantering EITA LINA AHLGREN & OLA HEDBÄCK

Sökning, källkritik och referenshantering EITA LINA AHLGREN & OLA HEDBÄCK Sökning, källkritik och referenshantering EITA55 2018-09-07 LINA AHLGREN & OLA HEDBÄCK Agenda Sökprocessen Söktjänster Referenshantering Sökprocessen Problemställning Källkritik Sökord Sökresultat Söktjänster

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript

Läs mer

Vektorer, matriser, nätverk - några elementa

Vektorer, matriser, nätverk - några elementa Vektorer, matriser, nätverk - några elementa Innehåll: Vektorer Radvektorer och kolumnvektorer Operationer med vektorer Input- och outputvektorer i neurala nätverk Utvikning om kompetitiva nät Matriser

Läs mer

Kravspecifikation Fredrik Berntsson Version 1.3

Kravspecifikation Fredrik Berntsson Version 1.3 Kravspecifikation Fredrik Berntsson Version 1.3 Status Granskad FB 2017-01-27 Godkänd FB 2017-01-27 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2014-01-15 Första versionen

Läs mer

Språkteknologi och Open Source

Språkteknologi och Open Source Språkteknologi och Open Source Erik Edin F01 erikedin@kth.se 15 oktober 2004 1 1 Open Source Open Source är en rörelse som syftar till att skriva datorprogram som släpps fria utan kommersiella intressen.

Läs mer

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs... OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Sammanfattning av informationssökning VT19

Sammanfattning av informationssökning VT19 729G19 Tillämpad kognitionsvetenskap Sammanfattning av informationssökning VT19 För godkänt projekt på kursen 729G19 skall man haft ett handledningstillfälle i informationssökning och sammanfattning av

Läs mer

Grammatik för språkteknologer

Grammatik för språkteknologer Grammatik för språkteknologer Introduktion http://stp.lingfil.uu.se/~matsd/uv/uv11/gfst/ Mats Dahllöf Institutionen för lingvistik och filologi Oktober 2011 Lärandemål Efter avslutad kurs skall studenten

Läs mer

Självkoll: Ser du att de två uttrycken är ekvivalenta?

Självkoll: Ser du att de två uttrycken är ekvivalenta? ANTECKNINGAR TILL RÄKNEÖVNING 1 & - LINJÄR ALGEBRA För att verkligen kunna förstå och tillämpa kvantmekaniken så måste vi veta något om den matematik som ligger till grund för formuleringen av vågfunktionen

Läs mer

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt Binära träd (forts) Ett binärt träd kan lagras i ett enda sammanhängande minne Roten har index 1 Vänster barn till nod i har index 2*i Höger barn till nod i har index 2*i + 1 Föräldern till nod i har index

Läs mer

Lingvistiska grundbegrepp

Lingvistiska grundbegrepp 729G09 Språkvetenskaplig databehandling (2016) Lingvistiska grundbegrepp Marco Kuhlmann Institutionen för datavetenskap Vad är korpuslingvistik? Korpuslingvistik handlar om att undersöka språkvetenskapliga

Läs mer

NYCKELORDSSÖKNING KEYWORD SEARCH. Baserat på Vector Space Model. Based on Vector Space Model

NYCKELORDSSÖKNING KEYWORD SEARCH. Baserat på Vector Space Model. Based on Vector Space Model NYCKELORDSSÖKNING Baserat på Vector Space Model KEYWORD SEARCH Based on Vector Space Model Examensarbete inom huvudområdet Datalogi/Datavetenskap/Medier Estetik och Berättande Grundnivå 30 Högskolepoäng

Läs mer

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

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering Marco Kuhlmann Institutionen för datavetenskap Ordpredicering Ordpredicering innebär att föreslå eller välja ord i en given kontext.

Läs mer

Web Crawlers. TDTS09, Datornät och internetprotokoll. Denis Golubovic Fredrik Salin Linköpings universitet Linköping 2011-02-23

Web Crawlers. TDTS09, Datornät och internetprotokoll. Denis Golubovic Fredrik Salin Linköpings universitet Linköping 2011-02-23 Web Crawlers TDTS09, Datornät och internetprotokoll Denis Golubovic Fredrik Salin Linköpings universitet Linköping 2011-02-23 Omslagsbild: Spider robot Google 3d model Källa: turbosquid.com Sammanfattning

Läs mer

729G09 Språkvetenskaplig databehandling

729G09 Språkvetenskaplig databehandling 729G09 Språkvetenskaplig databehandling Föreläsning 2, 729G09, VT15 Reguljära uttryck Lars Ahrenberg 150409 Plan för föreläsningen Användning av reguljära uttryck Formella språk Reguljära språk Reguljära

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,

Läs mer

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till

Läs mer

2D1418, Språkteknologi NADA, Kungliga Tekniska Högskolan 2004-10-17 SÖKMOTOROPTIMERING. Av Erik Lindgren 810110-8218 soft@kth.se

2D1418, Språkteknologi NADA, Kungliga Tekniska Högskolan 2004-10-17 SÖKMOTOROPTIMERING. Av Erik Lindgren 810110-8218 soft@kth.se 2D1418, Språkteknologi NADA, Kungliga Tekniska Högskolan 2004-10-17 SÖKMOTOROPTIMERING Av Erik Lindgren 810110-8218 soft@kth.se SAMMANFATTNING Föreliggande uppsats behandlar ämnet sökmotoroptimering.

Läs mer

Träd och koder. Anders Björner KTH

Träd och koder. Anders Björner KTH 27 Träd och koder Anders Björner KTH 1. Inledning. Det är i flera sammanhang viktigt att representera information digitalt (d.v.s omvandla till sviter av nollor och ettor). Beroende på vilka villkor som

Läs mer

Den globala marknaden Omvärlden och omvärldsmodeller. Makromiljön och branschen Makromiljön. Makroanalys Grundläggande 15-02-23.

Den globala marknaden Omvärlden och omvärldsmodeller. Makromiljön och branschen Makromiljön. Makroanalys Grundläggande 15-02-23. Den globala marknaden Omvärlden och omvärldsmodeller Thomas Rosenfall 1 Makromiljön och branschen Makromiljön Politiska Nya aktörer Sociokulturella Ekonomiska Leverantörer Rivalitet Kunder Juridiska (legala)

Läs mer

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01 Två-nivåmodellen, TWOL 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01 Inledning Morfologisk parsning är nödvändig i de flesta språkteknologiska tillämpningar eftersom man nästan

Läs mer

Dokumentrekommendationssystem och intranät

Dokumentrekommendationssystem och intranät Dokumentrekommendationssystem och intranät Anders Gabrielsson anders@stp.ling.uu.se Examensarbete 20p Språkteknologiprogrammet Institutionen för lingvistik Uppsala universitet Handledare: Lars Borin och

Läs mer

Detta dokument innehåller anvisningar för upprättande av en sökplan i kursen TDDD39 Perspektiv på informationsteknologi.

Detta dokument innehåller anvisningar för upprättande av en sökplan i kursen TDDD39 Perspektiv på informationsteknologi. Sökplan TDDD39 Perspektiv på informationsteknologi Detta dokument innehåller anvisningar för upprättande av en sökplan i kursen TDDD39 Perspektiv på informationsteknologi. Anvisningar Sökplanen påbörjas

Läs mer

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u = Kursen bedöms med betyg,, 5 eller underkänd, där 5 är högsta betyg. För godkänt betyg krävs minst poäng från uppgifterna -7. Var och en av dessa sju uppgifter kan ge maximalt poäng. För var och en av uppgifterna

Läs mer

Tekniker för storskalig parsning

Tekniker för storskalig parsning Tekniker för storskalig parsning Introduktion till projektet Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning 1(17)

Läs mer

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

Läs mer

729G04 - Diskret matematik. Lektion 4

729G04 - Diskret matematik. Lektion 4 729G04 - Diskret matematik. Lektion 4 1 Lösningsförslag 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c, d, f, g, h, i, j}, E = {{a, b}, {b, c}, {a, c}, {f, g}, {c, d},

Läs mer

Dags för en ny söktjänst på KTH

Dags för en ny söktjänst på KTH Dags för en ny söktjänst på KTH Agenda 1. Varför ett nytt sökprojekt? 2. Krav 3. Urvalsprocess 4. Frågebatteri 5. Lite teknik 6. Demo GSA GSS Krav och behov 1. Tjänsten ska kunna driftas i molnet och lokalt

Läs mer

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Syntaktisk parsning (Jurafsky & Martin kapitel 13) Syntaktisk parsning (Jurafsky & Martin kapitel 13) Mats Wirén Institutionen för lingvistik Stockholms universitet mats.wiren@ling.su.se DH2418 Språkteknologi DA3010 Språkteknologi för datorlingvister Föreläsning

Läs mer

FriendlyReader. Språkteknologi för sammanfattningar och ökad läsbarhet. Målgruppsegmentering. Arbetsgång

FriendlyReader. Språkteknologi för sammanfattningar och ökad läsbarhet. Målgruppsegmentering. Arbetsgång FriendlyReader Språkteknologi för sammanfattningar och ökad läsbarhet Mål:! Öka den digitala delaktigheten genom att underlätta för personer med lässvårigheter att tillgodogöra sig textuellt baserad information

Läs mer

Snabbguide till Cinahl

Snabbguide till Cinahl Christel Olsson, BLR 2008-09-26 Snabbguide till Cinahl Vad är Cinahl? Cinahl Cumulative Index to Nursing and Allied Health Literature är en databas som innehåller omvårdnad, biomedicin, alternativ medicin

Läs mer

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008 Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008 Anders Ardö Elektro- och informationsteknik Lunds Universitet Box 118, 221 00 Lund June 18, 2009 1 Inledning Digitala bibliotek

Läs mer

Gränssnitt för FakeGranska. Lars Mattsson

Gränssnitt för FakeGranska. Lars Mattsson Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken

Läs mer

Fortsättning av en bibliometrisk studie för jämförelse mellan LTU och vissa andra europeiska universitet

Fortsättning av en bibliometrisk studie för jämförelse mellan LTU och vissa andra europeiska universitet Fortsättning av en bibliometrisk studie för jämförelse mellan LTU och vissa andra europeiska universitet Terje Höiseth, överbibliotekarie Bakgrund Min förra undersökning (http://www.ltu.se/lrc-intern/nyheter/1.46435)

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n

Läs mer

Riktlinjer för bedömning av examensarbeten

Riktlinjer för bedömning av examensarbeten Fastställda av Styrelsen för utbildning 2010-09-10 Dnr: 4603/10-300 Senast reviderade 2012-08-17 Riktlinjer för bedömning av Sedan 1 juli 2007 ska enligt högskoleförordningen samtliga yrkesutbildningar

Läs mer

1 Mätdata och statistik

1 Mätdata och statistik Matematikcentrum Matematik NF Mätdata och statistik Betrakta frågeställningen Hur mycket väger en nyfödd bebis?. Frågan verkar naturlig, men samtidigt mycket svår att besvara. För att ge ett fullständigt

Läs mer

Word- sense disambiguation

Word- sense disambiguation KTH Word- sense disambiguation Inlämningsuppgift - DD2418 - sprakt12 Mattias Uskali & Emilia Hillert 1/8/2013 Sammanfattning Denna rapport kommer att undersöka två metoder för word- sense disambiguation,

Läs mer

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration 10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive

Läs mer

TDDB96 Projekt: Object priming med visuell stimuli

TDDB96 Projekt: Object priming med visuell stimuli TDDB96 Projekt: Object priming med visuell stimuli Daniel Johansson danjo133@student.liu.se Rickard Jonsson ricjo400@student.liu.se 1. Sammanfattning Vad vi ville komma fram till i denna studie var huruvida

Läs mer

Statistisk mönsterigenkänning

Statistisk mönsterigenkänning Statistisk mönsterigenkänning Jonas Sandström Artificiell intelligens II Linköpings universitet HT 2011 Innehållsförteckning 1. Innehållsförteckning sid 2 2. Inledning sid 3 3. Statistisk mönsterigenkänning

Läs mer

Digitalt festivalengagemang

Digitalt festivalengagemang VOLANTE WORKING PAPER 15:07 Digitalt festivalengagemang Festivalbesökare och platsvarumärken i sociala medier VOLANTE WORKING PAPER 15:07 Digitalt festivalengagemang Festivalbesökare och platsvarumärken

Läs mer

Lärande, kommunikation och informationsteknologi, Magisterprogram, 60 högskolepoäng

Lärande, kommunikation och informationsteknologi, Magisterprogram, 60 högskolepoäng Utbildningsplan Dnr G 2018/203 IT-FAKULTETEN Lärande, kommunikation och informationsteknologi, Magisterprogram, 60 högskolepoäng Learning, Communication and Information Technology, Master's Programme,

Läs mer

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

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05 1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller

Läs mer

Artificiell Intelligens den nya superkraften

Artificiell Intelligens den nya superkraften Artificiell Intelligens den nya superkraften Socialchefsdagarna, 4 oktober 2018 #CGINext Artificiell Intelligens Förmågan hos mjukvara att agera självständigt på ett intelligent sätt tidigare bara associerat

Läs mer