Kunskapsgraf. Fredrik Åkerberg j.f.akerberg@gmail.com. Tommy Kvant tommy.kvant@gmail.com. 1 Introduktion. 2 Relaterade projekt.



Relevanta dokument
Ordklasser och satsdelar

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

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Språkteknologi och Open Source

MÅL OCH BETYGSKRITERIER I SVENSKA

Extramaterial till Matematik X

Rapport från Praktik på SVOX AG till

Word- sense disambiguation

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Gränssnitt för FakeGranska. Lars Mattsson

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Question analysis. in IBM Watson. 729g43 Artificiell intelligens. Linda Hallström

openrgd Rikstäckande Genealogisk Databas (RGD) Sammanslagen släktforskning Sveriges historiska befolkning med släktrelationer

Datorer och kunskap - Den semantiska webben Robert Herber

Ett enkelt OCR-system

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

ORDKLASSER Hitta alla ord som hör till de ordklasser som du fått lära dig. Här kommer det att bli ett litet antal ord över.

Svensk nationell datatjänst, SND BAS Online

Europeana Data Model vad, varför och hur

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Rapport Version 1.0 Johan Aldén Sida 1 av Rapport Förstudie Elevadministration och schemaläggning Sambruk

Cristina Eriksson oktober 2001

Artificial Intelligence

Harry Potter och De Vises Sten, den spännande ungdomsboken, skriven av den engelska författaren J.K. Rowling, har blivit en succé över hela världen.

Release Notes. Vad är nytt i Easy Planning Nyheter

Satsdelar subjekt, predikat, direkt objekt, indirekt objekt och predikatsfyllnad

De flesta orden finns under substantiv men flera exempel på verb och adjektiv finns också med i appen.

Öjersjö Storegård, Partille Kommun, vt-07

Öppna data för robotar ger tillgängliga data för människor. Sverker Johansson Högskolan Dalarna

Business research methods, Bryman & Bell 2007

Bootstrapping för substantivtaggning

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Mobil streckkodsavläsare

Uppgift 1 ( Betyg 3 uppgift )

LETTER OF NET CHANGES RELEASE 5.8. Beställning E-post: FACKTA Point of Sale V5R08

Språkteknologi. Språkteknologi

poäng i del B Lycka till!

Introduktion till frågespråket SQL (v0.91)

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

LÄRARHANDLEDNING SWEET CITY. Ett spännande spel i svenska som andraspråk. Har du frågor om Sweet City? Mejla oss på

Datorlingvistisk grammatik

Pass 3: Metadata. Svensk nationell datatjänst, SND BAS Online

Exempel på observation

Introduction to the Semantic Web. Eva Blomqvist

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Objektorienterad analys och design

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Lathund - TimeEdit Introduktion

Föreläsning 3.1: Datastrukturer, en översikt

ANDREAS ISSA SVENSKA SPRÅKET

Föreläsning 11. Giriga algoritmer

Svensk nationell datatjänst, SND BAS Online

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Inlämningsuppgift: Pronomenidentifierare

Kunskapens miljonprogram. Sverker Johansson Högskolan Dalarna

CASE FOREST-PEDAGOGIK

Arkivkrav vid införande av nytt IT-system

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

Konstruktion av datorspråk

Språkliga strategier för att minnas och lära, till exempel tankekartor och stödord. Mål:

PC-Axis familjen En produktöversi k t

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

JavaScript del 5 Funktioner

Mål med lektionen! Repetera och befästa kunskaperna.

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Objektorienterad programmering Föreläsning 2

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Utvärdering av prototyp: Frågedatabas av Mårten Cronander. Innehållsförteckning

Grammatik för språkteknologer

Tentamen i Introduktion till programmering

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

Grunder. Grafiktyper. Vektorgrafik

Chapter 3: Using Classes and Objects

Dialogue Technologies April 2005

Vardagssituationer och algebraiska formler

Hur går det till att lära svenska? En studie om svenska som andraspråksinlärares talade språk

Personal- och arbetsgivarutskottet

Satsdelar Subjekt, predikat och objekt

TNM065 Johan Eliasson johel964 Dokumentstrukturer Kristina Engström krien026

Pass 2: Datahantering och datahanteringsplaner

