Betydelse och betydelse
|
|
- Klara Öberg
- för 9 år sedan
- Visningar:
Transkript
1 Betydelse och betydelse Ordbetydelsedisambiguering i praktiken Stian Rødven Eide stian@fripost.org Självständigt arbete i lingvistik, 15 hp Göteborgs universitet Institutionen för filosofi, lingvistik och vetenskapsteori 13 juni 2013 Handledare: Torbjörn Lager, Göteborgs universitet
2 Sammanfattning Ordbetydelsedisambiguering, att bestämma vilken betydelse av ett ord som gäller i ett givet sammanhang, är en av språkteknologins huvudutmaningar. Medan ordklasstaggning och informationssökning har nått mycket användbara nivåer är det fortfarande långt kvar innan vi har hittat en metod som på ett tillförlitligt sätt kan hjälpa oss att automatiskt ordbetydelsedisambiguera digital text. I denna uppsats undersöker jag vilka metoder för ordbetydelsedisambiguering som finns, hur de fungerar, samt demonstrerar hur en praktisk implementation av en sådan metod går till.
3 Innehåll 1 Introduktion Inledning Syfte Bakgrund Metod Olika tillvägagångssätt för WSD Kunskapsbaserade metoder Lesk-algoritmen Semantisk släktskap Urval genom företräde Heuristiska metoder Övervakade korpusbaserade metoder Statistiska sannolikhetsmetoder Likhetsprincipen Diskrimineringsregler Regelkombinationsmetoder Linjära klassifierare Kärnbaserade metoder Oövervakade korpusbaserade metoder Distributionella metoder Typbaserade metoder Förekomstbaserade metoder Översättningsekvivalens Kombinationer Bootstrapping Implementation av Lesk-algoritmen Beskrivning av arbetet Slutsatser 16 Litteraturförteckning 18 Internetkällor 19 A Källkoden 20 i
4 1 Introduktion 1.1 Inledning Mångtydighet, eller ambiguitet, är en mycket vanligt förekommande egenskap hos naturliga språk. De 121 vanligaste substantiven i engelska har i snitt 7,8 olika betydelser, enligt den semantiska orddatabasen WordNet. 1 Medan detta inte är något problem i människans dagliga samverkan, då vi tenderar att inte ens märka den allestädes närvarande ambiguiteten när vi skriver eller läser text, är det en betydande utmaning för språkteknologin. Forskning på ordbetydelsedisambiguering (härefter förkortat WSD efter engelskans Word Sense Disambiguation) har gjorts sedan de första datorerna började användas inom amerikanska universitet på slutet av 1940-talet (Locke and Booth 1955). Ändå finns det mycket arbete kvar innan datorer kommer i närheten av människans förmåga att hantera ambiguitet i en text. Som problem för datavetenskapen har WSD beskrivits som AI-komplett, dvs. som ett problem som förutsätter en komplett förståelse av naturligt språk eller common sense-läsning (Agirre and Edmonds 2007). Är det verkligen så att vi inte kan lösa WSD förrän vi har en artificiell intelligens med människans språkförmåga? Svaret på denna frågan ligger naturligt nog utanför uppsatsens ramar, men förhoppningsvis kan jag bidra till en ökad insikt i problemet och de lösningar som hittills har föreslagits. 1.2 Syfte Syftet med denna uppsats är att undersöka, förklara och demonstrera WSD som det praktiseras idag. Först ger jag en översiktlig och relativt lättfattlig införing i området, där jag beskriver de olika metoder och de mest kända algoritmer för WSD. Sedan visar jag hur man kan implementera en av dessa metoder i programmeringsspråket Python. Som exempel har jag valt Lesk-algoritmen, eftersom den är rimligt enkel både att förstå och att implementera. 1.3 Bakgrund I korthet kan WSD beskrivas som en process för att bestämma vilken betydelse ett flertydigt ord har i en given kontext. Detta är förstås inget mål i sig, men däremot en viktig förutsättning för många språkteknologiska tillämpningar. Maskinöversättning, informationssökning och röststyrning av apparater är bara några av de mest uppenbara områden där fungerande WSD kan göra en enorm skillnad. Än sålänge finns det dock inga generiska WSD-implementationer som ger tillräckligt bra resultat (Indurkhya and Damerau 2010). En stor del av problemet är att veta var en betydelse slutar och den nästa börjar. Visst finns det ord med såpass stora skillnader i betydelsen att de kan disambigueras relativt en
5 kelt, till exempel kan man med stor träffsäkerhet skilja mellan verb och substantiv eftersom vi har välfungerande metoder för ordklasstaggning, men detta gäller långt ifrån alla ord. Speciellt tydligt blir det när man översätter från ett språk till ett annat. Ibland är det även så att man inte är klar över nyansskillnader i ord i sitt eget språk förrän man översätter det till ett annat. Ett vanligt förekommande exempel på ett flertydigt ord i svenskan är fil. Här kommer människor troligen inte ha något problem att bestämma vilken betydelse av ordet som avses: verktyget, den mjölkbaserade produkten, datafilen eller motorvägens fil. Det framgår oftast mycket tydlig från kontexten. En dator skulle också kunna bestämma detta med ganska stor sannolikhet, om den bara har lite information om hur den skall hantera kontexten. Kommer äta eller körde framför fil i samma mening är det lite troligt att det är verktyget som menas. Det är dock lätt att komma på meningar som skulle vara vilseledande för en datoralgoritm men som fortfarande skulle vara oproblematiskt för en människa, till exempel När han hade ätit halva tårtan hittade han en fil som hon tydligen hade gömt. Svenskans betydelse är faktiskt lite vilseledande i det här sammanhanget. På engelskan skiljer man normalt mellan meaning, en grov och ofta uppenbar betydelseskillnad, och sense som är mer finkornig och utgör de stora problemen för datorer att avgöra. Detta är samtidigt illustrerande för problematiken i praktiken: I översättning till engelskan har betydelse två olika betydelser, och det finns inga uppenbara markörer i den svenska texten som indikerar vilken översättning som är lämplig. I uppsatsen har jag valt att behålla ordet betydelse för båda betydelserna av betydelse och indikerar om jag menar en fin eller grov indelning där det är relevant. En annan fråga är om ett WSD-system måste behandla varje ord som om det har ett begränsat antal diskreta betydelser. Ordboksvana människor är vana med detta tankesätt, men det är inte alls uppenbart. Draget till sin spets kan man säga att varje unik förekomst av ett ord har en egen betydelse och som jag skall visa finns det WSD-metoder som tar utgångspunkt i detta. Ett sådant tillvägagångssätt lär exempelvis vara användbart för maskinöversättning, där man bara behöver en indelning av ett givet ord som motsvarar ett annat språks olika översättningar av detta. Evalueringen av WSD-system är också en viktig aspekt som bjuder på vissa utmaningar. Det är långt ifrån alla metoder som framkommit genom forskningen som har implementerats inågon praktisk tillämpning, vilket till stor del beror på att de inte är tillräckligt bra ännu. I tillägg finns det flera metoder som inte korresponderar med förehandsdefinierade ordbetydelser och därför är speciellt svåra att jämföra med. Sedan 1998 har den huvudsakliga evalueringen av WSD-system gjorts i samband med en serie internationella tävlingar, först under namnet Senseval, med enbart fokusering på ordbetydelsedisambiguering, och sedan 2007 som SemEval, när tävlingen utökades till att inbefatta andra former för semantisk analys. 2 2 Se för en översikt 2
6 1.4 Metod Denna uppsats består dels av en introduktion i WSD som språkteknologiskt område, dels av en praktisk implementation av Lesk-algoritmen. Introduktionen är en sammanställning av den information som finns tillgänglig om ämnet och kan sägas vara en empirisk undersökning av litteraturen och teknologin, där huvuddelen av arbetet har bestått i att försöka tränga in i och förstå de olika metoder som finns för WSD. Tyvärr har det visat sig att litteraturen på området är något begränsad. Det finns visserligen mycket forskning på WSD, men de artiklar som publicerats är tämligen otillgängliga, både i termer av fysisk tillgänglighet och genom att de är mycket specialiserade och på såsätt ligger utanför uppsatsens ramar. Jag har därför valt att huvudsakligen förlita mig på Agirre and Edmonds (2007) som referenstext. I tillägg har jag haft mycket användning av dokumentationen för Python 3 och NLTK 4, som finns på deras respektive hemsidor, samt spridda inlägg på diverse internetforum så som Stack Overflow 5. För implementationen har jag valt att använda programmeringsspråket Python, som är relativt enkelt för nybörjare inom programmering. Python har under senare år använts mycket inom språkteknologi, bland annat på Göteborgs Universitet, vilket i stor grad beror på tillgängligheten av modulen NLTK (Natural Language ToolKit). Denna modul innehåller flera språkteknologiska verktyg och korpusar för Python. Eftersom NLTK innehåller WordNet, ett mycket lämpligt lexikon för WSD på engelska, och att det inte finns anpassade svenska motsvarigheter, har jag valt att göra själva implementationen med engelska som exempel. 2 Olika tillvägagångssätt för WSD Sedan WSDs början har det uppstått flera inriktningar inom området, med olika metoder för att hantera olika problem. Eftersom det inte fanns någon etablerad träningskorpus och forskningen på artificiell intelligens slog igenom först på 1980-talet var det länge bara kunskapsbaserade metoder som fanns. En stor del av forskningen på generiska WSD-system har därmed använt ett sådant tillvägagångssätt. De praktiska implementationerna som ger bäst resultat idag är dock alla korpusbaserade (Agirre and Edmonds 2007), och eftersom det är relativt stor spridning på hur systemen är uppbyggda skiljas det normalt på övervakade och oövervakade sådana. Värt att märka är att det finns olika synsätt på vad som utgör en övervakad respektive oövervakad metod. Jag har här valt att ansluta mig till Agirre and Edmonds (2007) och använder termen oövervakad enbart för metoder som inte använder någon form för taggat eller annoterat material för inlärningen. Om inlärningen däremot baseras på träningsexempel som har skapats av en människa betecknas metoden som övervakad
7 2.1 Kunskapsbaserade metoder Medan de praktiska resultaten för kunskapsbaserade metoder för WSD tenderar vara lägre har dessa ändå en fördel framför korpusbaserade metoder i det att de hanterar alla ord i en obegränsad text. Medan en korpusbaserad metod bara fungerar med de ord som finns med i korpusen använder kunskapsbaserade metoder sig istället av olika sorters lexikon. Visserligen är även lexikon begränsade i sin omfattning, men där en inlärningskorpus innehåller ett mer eller mindre godtyckligt antal ord som råkar finnas med, eftersträvar lexikon att vara så kompletta som möjligt för det syfte de gjorts för Lesk-algoritmen Den mest kända ordboksbaserade metoden är Lesk-algoritmen från 1986, som också var en av de första algoritmerna som kunde disambiguera alla ord i en obegränsad text (Agirre and Edmonds 2007). Lesk-algoritmen är ett typexempel som illustrerar väl hur kunskapsbaserade metoder tenderar att fungera, och den är också relativt enkel att implementera. Allt som behövs är lexikala data för varje möjlig ordbetydelse samt tillgång till den omedelbara kontexten. Det algoritmen gör är att slå upp definitioner av alla möjliga ordpar inom en viss sektion av texten, exempelvis en mening, och välja de ordbetydelser vars definitioner har ord som överlappar med varandra. Exemplet som Lesk själv valde att illustrera metoden med är ordparet pine cone. Båda orden har olika betydelser, men bara en av definitionerna av deras respektive betydelser innehåller ordet tree, och dessa betydelser väljs därmed ut som mer sannolika än de andra. Den ursprungliga formuleringen av Lesk-algoritmen presterade en korrekthet på 50-70% med Oxford Advanced Learner s Dictionary (Agirre and Edmonds 2007). Eftersom Lesk-algoritmen skall jämföra alla möjliga kombinationer av ordens möjliga betydelser är den dock mest lämpad för disambiguering av enskilda ordpar och blir snabbt oanvändbar när meningarna blir längre. En mening som I saw a man who is 98 years old and can still walk and tell jokes ger till exempel möjliga betydelsekombinationer, vilket innebär att den därmed inte är särskilt effektiv pålängre texter. En lösning på detta problem är att använda simulated annealing, en optimeringsmetod som baserar sig på sannolikhetsberäkningar. Med simulated annealing skapas en funktion som reflekterar alla möjliga betydelsekombinationer i en text, samt ett minimum som baserar sig på alla korrekt gissade betydelser. Algoritmen väljer sedan ut ett godtyckligt sätt med definitionskombinationer, och varje ord som finns med i någon av definitionerna får en poängsumma efter hur många förekomster det har. Summan av poängsummarna i en given kombination är textens redundans, och målet med algoritmen är att minimera redundansen. Istället för att behandla varje möjlig kombination av betydelser, går algoritmen genom iterationer av godtyckliga kombinationer och väljer i varje iteration ut den som ger minst redundans, tills den efter X antal iterationer med samma kombination inte kan hitta någon bättre. Tanken bakom detta är att komma fram till 4
8 en kombination som är bra nog för en given situation med begränsade resurser, snarare än att eftersträva någon optimal kombination som ändå är osannolik att man kommer fram till. En annan variation är den så kallade förenklade Lesk-algoritmen som, istället för att jämföra ett ords betydelser med ett annat ords betydelser, bara behandlar ett ord i taget. Algoritmen väljer då ut den betydelse vars ord finns med i den omedelbara kontexten, alltså i själva texten och inte i andra ords definitioner. Vid flera tillfällen, bland annat WSD-tävlingen Senseval-2, har denna variant visat sig vara inte bara mer effektiv, utan också mer träffsäker än originalet. Den förenklade Lesk-algoritmen kan även kombineras med en annoterad korpus, vilket har visat sig vara en bra utgångspunkt för att initiera övervakade WSD-inlärningssystem. Man matchar då orden i den omedelbara kontexten både mot ett lexikon och mot exemplen i en korpus, och ger en viktad bedömning av de olika definitionerna. Algoritmen väljer så ut den definitionen som får högst total vikt. Den korpusbaserade varianten av Lesk-algoritmen räknas som den bäst presterande standardalgoritmen i jämförelse mellan övervakade WSD-inlärningssystem (Agirre and Edmonds 2007), och uppnådde en korrekthet på 69.1% i Senseval-1. Möjligheterna att göra variationer över Lesk-algoritmen är många, och det kommer säkerligen dyka upp flera kombinationer som hittills inte har provats. Bland annat har Banerjee och Pedersen utökat lexikondefinitionerna till att även inkludera relaterade ord i WordNet-hierarkin, för att skapa en utökad definitionsmängd (Agirre and Edmonds 2007). Tanken är att detta skall göra det enklare att hitta överlappande ord som är relevanta Semantisk släktskap Medan Lesk-algoritmen och dess variationer baserar sig på en mycket begränsad lokal kontext, som till exempel ett ordpar eller en mening, finns det andra kunskapsbaserade tillvägagångssätt som istället försöker behandla varje ord som ingående i en global kontext. Det vill säga att man använder hela texten som underlag i disambigueringen av varje ord. De vanligaste sådana metoder går under beteckningen semantic similarity, eller semantisk släktskap, och baserar sig på den grundläggande premissen att ord i en diskurs måste vara relaterade i betydelse för att diskursen skall vara koherent. Tanken är att disambiguera text genom att bygga lexikala kedjor som löper från ord till ord genom hela texten. En lexikal kedja är en inom språkteknologin mycket användbar betydelsestruktur som består av semantiskt relaterade ord i en given text. Lexikala kedjor är oberoende av den grammatiska strukturen och kan löpa över långa avstånd i texten. Av praktiska skäl är det vanligt att man baserar dessa på ord som tillhör samma ordklass, eftersom det då blir enklare att bestämma den semantiska relationen, och hittills har man nästan uteslutande använt substantiv. Det finns ett antal metoder för att automatisk bestämma den semantiska relationen mellan ord. Av praktiska skäl finns det inte utrymme för att förklara dessa inom ramen för uppsatsen, och jag hänvisar därför till Agirre and Edmonds (2007) för ytterligare detaljer. Dock är det värt att nämna att de flesta av dessa utarbetades under 1990-talet och använder WordNet-hierarkin 5
9 som underlag för beräkningarna. En generisk algoritm för att skapa lexikala kedjor börjar med att man väljer ut ett antal basord från texten, vars semantiska släktskap är möjligt att beräkna utifrån den valda metoden. För varje basord och för varje betydelse som detta ordet kan ha, placeras betydelsen i varje kedja där den enligt beräkningsmetoden får vara. Om den inte passar in i någon existerande kedja skapas en ny. Alla kedjor som överstiger en viss tröskel väljs sedan ut för en slutlig jämförelse. Metoder för att disambiguera genom semantisk släktskap lider dock i grunden av samma problem som originalversionen av Lesk-algoritmen; det blir snabbt ohanterligt många möjliga kombinationer att jämföra. För att begränsa mängden av betydelsemöjligheter har därför olika lösningar provats, bland annat att utgå ifrån den lokala kontexten i första hand, och på såsätt ge en första bedömning av vilka betydelser som är mer sannolika, eller att introducera syntaktiska beroenderelationer, där syntaxen automatiskt får utesluta vissa semantiska relationsmöjligheter Urval genom företräde Bland de första algoritmerna för WSD var flera baserade på urval genom företräde (eng. selectional preference), alltså en common sense-läsning av text där man väljer ut en betydelse utifrån klasser av begrepp. Äta-mat och dricka-vätska är typiska exempel på sådana begrepp. I meningen Eva drack ett glas rött skulle man därmed lätt sluta sig till att ordet rött hänvisar till rött vin, med hjälp av en regel som säger att verbet dricka föredrar vätska och en av betydelserna för rött är ett substantiv med egenskapen vätska. Detta liknar det sätt på vilket människor disambiguerar ord, men där människan har en till synes obegränsad mängd sådana begrepp som ligger till grund för hennes common sense är utmaningen med ett sådant tillvägagångssätt för WSD att varje begreppsklass måste beskrivas utförligt med en regel. Det är därmed lätt att hamna i en beroendecirkel: för att lära in begreppsliga restriktionsregler krävs kännedom om relationen mellan olika ords betydelser och tvärt om. För att bryta denna cirkel behövs i princip en stor uppsättning färdigdefinierade begreppsklasser Heuristiska metoder En av de enklaste metoderna för att disambiguera ord är att skapa regler utifrån språkliga egenskaper som kan observeras i större texter. Sådana metoder utgår ifrån heuristiska sannolikhetsberäkningar, och försöker på såsätt bara att göra rimliga antaganden om vad som kan förväntas. Heuristiska tillvägagångssätt för WSD har även visat sig vara tämligen precisa, men kräver att texten som skall disambigueras är hyfsat enhetlig, och kommer därför inte att fungera väl för alla sorters text. Det finns i huvudsak tre heuristiska urvalsmetoder som har använts inom WSD: 1) Den oftast förekommande betydelsen, 2) en betydelse per diskurs och 3) en betydelse per kollokation. Urval genom den oftast förekommande betydelsen baserar sig på Zipfs distributionanalyser, 6
10 som säger att en specifik betydelse av ett givet ord kommer vara dominerande inom alla texter på ett givet språk, med en snabbt avtagande kurva för alla andra möjliga betydelser (Bird, Klein and Loper 2009). Det är därmed rimligt att anta att de allra flesta förekomster av ordet i en given text kommer ha denna betydelse, och att utgå ifrån denna som ett grundantagande kommer ofta att ge en tämligen korrekt disambiguering. Denna metod är relativt enkel att implementera, men har två uppenbara brister. Den ena är att det behövs en översikt över olika ordbetydelsers frekvensdistribution, vilket bara existerar för ett antal språk. Den andra är det att texter inom en specifik domän inte alltid följer samma distribution som språket i sig. Mer användbart för domänspecifika texter är därmed att istället utgå ifrån en betydelse per diskurs. Det innebär i praktiken att disambiguering av en given text måste sättas igång med en förutsättning om vilka betydelser som är mest relevanta och sannolika, till exempel en domänspecifik samling frekvensdistributioner. Försök med denna metod har dock visat att ungefär 33% av ord används i flera olika betydelser i en given diskurs, och det är därmed svårt att komma över en disambigueringsnivå på mer än 70%. Som Yarowsky har visat (Agirre and Edmonds 2007) är denna metod däremot mycket användbar för att sätta igång korpusbaserade metoder, och förbättrade hans bootstrapping-algoritm från 90,6% till 96,5%. 6 En annan heuristisk variant som introducerades av Yarowsky är utgångspunkten att ett ords betydelse nästan alltid kommer vara den samma i en given kollokation. Detta har visat sig stämma bra för indelning i grova betydelseskillnader, men fungerar mindre bra för den sortens finindelning som har gjorts i bland annat WordNet (experiment gjord av Martinez & Agirre, 2000, se Agirre & Edmonds, 2007). Samtidigt är det så att metoden fungerar lika bra i olika korpusar, betydelsen inom kollokationer tenderar vara den samma, men däremot finns det inte särskilt bra överlapp mellan kollokationer inom olika korpusar, så att träna in regler för kollokationer kommer troligen inte känna igen de flesta kollokationer i en annan korpus. 2.2 Övervakade korpusbaserade metoder Korpusbaserade metoder som baserar sig på maskininlärning av regler har de senaste 10 åren visat sig vara mycket effektiva för automatisk WSD (Indurkhya and Damerau 2010). Inlärningen görs från en träningskorpus, och om metoden betecknas som övervakad innebär det i princip att korpusen har taggats manuellt. Genom processen lär sig programmet vilka betydelser som gäller för ett givet ord i en given kontext och skapar regler för vilken disambiguering som skall gälla i en given situation. Sådana metoder fungerar relativt bra för att disambiguera text som liknar de texter den har tränats med och är därför ett naturligt val inom domänspecifika områden. Huvudproblemet för övervakade korpusbaserade metoder är det som kallas kunskapsflaskhalsen (eng. the knowledge aquisition bottleneck) (Agirre and Edmonds 2007). Eftersom de baserar sig på annoterad text krävs det en enorm mängd träningstext för att dessa metoder skall 6 Yarowsky s Bootstrapping Algorithm förklaras närmare i sektion
11 fungera effektivt med vilken som helst annan text. Det skulle till exempel inte vara så lämpligt att använda ett WSD-system som har tränats på texter inom medicinsk forskning för att översätta en kokbok. Språkteknologiska utmaningar som maskinöversättning, ordklasstaggning och WSD matchar maskininlärning perfekt, eftersom just klassifiering kan sägas vara en av maskininlärningens grundfunktioner (Indurkhya and Damerau 2010). Det är dock inte alltid lätt att reducera NLP (från engelskans Natural Language Processing) till ren klassifiering, särskilt inte när man har att göra med mer komplexa hierarkiska strukturer, så som syntaxträd inom vissa modeller. De regler som övervakade inlärningsmetoder typiskt skapar är i huvudsak baserade på den omedelbara kontexten: exempelvis vilka andra ord som överhuvudtaget finns med i närheten, vilka vanligt förekommande bigram och trigram som ett ord förekommer i, och sträcker sig sällan utanför meningen. Ett klassifikationsschema består av ett antal sådana regler, med en tydlig precedens där varje regel har ett sannolikhetsvärde som säger hur mycket vikt den har gentemot andra regler. Det innebär dock att även om regeln med högst precendens föredrar en betydelse har de andra reglerna gemensamt mer vikt om det enligt dem är en annan betydelse som bör väljas. Bristen på träningskorpusar är det största problemet för övervakade metoder och det har det lagts mycket arbete på att bygga upp sådana. I tillägg till engelskspråkliga Semcor och DSO, som båda har taggats med WordNet-betydelser, har det byggts upp flera mindre korpusar på olika språk i samband med Senseval-tävlingarna. En ytterligare korpus, The Open Mind Word Expert Project, påbörjades i 2002 och baserar sig på hjälp från volontärer som hjälper till med taggningen via webben i form av ett dataspel. 7 Grunden för ett lyckat övervakat korpusbaserat WSD-system är förstås träningsexemplen. Det är nämligen dessa som ligger till grund för de regler som lärs in, och det är också där som största risken för disambigueringsfel ligger (Agirre and Edmonds 2007) Även en bra algoritm för att inducera regler kommer att lära in felaktiga regler om den inte tränas på fullgoda exempel, dvs exempel som i största möjliga grad tillåter alla möjliga tolkningar och inga ogiltiga tolkningar. Själva kodningen av exemplen och algoritmerna som tolkar dessa behandlar varje ordbetydelse som punkter i ett n-dimensionellt rum, där n är antalet egenskaper som en betydelse kan ha. Egenskaperna bestäms genom ett antal metoder och inkluderar både syntaktiska regler baserade på ordklass och semantiska regler för att känna igen semantiska indikatorer i exempelvis n-gram. För övervakade metoder är detta oftast det första steget, en förbearbetning av träningsexemplen som delar upp texten i lämpliga bitar och bygger upp ett sätt med egenskaper kring de olika möjliga ordbetydelserna. Anledningen att detta görs för varje inlärning och att man inte använder någon generisk databas över vektoriserade ordbetydelser är att det finns stora skillnader mellan hur maskininlärningsalgoritmerna hanterar olika klasser av egenskaper. Alla algoritmer har sina brister, och att utelämna mindre kompatibla egenskaper från 7 8
12 träningsexemplen kommer därmed bara att förbättra det slutliga resultatet. Här följer en kortfattad översikt över de olika tillvägagångssätt som vanligtvis görs inom övervakad korpusbaserad WSD. Den grundläggande skillnaden är vilka induktionsprinciper som ligger till grund för inlärningen Statistiska sannolikhetsmetoder En av de enklaste och vanligaste algoritmerna för maskininlärning av språkregler är Naive Bayes-algoritmen, som baserar sig på statistisk sannolikhet. Den är ett typiskt exempel på en statistisk metod för WSD, och konstruerar en uppsättning sannolikhetsparameter för varje träningsexempel. Exemplen sorteras därefter i kategorier allt efter vad som kan maximera sannolikhetsvärdet för en korrekt disambiguering. Exempelvis kan man rimligen anta att verbs egenskaper i högre grad placeras i syntaktiska kategorier, eftersom det ofta finns en syntaktisk relation mellan verb och vilka andra ordklasser som finns med i den omedelbara kontexten, medan de flesta substantiv kanske passar bättre i semantiska kategorier. Det finns dock ingen principiell indelning enligt ordklasser, utan den görs enbart mot bakgrund av statistisk resultatmaximering Likhetsprincipen Metoder baserade på likhetsprincipen utgår helt enkelt ifrån en modell, vanligtvis så kallad vektorrumsmodell, som säger hur lika två exempel är varandra, och hur nära ett stycke text som skall disambigueras ligger exemplen. Beräkningen inleds normalt med skapandet av en prototyp av vektoriserade egenskaper för varje ordbetydelse och sedan skapas en databas med olika exempel som grupperas efter likhet. Den vanligaste algoritmen för detta är knn där k är en siffra som säger hur många exempel ett ord skall likna och NN står för Nearest Neighbours. knn-algoritmen anses vara mycket användbar, bland annat eftersom den inte gör någon generalisering när den skapar exempel och på såsätt inte bortser från undantag, vilket det tenderar att finnas många av i naturliga språk Diskrimineringsregler Något enklare än vektormodeller är att bygga diskrimineringsregler, som är uppsättningar av beslutslistor eller -träd. I sin grundläggande form kan en beslutslista beskrivas som en viktad ifthen-else-sats, det vill säga som en lista med regler i en viss ordning där en regel bara används om ett ord inte mötte användningskriterierna för de föregående reglerna. Regler för speciella undantag kommer normalt i början, och till sist kommer en standardregel som bara gäller om inga andra regler gör det. Vikten som beledsagar varje regel utvinns från träningsexemplen och säger helt enkelt hur sannolikt det är att regeln är korrekt om villkoren uppfylls. 9
13 2.2.4 Regelkombinationsmetoder Eftersom de flesta metoder har brister är det naturligt att kombinera dessa i olika konstellationer för att jämna ut deras svagheter och, i bästa fall, välja regler från den metod som är mest lämpad för en given situation. Flera försök har gjorts med detta, och en av de mest lyckade är AdaBoostalgoritmen. Denna kombinerar flera klassifierare, som t.ex. diskrimineringsregler och statistiska regler, med förtroendevärden som specifierar hur tillförlitlig en given klassifierare är i ett givet fall. Att använda regelkombinationer har visat sig vara mer träffsäkert än enskilda metoder, men än så länge bara marginellt (Agirre and Edmonds 2007). Det är därmed inte givet att det lönar sig i praktiken eftersom det krävs avsevärt mer resurser att köra flera inlärningsalgoritmer parallellt Linjära klassifierare Linjära (binära) klassifierare påminner om likhetsmetoder i det att varje betydelse är representerad av vektorer i ett mångdimensionellt rum. Den stora skillnaden är att betydelserna väljs ut efter närheten till en prototyp som gradvis byggs upp istället för basera urvalet på jämförelse av exempel. Linjära klassifierare har använts mycket inom informationssökning (vanligtvis betecknat IR efter engelskans Information Retrieval) men relativt lite forskning har gjorts på rena linjära modeller Kärnbaserade metoder Kärnbaserade metoder kan ses som en utvidgning av linjära klassifieringsmetoder där även ickelinjära funktioner tas i bruk. Med hjälp av så kallade kärnfunktioner klarar man att begränsa funktionernas omfång till relevant data, något som gör dessa metoderna tämligen effektiva. Kärnbaserade metoder har fått mycket spridning de senaste åren och låg bakom flera av de bästa resultaten under Senseval Oövervakade korpusbaserade metoder I en oövervakad metod har inte träningskorpusen taggats. Istället för att använda taggar väljer sådana metoder en ordbetydelse baserad på information från rå text. Denna process kan vara antingen typ-baserad, i den meningen att den identifierar en grupp av relaterade ord, eller förekomst-baserad, att den väljer bland ordbetydelser som förekommer i olika sammanhang. Fördelen med oövervakade metoder är att de undviker kunskapsflaskhalsen, men samtidigt kräver de många iterationer av träning och stora mängder text för att prestera i närheten av det övervakade metoder gör. Inom de oövervakade metoderna finns det huvudsakligen två alternativa riktningar. Den ena är de distributionella metoderna, som gör distinktioner i ordbetydelser baserat på antagandet 10
14 att ord som dyker upp i liknande sammanhang också har liknande betydelser. Den andra är de översättningsekvivalenta metoderna, vilka är baserade på parallellkorpusar och identifierar översättningar av ett ord till ett målspråk som beror på en viss betydelse av ordet i källspråket Distributionella metoder Distributionella metoder är i princip en maskinell ekvivalens till det arbete en lexikograf gör. Det första steget är att hitta förekomster av ett givet ord i olika sammanhang. Kontexterna som identifieras delas sedan in i olika kluster, baserat på hur de liknar varandra (distributionell karakteristik). Klustren som identifieras motsvarar de olika betydelserna av ordet och bildar utgångspunkten för definitionerna. Det finns på såsätt inget förutbestämt om indelningen, utan metoden, på samma sätt som lexikografen, bestämmer hur många olika betydelser ett ord har utifrån materialet. Det andra steget är att på något sätt studera de olika klustren och bestämma vilka definitioner som skall tillämpas. Medan detta är något som mänskliga lexikografer är bra på, har maskinella tillämpningar fortfarande inte möjlighet att prestera något motsvarande (Agirre and Edmonds 2007). En lösning på problemet med att tagga klustren och bestämma själva definitionerna är att ta utgångspunkt i en förhandsdefinierad lista av betydelser, som t.ex. WordNet. Detta kan dock inte anses som en oövervakad metod, eftersom den baserar sig på manuellt taggad information, och står därmed inför samma utmaningar som kunskapsbaserade och övervakade metoder: Man är begränsad till de få betydelselistor som finns, på de språk som de finns för, och samtidigt överlämnad till en given indelning av betydelser som kanske inte är lämpad för alla situationer. En annan och vanligare lösning är att helt enkelt utvinna definitionen från kontexten. Det är här som typ- och förekomstbaserade metoder skiljer sig åt Typbaserade metoder I typbaserade metoder genereras en uppsättning ordtyper som tenderar att figurera i samma sorts kontext. Denna lista blir då själva definitionen av varje ordbetydelse. Exempelvis skulle ordet fil kunna få en definition som är [fil, trafik, bil, väg] och en annan som är [fil, frukost, müsli, äta]. Sådana metoder kallas typbaserade därför att klustren inte innehåller information om individuella ords förekomster, utan enbart om relationen mellan orden. Målet med typbaserade metoder är att på såsätt fånga ords kontextuella likhet. För varje ord som skall disambigueras byggs det upp en profil som representerar deras möjliga kontexter. Mer konkret skapas en matris som innehåller i första hand samförekomster av ord, både bigram och oordnade sådana. I tillägg är det vanligt att inkludera en eller flera associationsmätningar, till exempel den så kallade log-likelyhood ratio, som indikerar hur sannolikt det är att en given samförekomst av två ord är ett bigram och inte en slumpmässig samförekomst. När profiler har skapats för alla relevanta ord i texten bildas så definitionslistorna, baserad på vilka profiler 11
15 som liknar tillräckligt på varandra; eftersom de finns i relaterade kontexter antas det att de har relaterade betydelser. Det finns huvudsakligen tre algoritmer som är vanliga inom typbaserad WSD (Agirre and Edmonds 2007): Latent Semantic Analysis (LSA), Hyperspace Analogue to Language (HAL) och Clustering by Committee (CBC). Medan alla tre representerar samförekomster av ord som vektorer i en mångdimensionell rymd, använder LSA och HAL enbart en vektor för att representera varje ord och kan därmed inte hantera polysemi i texten. Målet med dessa algoritmer är snarare att bestämma vilka ord som är relaterade, samt vilken betydelse som dominerar i en given text. I CBC identifieras däremot flera kluster per ord, vilket möjliggör disambiguering på en polysemisk nivå. För att kunna göra detta analyseras kontexten även syntaktiskt. CBC är därmed inte helt oövervakad som LSA och HAL, eftersom den även använder en manuellt skapad syntaktisk parser, men har i övrigt många likheter med dem. Eftersom både LSA och HAL inte skiljer på polysemi anses typbaserade metoder i allmänhet vara bäst lämpade för disambiguering inom domänspecifika områden, där en given betydelse av ett ord anses dominera. Det är dock allmänt vedertaget att även en algoritm som konsekvent väljer ut den oftast förekommande betydelsen är en mycket bra standard för WSD (Agirre and Edmonds 2007). Typbaserade metoder lyckas speciellt väl med detta inom domänspecifika texter eftersom de inte gör någon bedömning av vad som är vanligt i språket i allmänhet, utan enbart utgår ifrån texten i fråga Förekomstbaserade metoder I motsats till typbaserade metoder, klustrar förekomstbaserade metoder ihop hela kontexter. Att de kallas förekomstbaserade beror just på att varje kontext, och därmed varje förekomst av varje ord, bevaras i ett kluster. Dessa metoder taggar dock inte klustren och det krävs att en människa går in och gör det. Ofta är det också så att en viss grad av klustring av ordförekomster kan vara nödvändig innan typer kan hittas genom typbaserade algoritmer. Två av de tidigaste förekomstbaserade tillvägagångssätten var Context Group Discrimination (CGD) och en implementation av McQuitty s Similarity Analysis (MSA) (Agirre and Edmonds 2007). CGD utgår ifrån LSA-algoritmen som redan använts i typbaserad diskriminering, men lägger till ytterligare två vektorrymder. Med utgångspunkt i ordvektorerna, som är samförekomstmatriser liknande de som görs med LSA och HAL, skapas först en kontextvektor. Denna konstrueras helt enkelt genom att slå ihop ordvektorerna från alla ord i en given kontext och räkna ut ett medelvärde, som då bildar en ny vektor. Med denna vektor får man en representation av andra ordningens samförekomst, dvs. ord som förekommer tillsammans med ett givet samma andra ord. Exempelvis förekommer det engelska ordet crude tillsammans med både oil och sugar. Oil och sugar har då en andra ordningens samförekomst. Huvudargumentet för att använda dessa är att bigram inte förekommer tillräckligt ofta, och det är därmed större chans för 12
16 att upptäcka semantiska relationer genom att även inkludera andra ordningens samförekomster (Agirre and Edmonds 2007). När alla kontextvektorerna har skapats används en klusteralgoritm som räknar ut likheten mellan olika kontexter och resultatet är en tredje vektorrymd bestående av betydelsevektorer. Varje betydelsevektor representerar en enskild betydelse av ett givet ord. MSA bygger också upp vektorer, men dessa är däremot mindre baserad på samförekomster än CGD och består istället av flera egenskaper, både hos ordet som skall disambigueras och orden i den övriga kontexten. De data som MSA hämtar in, i tillägg till samförekomster, är den morfologiska formen av målordet, ordklass för närliggande ord samt övriga kollokationer. Själva algoritmen använder sedan denna data för att diskriminera mellan olika ordbetydelser. Det vanliga med sådana algoritmer är att de först utgår ifrån att alla förekomster representerar en unik betydelse, och kör sedan flera iterationer över texten. För varje iteration slås olika kluster ihop, baserad på likhetsanalysen som är inbakad i algoritmen, tills programmet når en satt gräns. När gränsen nås sitter man kvar med ett antal olika kluster, som vart och ett representerar en given betydelse för ett ord. Huvudutmaningen för förekomstbaserade metoder är att de inte taggar de olika kluster som byggs upp. För att göra det måste man antingen manuellt gå igenom resultaten, eller såfår man kombinera dem med något redan existerande lexikon, vilket är mycket svårare att koppla till kluster än till enskilda ord. Om man skall använda lexikon är det därför vanligt att kombinera typ- och förekomstbaserade algoritmer. Båda tar iallafall bort poängen med en oövervakad metod. En fördel med denna brist på koppling till existerande lexikon är dock att man slipper dilemmat med fördefinierade betydelsedistinktioner, som inte alltid är de bästa för en given situation. Det innebär att även om det är svårt att evaluera förekomstbaserade metoder och att de inte är det optimala valet för generisk WSD, så kan det vara mycket frigörande att inte vara bunden till redan existerande orddistinktioner. Oövervakade metoder är på såsätt mycket användbara i specifika situationer där man inte har något direkt behov av mänskligt definierade distinktioner, till exempel inom informationssökning eller maskinöversättning Översättningsekvivalens Oövervakade korpusbaserade metoder har även använts inom maskinöversättning, och baseras då på översättningsekvivalens. Detta innebär att man utgår ifrån en parallellkorpus, en samling med texter som finns tillgängliga på flera språk. Med hjälp av denna tränas så in regler som specifierar hur det skall översättas från ett språk till ett annat. Texterna måste dock vara översatta på ett sådant sätt att det är möjligt att länka dem. Det betyder i praktiken att till exempel en roman inte skulle vara särskilt lämpligt material, eftersom översättning av skönlitterära texter nödvändigtvis innebär en hel del omskrivning för att behålla den litterära kvaliteten. En stor utmaning för maskinöversättning baserad på översättningsekvivalens är därför att det inte finns tillräckligt med parallella texter att använda som inlärningsmaterial. Själva länkningssprocessen är normalt tredelad. Först görs en länkning på meningsnivå, vil- 13
17 ket det idag finns pålitliga metoder för att göra. Att länka själva orden är dock betydligt svårare, till en sådan grad att det har diskuterats huruvida WSD alls är lämplig för maskinöversättning. Under 2000-talet har det dock gjorts lyckade försök på att länka parallellkorpusar ord för ord för ett antal språk (Agirre and Edmonds 2007). Efter länkningen byggs så en träningskorpus där lexikala och syntaktiska egenskaper för de motsvarande orden ingår. Utifrån detta skapas sedan översättningsregler, antigen helt maskinellt eller i en kombination med övervakade inlärningsalgoritmer. 2.4 Kombinationer På grund av bristen på träningsdata är det också vanligt att använda en kombination av övervakade och oövervakade metoder. Man börjar då med antigen en mindre träningskorpus eller en begränsad uppsättning regler och skapar en större databas från detta, en klassifierare. Utifrån klassifieraren bygger programmet upp en större mängd data där vissa betydelser markeras som säkra och andra som mindre säkra. Dessa kan återigen matas in i klassifieraren genom flera iterationer tills hela korpusen har taggats med säkra träffar Bootstrapping En speciellt lyckad kombinationsmetod är den så kallade Yarowsky Bootstrapping Algorithm (YBA). Den betecknas normalt som en semi-övervakad metod eftersom den börjar med ett litet sätt av taggade exempel och utökar sedan omfånget till att gälla fler och fler otaggade exempel. Denna metod illustrerar mycket väl det tillvägagångssätt som löser bootstrapping-problemet, alltså hur man kan bygga upp det nödvändiga initiala underlag som krävs för att en automatiserad WSD-algoritm skall kunna disambiguera i enlighet med fördefinierade betydelsedistinktioner gjorde av människor. YBA är också ett typexempel på en iterativ och inkrementell algoritm. Utgångspunkten är en relativt liten grupp exempel som har taggats, en större grupp exempel som inte har taggats och en inlärningsalgoritm som skapar beslutslistor. För varje iteration lär sig algoritmen några nya betydelsedistinktioner. De den inte är säker på, dvs. de som inte når en satt nivå av träffsäkerhet, förkastas tillsvidare. Under nästa iteration har algoritmen därmed mer data att basera analysen på, och träffsäkerheten för de olösta ambiguiteterna ökar successivt. För att beräkna träffsäkerheten används flera av de algoritmer som ingår i kunskapsbaserade metoder, speciellt heuristiska algoritmer som en betydelse per kollokation. 3 Implementation av Lesk-algoritmen Som tidigare nämnt är Lesk-algoritmen en av de första och mest kända kunskapsbaserade algoritmerna för WSD. Eftersom den även är relativt enkel att implementera är det ett rimligt val av 14
18 algoritm för att undersöka och demonstrera hur WSD kan göras i praktiken. Själva algoritmen är tämligen grundligt beskriven i sektion 2.1.1, så jag tänker inte återupprepa något om den här. Min källkod för programmet återges i sin helhet i sektion Beskrivning av arbetet Arbetet med att implementera en algoritm börjar rimligtvis med att studera och försöka förstå algoritmen. Av alla algoritmer som jag har berört i uppsatsen är Lesk den som jag inte bara anser vara enklast att implementera, men också den som bäst illustrerar hur WSD kan fungera. Jag har kommenterat min kod grundligt och hoppas den skall vara tydlig och informativ även för de som inte har någon erfarenhet av programmering. Eftersom min egen bakgrund som programmerare också är mycket begränsad har jag förhållit mig till det språk och de verktyg som jag har erfarenhet av. Programmeringsspråket Python och modulen NLTK var därför ett naturligt val. I tillägg till att vara särskilt lämpat för nybörjare har Python även en stor användarbas inom språkteknologi, och dess läsbarhet gör det utmärkt som pedagogiskt verktyg för att demonstrera en implementation som denna. NLTK innehåller en stor mängd korpusar och verktyg för att hantera dessa. Inbyggd finns bland annat klassiska romaner, tidningsartiklar, politiska tal, tekniska texter, samt den semantiska databasen WordNet. WordNet är den idag största och mest använda semantiska databasen för språkteknologisk forskning och innehåller, i tillägg till betydelsedistinktioner och definitioner på dessa, flera semantiska relationer så som hyperonym, hyponym, holonym, antonym, samt verktyg för att beräkna likhet mellan ordpar. Flera av metoderna beskrivna i denna uppsats har huvudsakligen testats med WordNet. Idealiskt vore naturligtvis att disambiguera på svenska, men på grund av bristen på väldokumenterade databaser och verktyg bestämde jag mig för att använda WordNet och därmed engelska. En annan fördel med att implementera algoritmen med engelska som mål är det faktum att man underlättar för andra som vill prova koden. Genom att använda ASCII för källkoden, vilket exkluderar alla accentuerade tecken med mera, är det nämligen oproblematiskt att köra samma kod på olika datorer och operativsystem. I dagsläget är det huvudsakligen bara GNU/Linuxsystem som använder unicode, en teckenkodningstabell som stödjer de allra flesta tecken som förekommer i de allra flesta språk, som standard. För att bevara ASCII-enkodningen har jag även använt engelska kommentarer i koden. För att köra koden behövs Python, med NLTK installerad. Från Pythons hemsida finns utförliga beskrivningar för hur man installerar programmet i ett antal operativsystem. Jag valde att implementera den ursprungliga varianten av Lesk-algoritmen. Anledningen till detta är först och främst för att den är enkel att testa. Istället för en hel träningstext behöver den bara två ord, ett ordpar, som den slår upp definitionerna för. Den förenklade Lesk-algoritmen har visserligen visat sig att vara mer effektiv, men för denna behöver man en större text som under- 15
19 lag. Det lär dock vara relativt enkelt att modifiera koden för att anpassa den till den förenklade Lesk-algoritmen. Själva arbetet med implementeringen innebar i stor del att formulera proceduren inom Pythons ramar. Programmet börjar med att fråga användaren efter två ord. Dessa måste nödvändigtvis finnas med i en engelsk ordlista för att kunna disambigueras. Det första algoritmen gör är att slå upp orden i WordNet och hämta alla olika betydelser dessa kan ha. Varje betydelse för varje ord sparas så internt i programmet, i datatypen dictionary så att man kan lägga till ett värde för varje betydelse. Detta värdet sätts så initialt till 0 och anger hur många förekomster av ett givet ord från en definition som finns med i en definition för det andra ordet i ordparet. Huvuddelen av programmet, och det som krävs mest resurser, är en loop som tokeniserar varje definition och räknar förekomster av ord i dem. Varje definition för varje betydelse jämförs mellan båda orden, och för varje gång ett ord förekommer i en definition för båda orden får dessa betydelserna en extra poäng tillagt till sitt värde. När alla definitioner gåtts genom plockar programmet ut den betydelse för varje av de två orden som har fått flest poäng och presenterar resultatet för användaren. Om flera betydelser har samma högsta poängsumma ges en lista med dem alla. Om inga betydelser får poäng alls får användaren veta detta. För ytterliga detaljer hänvisar jag till källkoden i Appendix A. 4 Slutsatser Under sammanställningen av de olika metoder som finns för WSD var det uppenbart att de alla har stora brister, vilket också är tydligt från de resultat som framkommit under Sensevaltävlingarna. Det största problemet lär därmed vara att ta fram en metod som på ett tillförlitligt sätt kan fungera som en generisk WSD-implementation och hantera alla sorters text och användningsområden. Däremot kan vissa av bristerna fungera som en fördel för vissa tillämpningar, vilket exempelvis är fallet med oövervakade metoder för maskinöversättning, eftersom dessa då inte behöver korrespondera med fördefinierade betydelsedistinktioner. Medan kunskapsbaserade metoder har den största potentialen för att göra korrekta bedömningar är det också så att dessa i störst grad beror på regler definierade av människor och därmed lider av kunskapsflaskhalsen. Övervakade metoder är de som idag presterar bäst resultat i de evalueringar som finns, men även för dessa är bristen på taggade exempel att lära ifrån påfallande. Oövervakade metoder saknar denna begränsning men det är därmed också svårt att relatera dem till redan existerande betydelsedistinktioner. Det jag ser för mig som den bästa lösningen är därför att kombinera metoder från alla tre områden, så som Yarowskys Bootstrapping Algorithm. Man kan då gradvis bygga upp en kunskapsdatabas av regler med hjälp av oövervakade metoder som initieras genom övervakad maskininlärning. När det gäller min implementation upplevde jag att valet av algoritm och programmeringsspråk var optimala för syftet. Pythons enkelhet och läsbarhet kombinerat med den kraftfulla 16
20 modulen NLTK gjorde att utmaningen med att implementera Lesk-algoritmen gick tämligen smidigt. Utan större problem fick jag programmet att bete sig i enlighet med mina förväntningar. Det som visade sig vara det största problemet var däremot WordNet. Definitionerna av orden är helt enkelt inte tillräckligt långa, och många uppenbara kopplingar görs inte. Till exempel klarade inte mitt program att disambiguera det klassiska ordparet pine cone, på grund av att den relevanta betydelsen av cone inte alls fanns med i WordNet. Ordparet cat dog gav också ett oväntat resultat, nämligen definitionerna an informal term for a youth or man och informal term for a man, respektive. Ett av få ordpar som disambiguerades enligt mina förväntningar var bank och funds som gav resultatet a financial institution that accepts deposits and channels the money into lending activities och a reserve of money set aside for some purpose. Jag tänker därför att det är rimligt att dra en liknande slutsats som för min sammanställning ovan, nämligen att bristen på digitaliserad kunskap i ett maskinläsbart format är det största problemet för att kunna skapa välfungerande WSD, och det är på detta problem vi bör sätta in våra resurser för att lösa. 17
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.
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ö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
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
Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi
Maskininlärning med boostrapping Maskininlärningslabb i Språkteknologi Abstrakt Vi undersöker, med hjälp av maskininlärningslabben från denna kurs, hur pass bra resultat bootstrapping ger i samband med
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
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Cristina Eriksson oktober 2001
Maskinöversättning Cristina Eriksson 660719-4005 d98-cer@nada.kth.se 15 oktober 2001 1 Sammanfattning Att låta en maskin översätta från ett språk till ett annat är ett forskningsområde som man lägger ner
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
Kungliga Tekniska Högskolan 2006-03-26. Patrik Dallmann 821107-0274
Kungliga Tekniska Högskolan 2006-03-26 Patrik Dallmann 821107-0274 Patrik Dallmann dallmann@kth.se Inledning Syftet med detta arbete är att undersöka metoder för att upptäcka syftningsfel i vanlig text.
Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA
Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Evelina Andersson 18 maj 2011 1 Introduktion Att träna mycket för att bli duktig på ett språk
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,
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...
Word sense disambiguation med Svenskt OrdNät
MAGISTERUPPSATS I BIBLIOTEKS- OCH INFORMATIONSVETENSKAP VID BIBLIOTEKS- OCH INFORMATIONSVETENSKAP/BIBLIOTEKSHÖGSKOLAN 2006:34 ISSN 1404-0891 Word sense disambiguation med Svenskt OrdNät JENS CHRISTIANSSON
Regression med Genetiska Algoritmer
Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet
Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, , 15 oktober 2001
Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, 761029-0178, jsh@nada.kth.se 15 oktober 2001 1 Bakgrund 1.1 Kort om taggning Taggning innebär att man ger
ENGA01: Engelska grundkurs, 30 högskolepoäng Studiebeskrivning
ENGA01: Engelska grundkurs, 30 högskolepoäng Studiebeskrivning Kursen består av följande delkurser vilka beskrivs nedan: Litteratur, 6 högskolepoäng Grammatik och översättning, 9 högskolepoäng Skriftlig
Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
Med Zipf mot framtiden En integrerad lexikonresurs för svensk språkteknologi
Med Zipf mot framtiden En integrerad lexikonresurs för svensk språkteknologi Lars Borin Språkbanken Inst. för svenska språket Göteborgs universitet Schæffergårdssymposiet 30/1 2010 bakgrund och förutsättningar
Kapitel 5. Scanlon bemöter delvis invändningen genom att hävda att kontraktualistiskt resonerande är holistiskt.
Men stämmer det att man har skäl att förkasta en princip endast om det vore dåligt för en om den blev allmänt accepterad? En intressant tillämpning i sammanhanget är det som Scanlon kallar fairness. Han
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
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Kunskapsgraf. Fredrik Åkerberg j.f.akerberg@gmail.com. Tommy Kvant tommy.kvant@gmail.com. 1 Introduktion. 2 Relaterade projekt.
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å
ENGA01: Engelska grundkurs, 30 högskolepoäng Studiebeskrivning
ENGA01: Engelska grundkurs, 30 högskolepoäng Studiebeskrivning Kursen består av följande delkurser vilka beskrivs nedan: Litteratur, 6 högskolepoäng Grammatik och översättning, 9 högskolepoäng Skriftlig
LÄRARHANDLEDNING EN NATT I FEBRUARI. Mittiprickteatern Box 6071, 102 31 Stockholm 08-15 33 12 info@mittiprickteatern.se www.mittiprickteatern.
LÄRARHANDLEDNING EN NATT I FEBRUARI Mittiprickteatern Box 6071, 102 31 Stockholm 08-15 33 12 info@mittiprickteatern.se www.mittiprickteatern. En natt i februari av Staffan Göthe Lärarhandledning Syftet
Hare Del II (Metod) kunskap om hur det skulle vara för mig att befinna mig i deras. "reflektionsprincipen" (dock ej av H). Den säger följande: för att
Syftet med denna del är att utveckla och försvara en form av preferensutilitarism, vilken kan identifieras med kritiskt tänkande. Den huvudsakliga framställningen är i kap. 5-6. En senare kort sammanfattning
Introduktion till frågespråket SQL (v0.91)
DD1370: Databaser och Informationssystem Hösten 2014 Petter Ögren Introduktion till frågespråket SQL (v0.91) 13:e November Disclaimer: Dessa anteckningar har producerats under viss tidspress, och kan därför
Lexikal semantik. Lingvistik 1. Hanna Seppälä Uppsala universitet 1
Lexikal semantik Lingvistik 1 Uppsala universitet 1 Nyckelord idag Semantiska egenskaper Komponentanalys Prototypteori Relationer mellan ord Kognitiv lexikal semantik Uppsala universitet 2 Semantiska egenskaper
Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp
Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp Dag Wedelin, bitr professor, och K V S Prasad, docent Institutionen för data- och
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Introduktion till programmering och Python Grundkurs i programmering med Python
Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?
Vinjetter TDDC91 Datastrukturer och algoritmer
Vinjetter TDDC91 Datastrukturer och algoritmer 17 augusti 2015 2 Scenario 1 Man har inom Posten Logistik AB skrivit programvara för sortering av kundinformation och vill standardisera användningen av sorteringsalgoritmer.
HUMANISTISKA FAKULTETEN. Språkteknologi, masterprogram, högskolepoäng
Utbildningsplan Dnr G 2017/293 HUMANISTISKA FAKULTETEN Språkteknologi, masterprogram, 60-120 högskolepoäng Master in Language Technology (One year Programkod: H2MLT 1. Fastställande Utbildningsplanen är
12 Programstege Substantiv
Det här är en programstege för substantiv. Du kan alltså lära dig om substantiven på ett enkelt sätt, en liten bit i taget. Varje sida innehåller fakta om substantiv, tillsammans med uppgifter som du också
Excel-guide. Introduktion
Excel-guide Introduktion I denna laboration kommer ni få använda några grundfunktioner i Microsoft Excel. Laborationen utgår ifrån Excel 2010, men om ni vill använda ett annat program för att lösa uppgifterna
Random Indexing för vektorbaserad semantisk analys
Random Indexing för vektorbaserad semantisk analys ScandSum 23 Vektorbaserad semantisk analys Ord (-betydelser) som vektorer i en mångdimensionell rymd y gitarr luta ScandSum 23 x tuba Vektorbaserad semantisk
Vid Göteborgs universitet pågår sedan hösten 2013 ett projekt under
Christina Skodras Muffles truffles Undervisning i multiplikation med systematiskt varierade exempel I Nämnaren 2015:4 beskrivs ROMB-projektet övergripande i Unga matematiker i arbete. Här redovisas och
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:
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
DAB760: Språk och logik
DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg
Inlämningsuppgift: Pronomenidentifierare
1 (7) Inlämningsuppgift: Pronomenidentifierare 2D1418 Språkteknologi landes@bredband.net johnne@kth.se 1 2 (7) 1 Uppgiften... 3 2 Algoritmen i korthet... 3 3 Representation av data... 3 4 Indikatorer...
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Funktionsstudier med derivata
Funktionsstudier med derivata Derivatan ett kraftfullt verktyg för att studera och tolka funktioner Det här avsnittet handlar om att man kan använda derivatan till att bestämma en funktions egenskaper
Kapitel 4. Scanlon svarar genom att förneka att han skulle mena något sådant. (Se också introduktionen.)
Kapitel 4 En viktig invändning mot kontraktualismen: det är orimligt att påstå att handlingar är fel därför att det inte går att rättfärdiga dem inför andra. Det är snarare tvärtom. (Se s. 391n21) Scanlon
Lexikal semantik & Kognitiv semantik. Semantik: Föreläsning 2 Lingvistik: 729G08 HT 2012 IKK, Linköpings universitet
Lexikal semantik & Kognitiv semantik Semantik: Föreläsning 2 Lingvistik: 729G08 HT 2012 IKK, Linköpings universitet 1 Dagens föreläsning Saeed 2009, kap.3, 11 Lexikal semantik Lexikala relationer Kognitiv
Decentraliserad administration av gästkonton vid Karlstads universitet
Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå
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
Svensk nationell datatjänst, SND BAS Online
Pass 3: Metadata Vad är metadata? I den här presentationen kommer jag ge en introduktion till metadata och forskningsdata på ett principiellt plan. Vi kommer bland annat titta lite närmare på vad metadata
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
SKOLFS. beslutade den -- maj 2015.
SKOLFS Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan och inom kommunal vuxenutbildning på gymnasial nivå; beslutade den -- maj
Tal i bråkform. Kapitlet behandlar. Att förstå tal
Tal i bråkform Kapitlet behandlar Test Användning av hälften och fjärdedel 2 Representation i bråkform av del av antal och av del av helhet 3, Bråkform i vardagssituationer Stambråk, bråkuttryck med 1
Utvärdering av prototyp: Frågedatabas av Mårten Cronander. Innehållsförteckning
1 (6) Mottagare: Åsa Cajander Mårten Cronander Utvärdering av prototyp: Frågedatabas av Mårten Cronander Innehållsförteckning 1 Inledning 2 1.1 Ten usability heuristics 2 1.2 Severity ratings for usability
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
1 Duala problem vid linjär optimering
Krister Svanberg, april 2012 1 Duala problem vid linjär optimering Detta kapitel handlar om två centrala teoretiska resultat för LP, nämligen dualitetssatsen och komplementaritetssatsen. Först måste vi
bakgrund och förutsättningar Med Zipf mot framtiden En integrerad lexikonresurs för svensk språkteknologi återanvändning av befintliga resurser SALDO
bakgrund och förutsättningar Med Zipf mot framtiden En integrerad lexikonresurs för svensk språkteknologi Lars Borin Språkbanken Inst. för svenska språket Göteborgs universitet Schæffergårdssymposiet 30/1
1 LP-problem på standardform och Simplexmetoden
Krister Svanberg, mars 202 LP-problem på standardform och Simplexmetoden I detta avsnitt utgår vi från LP-formuleringen (2.2) från föreläsning. Denna form är den bäst lämpade för en strömlinjeformad implementering
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
Föreläsning 2. Operativsystem och programmering
Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data
729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
Extramaterial till Matematik X
LIBER PROGRMMERING OCH DIGITL KOMPETENS Extramaterial till Matematik X NIVÅ TRE Programmering LÄRRE I den här uppgiften får du och dina elever en introduktion till programmering. Uppgiften vänder sig först
Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning
Talstyrning Abstrakt Talstyrning är en teknik som gör det möjligt för oss människor att mer eller mindre verbalt kommunicera med en dator eller ett system. Det här är ett tillvägagångssätt inom AI och
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
Tekniker för storskalig parsning
Tekniker för storskalig parsning Grundläggande begrepp och metoder Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning
Automatisk identifiering av semantisk förändring med hjälp av distributionella faktorer
Automatisk identifiering av semantisk förändring med hjälp av distributionella faktorer Karin Cavallin karin.cavallin@gu.se Institutionen för filosofi, lingvistik och vetenskapsteori Göteborgs universitet
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)
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.
Programmering i C++ Kompilering från kommandoraden
Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö
Maskinöversättning möjligheter och gränser
Maskinöversättning möjligheter och gränser Anna Sågvall Hein 2015-02-17 Tisdagsföreläsning USU 2015-02-17 Anna Sågvall Hein Översikt Vad är maskinöversättning? Kort tillbakablick Varför är det så svårt?
Dialogue Technologies April 2005
Dialogue Technologies April 2005 En typisk självbetjäningstjänst för web ser ut enligt följande En inledande text för att användaren skall förstå tjänsten En aktuell lista med de 10 vanligast frågorna
TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor
TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q
Agenda. Inledning, teoretiska metoder Hierarkisk uppgiftsanalys, HTA Cognitive walkthrough CW Heuristisk evaluering
Agenda Inledning, teoretiska metoder Hierarkisk uppgiftsanalys, HTA Cognitive walkthrough CW Heuristisk evaluering Teoretiska metoder Inspektionsmetoder Teoribaserade Olika typer av walkthroughs Uppgiftsanalysmetoder
Välkomna till DIT012 IPGO
Välkomna till DIT012 IPGO 1 Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare Joachim von Hacht, hajo@chalmers.se, 772 1003 Handledare (se även kurssida) Alexander Sjösten, sjosten@chalmers.se
Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har?
Hur bestämmer man vilka fonem ett språk har? Fonologi Mattias Heldner KTH Tal, musik och hörsel heldner@kth.se (Morfem = minsta betydelsebärande enhet i ett språk) Fonem = minsta betydelseskiljande ljudenhet
Linköpings universitet Artificiell Intelligens II 729G11 HT Maskinöversättning. med hjälp av statistik. Erik Karlsson
Maskinöversättning med hjälp av statistik Erik Karlsson erika669@student.liu.se Innehåll Inledning... 1 Bakgrund och historia... 2 Historia... 2 Klassiska designer... 2 Direkt översättning... 2 Interlingua...
Föreläsning 11. Giriga algoritmer
Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Giriga algoritmer (Greedy algorithms)
729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén,
Sub-symbolisk kognition & Konnektionism Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén, mats.andren@liu.se 1 Konnektionism Neutrala nät baseras på en (förenklad) modell av hur hjärnan fungerar.
Programmeringsolympiaden 2010 Kvalificering
Programmeringsolympiaden 2010 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom
Sannolikhetslära. 1 Enkel sannolikhet. Grunder i matematik och logik (2015) 1.1 Sannolikhet och relativ frekvens. Marco Kuhlmann
Marco Kuhlmann Detta kapitel behandlar grundläggande begrepp i sannolikhetsteori: enkel sannolikhet, betingad sannolikhet, lagen om total sannolikhet och Bayes lag. 1 Enkel sannolikhet Den klassiska sannolikhetsteorin,
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
Teoretisk lingvistik och datalingvistik. Robin Cooper
Teoretisk lingvistik och datalingvistik Robin Cooper Syftet med dagens föreläsning Sammanfattning av lingvistisk teori och datalingvistik/språkteknologi Diskussion av teorins roll i olika språkteknologiska
Föreläsningsanteckningar F6
Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en
Programmera och hitta buggarna. Se video
Se video Programmera och hitta buggarna Lektionen ger en grundläggande introduktion till begreppen buggar och programmering. Ni utgår från UR:s serie "Programmera mera" och arbetar sedan med att hitta
Här är två korta exempel på situationer då vi tillämpar den distributiva lagen:
Modul: Algebra Del 8: Avslutande reflektion och utvärdering Distributiva lagen Cecilia Kilhamn, Göteborgs Universitet Distributiva lagen a (b + c) = a b + a c Den distributiva lagen kallas den räknelag
Pass 2: Datahantering och datahanteringsplaner
Pass 2: Datahantering och datahanteringsplaner Centrala områden inom datahantering I den här presentationen ska jag ta upp tre huvudsakliga områden inom datahantering och några centrala delar av dessa.
Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet
Formell logik Kapitel 1 och 2 Robin Stenwall Lunds universitet Kapitel 1: Atomära satser Drömmen om ett perfekt språk fritt från vardagsspråkets mångtydighet och vaghet (jmf Leibniz, Russell, Wittgenstein,
1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående
MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Christian Gottlieb Gymnasieskolans matematik med akademiska ögon Induktion Dag 1 1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta
1 Positivt definita och positivt semidefinita matriser
Krister Svanberg, april 1 1 Positivt definita och positivt semidefinita matriser Inom ickelinjär optimering, speciellt kvadratisk optimering, är det viktigt att på ett effektivt sätt kunna avgöra huruvida
Språkteknologi (SV2122) Föreläsning 3: Programmering i Python
Språkteknologi (SV2122) Föreläsning 3: Programmering i Python Richard Johansson richard.johansson@svenska.gu.se 29 januari 2014 översikt inledning första stegen grundläggande begrepp större byggstenar
Ett enkelt OCR-system
P r o j e k t i B i l d a n a l y s Ett enkelt OCR-system av Anders Fredriksson F98 Fredrik Rosqvist F98 Handledare: Magnus Oskarsson Lunds Tekniska Högskola 2001-11-29 - Sida 1 - 1.Inledning Många människor
Kort om World Wide Web (webben)
KAPITEL 1 Grunder I det här kapitlet ska jag gå igenom allmänt om vad Internet är och vad som krävs för att skapa en hemsida. Plus lite annat smått och gott som är bra att känna till innan vi kör igång.
Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg
Föreläsning 5: Modellering av frasstruktur 729G09 Språkvetenskaplig databehandling Lars Ahrenberg 2014-05-05 1 Översikt Introduktion generativ grammatik och annan syntaxforskning Att hitta mönster i satser
Datorlingvistisk grammatik
Datorlingvistisk grammatik Kontextfri grammatik, m.m. http://stp.lingfil.uu.se/~matsd/uv/uv11/dg/ Mats Dahllöf Institutionen för lingvistik och filologi Februari 2011 Denna serie Formella grammatiker,
Lära tillsammans som grund för utveckling erfarenheter från förskolan. Sunne 3-4 februari 2010 Katina Thelin
Lära tillsammans som grund för utveckling erfarenheter från förskolan Sunne 3-4 februari 2010 Katina Thelin Problem... Någonting man försöker undervika och om möjligt göra sig av med eller En möjlighet
Naturalism. Föreläsning Naturalismen (tolkad som en rent värdesemantisk teori) är en form av kognitivism
Naturalism Föreläsning 5 Naturalismen (tolkad som en rent värdesemantisk teori) är en form av kognitivism Som säger att värdesatser är påståenden om empiriska fakta Värdeomdömen kan (i princip) testas
Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692
Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...
FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll
FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna
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.
Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Business research methods, Bryman & Bell 2007
Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data