UPPGIFT 1 V75 FIGUR 1.

LATHUND FÖR MALVIN. 1 Registrera ny användare Logga In Glömt lösenord Annonsering Skapa annons...

Exempel1 Enklast möjliga import av kund

TDDI16: Datastrukturer och algoritmer

OBS!!! Anslut ej USB kabeln till dator eller GPS innan du först har installerat drivrutinerna för USB kabeln i din dator.

Steg för Steg Att använda Statistics explorer med data från SKLs databas

Kursplan Grundläggande matematik

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

RoboLinguistics. Ett textförståelseprogram. Henrik Palmér, d01hp

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Vanliga frågor för VoiceXpress

Office 365 Windows 10

Programmering i C++ Kompilering från kommandoraden

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

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

Objektorienterad programmering

Kort om World Wide Web (webben)

DC ++ o allt annat runt om! (en kom-i-gång guide..) Klicka på File Settings. Färdigt med konfigureringen!

Transkript:

Kunskapsgraf Fredrik Åkerberg j.f.akerberg@gmail.com Tommy Kvant tommy.kvant@gmail.com 1 Introduktion Målet med projektet var att undersöka huruvida DBpedia.org, kan användas för att besvara frågor på svenska. Som grund analyserades frågor från frågekort från spelet Kvitt eller Dubbelt. Dessa försökte sedan matchas mot poster i DBpedias databas. Projektet är tvådelat på det viset att i den första delen analyseras korten. I den andra delen analyseras nya frågor och ställs mot databasen, för att på så sätt kunna få svar på dessa nya frågor. De nya frågorna måste dock vara av liknande karaktär som de som redan har analyserats. För att kunna analysera hur pass bra programmet fungerar gjordes ett antal mätningarna. Dessa kan hittas under resultat. Mätningarna begränsades till endast den första delen som behandlar frågekorten då den andra delen som besvarar nya frågor bygger mycket på samma algoritm. Frågekorten som användes innehåller sammanlagt över 2000 frågor. Varje kort består av sex stycken frågor, där alla frågorna behandlar samma huvudämne, t.ex. Star Wars. Varje fråga har ett huvudsvar och i vissa fall ett alternativt svar. För enkelhetens skull finns dessa kort sparade i en RDF-databas. DBpedia är en RDF-databas som innehåller enklare information från Wikipedia, t.ex. fakta som består av ett ord, som länders huvudstäder. Med andra ord innehåller DBpedia enbart utvalda delar av Wikipedia och inte hela. Ett tänkbart användningsområde är att kunna söka efter specifika frågor på Wikipedia. T.ex. om man är intresserad av att få reda på vilken stad som är Sveriges huvudstad, behöver man inte leta igenom alla artiklar om Sverige, utan kan instället skriva frågan och få svar på den direkt. Eftersom detta programmet tolkar svenska, kan man även tänka sig att detta kan utvecklas till en svensk Watson. Med andra ord en bot som kan svara på svenska frågor. Man kan också tänka sig att i förlängningen utveckla en slags automatiserad kundsupport som kan svara på mer komplexa frågor än standardfrågor. 2 Relaterade projekt Det absolut mest uppenbara relaterade projektet är IBM s Watson, som gjorde sig känd genom att slå mästarna i Jeopardy!. Detta systemet bygger på samma grundprinciper, som är att läsa in befintlig Corpus, extrahera relevant information och sen kunna besvara frågor. Skillnaden är att IBM utgick ifrån brödtext i form av tidningsartiklar, wikipediaartiklar m.m. Medan det här utgicks direkt ifrån fråga/svar. 3 Verktyg För att kunna genomföra projektet användes ett antal olika befintliga verktyg. 3.1 RDF Eftersom triplar behöver kunna lagras i form av enhetsnamn relation till svaret svaret, är det väldigt behändigt att använda RDF eftersom detta är på samma form. 3.2 Sesame Sesame är en RDF-databashanterare, från OpenRDF, som man kan skicka queries till med språket SPARQL. Denna användes för att lagra frågorna från Kvitt eller dubbelt, samt den extraherade informationen. 3.3 Stagger Stagger är ett taggerprogram som kommer ifrån Stockholms Universitet, som taggar saker utifrån svensk grammatik. Stagger plockar även ut enhetsnamn(named entities). Eftersom det är rå-text

som behandlas här, måste man först tagga respektive ordklass, för att senare kunna parsa det. 3.4 Maltparser Maltparser är ett program som plockar ut satsdelar från text. Detta användes för att plocka ut satsdelar ur fråge-svar grupperna, för att kunna se relationerna i texten. 4 Algoritm 4.1 Extrahering från frågekorten Tillvägagångssätet som användes för att få ut data var relativt naivt. Det är en enkel algoritm som inte gör allt för stora analyser av informationen i datan. I de första 4 stegen är grundtanken är snarlik den som användes i IBMs Watson för att analysera frågorna i Jepoardy![2], dock är analysen i Watson mycket mer komplicerad än här. Steg 1. Först anropades databasen med frågor för att få ut alla fråge-svar grupper. Därefter taggades och parse:ades dessa med respektive verktyg. Steg 2. Med hjälp av utdatan från Stagger plockades även varje named entity från frågorna och svaren ut. För varje fråge-svars grupp utförs följande: Steg 3. Frågan gås igenom och de named entities som finns där plockas ut. Därefter letar man upp det relaterade substantivet i frågan. Till exempel fråge-svar gruppen: Fråga: Vad heter Frankrikes huvudstad? Svar: Paris. Här får man ut att frågan innehåller en named entity (Frankrike) och substantivet är huvudstad. Denna informationen sätts då in i en ofärdig tripple. I exemlet skapas Frankrike huvudstad?. Subjektet kommer i fortsättningen att hävisas till som tag Steg 4. Svaret gås igenom och de named entities eller substantiv, som finns där plockas ut. Dessa paras då ihop med den ofärdiga tripplen från frågan. I exemplet Fråga: Vad heter Frankrikes huvudstad? Svar: Paris fick man ut den ofärdiga tripplen Frankrike huvudstad?. Den kompleteras nu genom att man i svaret hittar named entity Paris och den ej kompletta Figur 1: Hur Labels utvinns från DBpedia tripplen blir Frankrike huvudstad Paris. Det är endast kompletta tripplar behandlas senare i algoritmen. Steg 5. Ifall det finns ett alternativt svar behandlas det på samma sätt som svaret i steg 4. För varje utvunnen komplett triple utförs följande: Steg 6. För att kunna koppla utvunna tripplar med information i DBpedia måste datan överättas. Detta görs genom att avnända befintliga tripplar från DBpedia som representerar en DBpedia identifierare och dess namn på svenska. Med dessa översätts orden som är subjekt och objekt i tripplarna till dess identifierare hos DBpedia. Steg 7. För att få veta kopplingen mellan subjekt och objekt i DBpedia skickas en query till DBpedia där man frågar efter just den kopplingen, se figur 1. Kopplingen kallas härefter label. Det som fås tillbaka är alltså en översättning från tag till label. Dessa sparas för sig för att senare kunna användas när man ställer frågor till systemet. 4.2 Live-analysera frågor Tillvägagångssättet för att kunna analysera och besvara nya frågor, analyseras den nya frågan snarlikt det sättet frågekorten analyserades. Steg 1. Frågan analyseras enligt steg 1-3 i algoritmen för att extrahera frågekorten. Till exempel Fråga: Vad heter Rysslands huvudstad?. Där fås efter analys ut den ej kompletta tripplen Ryssland huvudstad?

Steg 2. För att hitta svaret på frågan försöker systemet först hitta den tripple i de redan analyserade frågorna från frågekorten som uppfyller det subjekt och predikat hittade i frågan. I exemplet Ryssland och huvudstad. Hittas ingen sådan tripple översätts subjektet till en DBpedia identifierare enligt steg 6 i algoritmen för att extrahera frågekorten. Objektet översätts genom attt använda översättningen mellan tags och labels som genererades i extraheringsalgoritmen. Sedan frågas DBpedia om en sådan tripple finns i dess system istället. Finns ingen sådan finns det inget svar. 5 Resultat För att kunna mäta hur väl vår algoritm för att extrahera frågekorten fungerade gjordes vissa mätingar. Dessa visas här nedan: Totalt antal frågor: 2281 Antal frågor som täcks av tags: 484 Täckning för ovanstående frågor: 21% Antal frågor som täcks av DBpedia: 95 Täckning för ovanstående frågor: 4% Detta är frågor, där subjektet och objektet i en fråga har en koppling i DBpedia. Andel frågor som lyckas matchas med DBpedia: 95/484 = 19.6% Totalt antal tripplar: 1179 Antal tripplar som täcks av tags: 661 Täckning för ovanstående tripplar: 56% Antal tripplar som täcks av DBpedia: 113 Täckning för ovanstående tripplar: 10% Andel tripplar som lyckas matchas med DBpedia: 113/673 = 17.1% Andel named entities som är en del av en korrekt taggad tripple: 42% Antal lyckade översättning mellan tags och labels: 32 IBM gjorde en liknande mätning för Watson där de mätte hur många av deras named entities täcktes av deras så kallade frames när de extrahearde information från dokument. Watsons resultat var 94.4% [1]. Dock bör man tänka på att processen i Watson är baserad på brödtext, medan detta program enbart har text i form av frågor 6 Felkällor Avsaknad av named entities - Vissa frågor från frågekorten har inte named enities i sig. Exempelvis: Vilken himlakropp i vårt solsystem är absolut varmast? har ingen named entity i sig. Avsaknad av substantiv - Vissa frågor har inga substantiv i sig, dvs. de får ingen tag. Då skapas alltså ingen komplett tripple. DBpedias täckning - Även om en komplett tripple skapas är det inte säkert att de named entities som finns i den finns i DBpedia. Detta gör att det inte finns någon översättning mellan den tag:en och en label. DBpedia verkar sakna en hel del entities som är fiktiva. Många av frågorna som analyseras innehåller fiktiva karatärer, vilket då faller bort. Substantiv som tags - Två eller flera frågor kan ha samma tag är det inte garanterat att de labels som returneras från DBpedia för dessa olika frågor är desamma. Till exempel stad LargestCity och stad City. Översättningen från tags till labels är en 1-till-1 mappning. Detta gör att mappningen för flera tags kan komma att skrivas över om nya översättningar dyker upp. Detta tillsammans med att substantiv är rätt enkla och samma substantiv ofta förekommer i frågor som behandlar snarlika ämnen gör att många översättningar skrivs över med nya översättningar. Detta blir ett problem när nya frågor ska tolkas, för då kan det vara en viss label som behövs, och översättningen till den label:n kan ha förekommit i någon av de analyserade frågorna, men att den senare blev överskriven. Detta gör att det inte kommer hittas något svar för den frågan. Detta stärks av att det endast hittas 32 översättnignar för 113 triplar, dvs. 113 triplar som täcker många olika ämnen skulle kunna täckas av 32 labels i DBpedia, vilket verkar otroligt. Stagger kan inte skilja mellan olika punkter - När Stagger går igenom texten man ger

den separerar den meningar med mellanrum. Den utgår ifrån att om ett stycke text slutar på men punkt är det en mening, oavsett längd, innehåll och formattering. Detta medför att förkortningnar, till exempel J. R. R. Tolkien., uppfattas som 4 meningar istället för en mening. Samma fenomen uppstår om en fråga har flera meningar i sig, exempel Fina golv i gamla slott är ofta gjorda av en sorts sten, som man också gör statyer av. Vad heter den?. Detta går dock lättare att hantera då man vet att frågor alltid slutar på frågetecken, så man kan kompensera för det. Problemet vid förkortningar blir den att efterkommande frågor och svar blir förskjutna. Alltså kan svar uppfattas som frågor och vise versa, vilket gör att programmet inte kan hitta svar och översättningar och man tappar de frågorna. Problemet löser sig om ett liknande problem uppstår så att det skiftas rätt igen. Identifieringen av named entities i Stagger - Identifieringen av named entities i Stagger fungerar bra, men ibland hittar den inte alla eller hela named entity:n. Den är inte alltid konsekvent i hur den bedömmer ord. Exempelvis Darth Vader identifieras i ett sammanhang som precis Darth Vader, men i ett annat blir det bara Darth och Vader blir substantiv, dvs. vad(kroppsdel) i plural. Hämtandet av named entity label - DBpedia har identifierare för flera språk, däribland svenska, det finns alltså identifierare som börjar på sv.dbpedia.org/... Dock om man använder dessa i en query kan man bara få ut tripplar med labeln...sameas. Den kopplar den, i detta fallet svenska, identifieraren med en från ett annat språk, däribland den engelska. Det är den engelska man måste använda sig av för att kunna få ut all den andra informationen som identifieraren är kopplad till. För att underlätta använder programmet en nerladdad version av översättingen från de svenska orden som finns i DBpedia till de engelska taggarna. Nästa problem som uppstår är då att queries till DBpedia får endast innehålla ASCII tecken, men eftersom svenskan innhåller tecken som inte finns i ASCII tabellen måste de också översättas. Den översättningen som finns från svenska ord till engelska identifierare tar inte hand om detta utan identifierarna innehåller icke ASCII tecken. Men DBpedia tillhandahåller en översättning från identifierare med icke ASCII tecken till identifierare enbart med ASCII tecken. Detta gör att det blir två översättnigar istället för en som det hade blivit om man hade kunnat översätta från svenska ord till svenska identifierare. Om man jämför storleken på filerna ser man att den som översätter svenska ord till svenska identifierare är på över 200 MB, medan de filerna som översätter från svenska ord till engelska identifierare och engelska identifierare till engelska identifierare med enbart ASCII är på 46 MB respektive 122 MB. man missar alltså en massa översättningar genom att behöva göra 2 översättnignar istället för 1. Fel i frågorna - Vissa frågor har lite småfel i sig vilket gör att meningsbyggnaden inte stämmer, till exempel Vad ligger Hamburg?. 7 Slutsats Slutsatsen man kan dra är att DBpedia.org i dagsläget inte riktigt kan användas för att besvara frågor på svenska, då enbart 4% av frågorna från Kvitt eller dubbelt kan besvaras av DBpedia. Dock finns det en hel del saker man kan göra för att denna procentsats ska bli högre. Stor del av skulden till att procentsatsen inte är högre är DBpedia, dock kommer procentsatsen sannolikt att öka om detta programmet lyckas tagga fler frågor. Alltså borde man teoretiskt sett kunna nå upp till åtminstone 20% om man lyckas tagga 100% av frågorna. Det som då kan förbättras är i första hand DBpedia. Dock är detta inget som de flesta av oss har möjlighet att göra. Det man kan göra är att försöka hitta sätt för att så långt som möjligt förbättra taggningen av texten. Detta kan göra på följandevis: Unika tags - de väldigt enkla tags:en som används i detta programmet, är en av många saker som gör att täckningen blir dåligt. Därför bör man hitta på ett nytt eller förbättrat sett att göra detta på. Man kan bland annat använda både substantivet och adjektivet, för att kunna lösa problemet med substantiv som kan betyda många olika saker. Men det bästa hade varit om man kan skapa en dynamisk lösning

som läser av kontexten i frågan och därefter väljer den bästa taggen. Exempelvis att göra som IBMs Watson gör för att analysera frågorna i Jepoardy![2]. Där tittar Watson på det större sammanhanget av frågan och kan bilda taggar/realationer utifrån det. Named enities substantiv - För att öka möjligheten att besvara frågor, bör man inte begränsa sig till att enbart välja named entities från frågorna. Man skulle istället kunna göra så som görs för svaren och välja substantiv om man inte kan hitta några named entities. Det är dock inte helt säkert att detta ökar antalet frågor som kan besvaras. Men det ökar i alla fall antalet frågor som kommer med och kan försöka besvaras. Fler korpus - Detta ökar inlärningen hos detta systemet, vilket i sin tur ger oss större möjlighet att översätta tags labels. Man skulle skulle till exempel kunna använda sig av bland annat Trivial Pursuit, och andra välkända frågesportspel. Referenser [1] J. Fan, A. Kalyanpur, DC Gondek, and DA Ferrucci. Automatic knowledge extraction from documents. IBM Journal of Research and Development, 56(3.4):5 1, 2012. [2] C. Wang, A. Kalyanpur, J. Fan, B. K. Boguraev, and D. C. Gondek. Relation extraction and scoring in deepqa. IBM Journal of Research and Development, 56(3.4):9:1 9:12, 2012.