Statistisk Maskinöversättning eller:
|
|
- Lisa Ivarsson
- för 4 år sedan
- Visningar:
Transkript
1 729G43 Statistisk Maskinöversättning eller: Hur jag slutade ängslas (över fördjupningsuppgiften) och lärde mig hata stoppord. Jonas Hilmersson
2
3 Innehåll 1. Introduktion Datamängden Direkt maskinöversättning Ett tvåspråkigt lexikon Statistisk Maskinöversättning Diskussion Litteraturförteckning... 8
4 1. Introduktion Maskininlärning och artificiell intelligens är applicerbart i många kontexter och domäner. Med det inte sagt att det alltid är simpelt. Mänskligt (läs naturligt) språk är komplext och varierar väldigt, både inom ett språk och mellan olika språk. Även när språket skalas från en stor del av sina beståndsdelar när det återges i text. Ett lämpligt tillämpningsområde för vad som kan kallas artificiell intelligens; maskininlärning, är därmed översättning från ett språk till ett annat och det är ett fält där det har skett många framsteg bara det senaste decenniet, men där det fortfarande finns många förbättringar att göra. För den här rapporten sammanställdes en rudimentär (och det måste erkännas väldigt bristande) maskinöversättare i form av två python-skript, ett som används för att bearbeta den valda datamängden och ett som används för att översätta en mening baserat på de mått och värden som framkommer under bearbetningen av datamängden. 2. Datamängden Datamängden som användes för den här rapporten hämtades från statmt.org (European Parliament Proceedings Parallel Corpus , 2012). För att den valda modellen ska kunna tillämpas måste två korpusar som uteslutande innehåller motsvarande meningar från bägge språk användas. Som väntat så visade det sig att mängden data har stor betydelse för modellens slutgiltiga funktion och anledningen till att modellen delades upp i två separata skript var hur lång tid det tog att bearbeta datamängden när mer data inkluderades i bearbetningen. Exakt hur mycket mängden data påverkar modellens funktion är svårt att avgöra utan någon form av mått på modellens funktion och en utvärdering hindras dessutom av den långa tiden som krävs varje gång skriptet körs. 1
5 3. Direkt maskinöversättning En grundläggande typ av maskinöversättning är vad som kallas för direktöversättning (eng. Direct Translation). En översättare av den typen översätter ord för ord i en given mening baserat på statiska värden gällande endast det givna ordet. På så sätt liknar den en N-gram modell (Jurafsky & Martin, 2009, s. 117), men istället för att generera nästa ord så genererar den motsvarande ord på det språk som meningen ska översättas till. En sådan modell kan därmed sägas vara begränsad till att endast vara lämplig för att översätta språk med samma grammatiska struktur (till exempel svenska och norska). De fyra beståndsdelarna i en sådan modell kan representeras som i bilden nedan. Bild 1: Modell för direkt maskinöversättning. Den viktigaste delen, indikerat i bilden med hjälp av dess storlek är ett tvåspråkigt lexikon (Jurafsky & Martin, 2009, s. 904). Både den morfologiska analysen och den morfologiska generationen kan anta många olika former beroende på språk, typ av text och formen på den data som skripten appliceras på. Ett begränsat antal av dessa kommer diskuteras i den här rapporten. Den första morfologiska bearbetningen som övervägdes var kombinationen av engelska substantiv i bestämd form från två separata ord till en gemensam fras (från the följt av substantiv till the substantiv. Detta utelämnades i slutändan på grund av en bristande insyn i hur denna ändring i antal ord som ska jämföras påverkar resultatet. En annan morfologisk bearbetning som övervägdes var att ta hänsyn till när två ord är väldigt lika eller har motsvarande egenskaper, som till exempel en stor bokstav eller en parentes och implementera vikter för dessa på något sätt. Detta utelämnades på grund av ovisshet gällande var i processen detta ska implementeras och vilket värde vikterna skulle ha. 4. Ett tvåspråkigt lexikon Det tvåspråkiga lexikonet visade sig som redogjort för ovan vara ytterst väsentlig, inte bara för framgången hos modellen som togs fram för den här rapporten, men också för den
6 generella genomförbarheten i att ta fram en sådan modell och utformningen av det skript som skapar lexikonet utgjorde en anmärkningsvärt stor del av det hela arbetet. Den modell som implementerades för att skapa ett sådant lexikon kan representeras som en matris med ord från bägge språk i varsin axel och den gemensamma förekomsten av orden i motsvarande meningar, i varje cell. En sådan matris kan representeras grafiskt som i bilden nedan. Bild 2: Matris innehållande värden som motsvarar den gemensamma förekomsten av de bearbetade orden från bägge språken (Hiemstra, 1996, s. 24). För matrisen ovan har bara meningar med två ord använts och det holländska ordet ik har då till exempel förekommit i tre meningar där meningen på engelska har innehållit ordet I. Ett värde på 1 fördelas över alla ord i den motsvarande meningen. Detta kan vid första anblick framstå som bristfälligt, men det innebär att meningarnas grammatiska struktur inte påverkar bearbetningen och detta är också en förutsättning för den översättning som ska genomföras. Denna matris sammanställdes i skriptet som ett dictionary där ord som inte finns representerade i en motsvarande mening utelämnas, delvis för att begränsa storleken på det dictionary som skapas. Detta kan vara ett misstag. Alla ord borde kanske ha representerats med en ett visst av smoothing tillämpat för varje ord för att undvika operationer med noll senare. I modellen som användes löstes detta som sagt istället genom att de ord som hade haft värdet noll helt enkelt inte representeras, men detta leder till andra problem senare i översättningen. Det första skriptet har tre funktioner som följer nedan:
7 en funktion för att omvandla (en vald mängd) rådata till hanterbar data (i verkligheten omvandla två radseparerade textfiler med motsvarande meningar till varsin nästlad lista där varje bearbetad mening representeras av en egen lista) en funktion för att spara den bearbetade datamängden i separata filen för senare bearbetning en funktion för att skapa lexikonet i form av ett dictionary där varje nyckel är ett är ord tillhörande språk x och varje värde ett eget dictionary med varje ord tillhörande språk y som (enligt modellen) är en potentiell översättning till ordet som representeras i den yttre nyckeln, som nycklar och den uppskattade sannolikheten för att varje ord utgör den bäst lämpade översättningen, som värden (funktionen kördes två gånger, en gång för varje språk) De två första funktionerna är python-relaterade snarare än relaterade till maskinöversättning och är inte väsentliga för modellens implementation. Den tredje funktionen är då den som skapar lexikonet och den funktion som är relevant att ta del av för förståelsen av modellen. Funktionen visas nedan. def create_dictionary(x_list, y_list, x_stop_words, y_stop_words): x_to_y={} for x_sentence, y_sentence in zip(x_list, y_list): for x_word in x_sentence: if x_word.lower() not in x_to_y: x_to_y[x_word.lower()]={'word_count': 0} x_to_y[x_word.lower()]['word_count'] += 1 for y_word in y_sentence: if not ((x_word.lower() in x_stop_words) and (y_word.lower() in y_stop_words)) or ((x_word.lower() not in x_stop_words) and (y_word.lower() not in y_stop_words)): if y_word.lower() not in x_to_y[x_word.lower()]: x_to_y[x_word.lower()][y_word.lower()] = 0 x_to_y[x_word.lower()][y_word.lower()] += 1/len(x_sentence) return x_to_y Funktion 1: Den funktion som skapar det lexikon som används i modellen. Det dictionary som skapas av funktionen skulle kunna se ut som visas nedan. {'bold': {'djärv': 0.5, 'modig': 0.25, 'aldrig': 0.25}, 'when': {'när': 0,5, 'hur': 0.5, 'var': 0.5}}
8 Observera att detta är ett exempel med godtyckliga värden. Faktiska värden utelämnas i förmån för ett godtyckligt exempel på grund av dimensionerna hos det genererade lexikonet (om datamängden ska vara ens i närheten av tillräcklig och ett ord förekommer i mer än en mening så innehåller varje ords dictionary väldigt snabbt ett stort antal ord som nycklar med långa floattal som värden). Observera också att stoppord bara kan paras ihop med andra stoppord. Utan denna begränsning blir modellen i praktiken värdelös då stoppord kommer vara de mest förekommande för varje ord i datamängden (samma grupp av ett litet antal stoppord dessutom). Detta var den första morfologiska bearbetningen som implementerades och möjligtvis den mest avgörande för att modellen i slutändan skulle uppvisa någonting som ens liknar förmågan att översätta en mening. För att möjliggöra detta inkluderades två listor med stoppord i skriptet, en för varje språk. Dessa används sedan när skriptet körs för att separera de stopp-ord som skriptet stöter på (skildrat i den långa if(not)-satsen i bilden ovan). De två listor på stopp-ord, svenska respektive engelska, som användes hämtades från Ranks NL (Stopwords, 2019). 5. Statistisk Maskinöversättning En mer avancerad och användbar variant av maskinöversättning är vad som kallas för Statistisk Maskinöversättning (Statistical Machine Translation på engelska). Det är en förlängning av den modell som visas ovan som. Vid statistisk maskinöversättning så kapar man modellen vid det moment där översättningen sker i förmån för en rad uträkningar och samband som har som syfte att med hjälp av statistik och algoritmiska regler producera en bättre översättning än en den som genereras vid direkt maskinöversättning. Målet med modellen är att översätta en mening från ett språk till ett annat. Vi använder från svenska till engelska som exempel. Med hjälp av de värden som sammanställdes av det första skriptet ska vi då räkna ut sannolikheten för en engelsk mening givet en svensk mening, eller: P(E S) där E representerar en engelsk mening och S en svensk mening (observera mening och inte ord, till skillnad från vid direktöversättning).
9 Med hjälp av en tillämpning av Bayes regel (Jurafsky & Martin, 2009, s. 911)så kan vi skriva om vårt uttryck till: P(S E)P(E) Detta är uttrycket som kommer användas för den statistiska uträkningen. Det innebär att vi istället för att räkna ut sannolikheten för en engelsk mening givet en svensk mening (vilket kan anses vara det mest intuitiva) kommer räkna ut sannolikheten för den svenska meningen givet den svenska meningen och multiplicera detta med den absoluta sannolikheten för att den engelska meningen förekommer i datamängden. Vi kommer dessutom göra detta för varje engelsk mening i datamängden. Hur dessa sannolikheter räknas ut visas nedan: P(S E) = P(S E1) P(S E2) P(S El) Representerat här är produkten av sannolikheten för första ordet i den svenska meningen givet det första ordet i den engelska meningen, andra ordet i den svenska meningen givet det andra ordet i den engelska meningen, osv. P(E) = P(EI)P(E2) P(El) Representerat här är produkten av den absoluta sannolikheten för varje ord i den engelska meningen, det vill säga hur ofta varje ord i den engelska meningen förekommer i proportion till det totala antalet ord. När dessa två värden multipliceras med varandra för varje engelsk mening så bör då den mest sannolika meningen kunna urskiljas. Observera här att eventuell påverkan av ordföljden i varje mening i teorin är försumbar tack vare att vi fördelade sannolikheten på alla ord i den motsvarande meningen tidigare. Den första som tillämpas Det skript som används för att genomföra detta innehåller fyra funktioner: den första funktionen används för att läsa de filer som skapades av det första skriptet den andra funktionen räknar ut hur många ord som finns totalt i datamängden
10 den tredje funktionen räknar ut P(S E) för varje mening med hjälp av det lexikon som sammanställdes av det första skriptet den fjärde funktionen räknar ut P(E) med hjälp av en ordräknare som inkluderades i lexikonet och den summa som returneras av den andra funktionen Nedan visas de senare tre funktionerna: def calculate_total_word_count(word_dict): total = 0 word_count_dict = {} for word in word_dict: if word not in word_count_dict: word_count_dict[word] = 0 word_count_dict[word] = word_dict[word]['word_count'] total += word_dict[word]['word_count'] return (total, word_count_dict) def translate_sentence(x_sentence, y_sentences, y_words, y_words_count, y_words_total): translation = "" max_p = 0 for y_sentence in y_sentences: P_X_Y = 1 for y_word, x_word in zip(y_sentence, x_sentence): if x_word.lower() in y_words[y_word.lower()]: P_X_Y *= y_words[y_word.lower()][x_word.lower()] if P_X_Y!= 0: P_Y = calculate_p_y(y_sentence, y_words_count, y_words_total) P_Y_P_X_Y = P_Y * P_X_Y if (P_Y_P_X_Y > max_p): if P_X_Y > max_p: max_p = P_X_Y translation = ' '.join(y_sentence) return translation def calculate_p_y(sentence, words_count, words_total): P_Y = 1 for word in sentence: if word.lower() in words_count: P_Y *= words_count[word.lower()] return P_Y//words_total Resultatet av den tredje och fjärde funktionen för varje mening multipliceras och den mening som uppskattas ha högst sannolikhet returneras och ska då utgöra en lämplig översättning för den svenska meningen. I teorin.
11 6. Diskussion Så här långt kom jag inte i mitt arbete. Mitt skript kan inte genomföra uträkningarna som krävs för att räkna ut P(E) på grund av det stora antal decimaler som krävs. Jag tror inte att det är en faktisk begränsning i python, utan att jag bara inte har hittat lösningen. Det går att köra skriptet om dessa uträkningar exkluderas, men även då är modellen långt ifrån funktionell. Jag skulle säga att jag tror att modellen har all potential att fungera, så länge den har tillgång till tillräckligt mycket data. Saken är den att det finns så otroligt många variationer på hur en mening kan se ut och att behandla eller ens är inte tillräckligt för att göra en sådan gissning som den här modellen gör och om jag ökar datamängden som behandlas så får jag memory errors. Därmed inte sagt att modellen är obrukbar. Det finns många förbättringar som kan göras för att effektivisera skripten och heuristiker och morfologisk bearbetning som har potential att förbättra databearbetningen samt uträknandet av sannolikheten för varje mening och därmed potentiellt förbättra översättningen. 1. LITTERATURFÖRTECKNING European Parliament Proceedings Parallel Corpus (den 15 May 2012). Hämtat från statmt.org: Hiemstra, D. (1996). Using statistical methods to create a bilingual dictionary. Enschede: University of Twente. Jurafsky, D., & Martin, J. H. (2009). Speech and Language Processing. Upper Saddle River: Pearson Education. Stopwords. (den 14 April 2019). Hämtat från Ranks NL:
Dependensregler - Lathund
Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas
Läs merJohan Karlsson Johka490. Statistical machine translation JOHAN KARLSSON
Johan Karlsson Johka490 Statistical machine translation JOHAN KARLSSON Innehåll Introduktion... 2 Bakgrund... 3 Statistiska maskinöversättningssystem... 3 Hur ett SMT-system fungerar... 4 Motsvarighetsmodell
Läs merTaltaggning. Rapport av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003
Taltaggning av Daniel Hasselrot 781105-0157, d98-dha@nada.kth.se 13 oktober 2003 Sammanfattning Denna rapport är skriven i kursen Språkteknologi och behandlar taggning av årtal i en text. Metoden som används
Läs merCristina 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
Läs mer2012-05-10. Mekaniskt lexikon, patenterat av George Artsrouni på tidigt 1930 tal Perforerade pappersband och avläsningsnockar 1 ord per 3 sekunder
Mekaniskt lexikon, patenterat av George Artsrouni på tidigt 1930 tal Perforerade pappersband och avläsningsnockar 1 ord per 3 sekunder 1 Leibniz, tidigt 1600 tal Descartes, tidigt 1600 tal Petr Smirnov
Läs merLinkö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...
Läs mer- ett statistiskt fråga-svarsystem
- ett statistiskt fråga-svarsystem 2010-09-28 Artificiell intelligens II Linnea Wahlberg linwa713 1 Innehåll Introduktion... 1 Grundprinciper för asked!... 2 Retrieval model... 4 Filter model... 6 Komponenter...
Läs merFuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping
Fuzzy Logic När oskarpa definitioner blir kristallklara Linköpings Universitet Linköping Sammanfattning I denna fördjupningsuppgift har jag fokuserat på Fuzzy Logic och försökt att beskriva det på ett
Läs merMaskinöversättning 2008
Maskinöversättning 2008 F4 Översättningsstrategier, forts + Återanvändning av översättning LABEL byta SOURCE =byta.vb.1 TARGET =change.vb.1 TRANSFER LABEL byta-filter SOURCE
Läs merGränssnitt för FakeGranska. Lars Mattsson
Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken
Läs merTentamen 2016-01-13. Marco Kuhlmann
TDDD02 Språkteknologi för informationssökning (2015) Tentamen 2016-01-13 Marco Kuhlmann Denna tentamen består av 10 frågor. Frågorna 8 10 ligger på en högre kunskapsnivå än de övriga och kräver utförliga
Läs merKursplaneöversättaren. Lina Stadell
Kursplaneöversättaren Lina Stadell lina.stadell@convertus.se 2017-11-13 Innehåll Allmänt Språkliga resurser Översättningsprocessen Översättningsproblem Stavningskontroll Allmänt Bygger på egenutvecklad
Läs merIntroduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Läs merAlla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Läs merInstruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,
Läs merGrundläggande textanalys. Joakim Nivre
Grundläggande textanalys Joakim Nivre Om kursen Ni har hittills läst Lingvistik Datorteknik Matematik Språkteknologiska tillämpningar Nu ska vi börja med språkteknologi på allvar Hur gör man text hanterbar
Läs merMÖSG ht 2005 Maskinöversättningssystemet MATS
MÖSG ht 2005 Maskinöversättningssystemet MATS Per Weijnitz perweij@stp.ling.uu.se Om detta kursmoment främja förståelse av översättningsproblem MÖ-arbete regelbaserade MÖ-system godtyckligt valt system?
Läs merProjekt i språkteknologi Projektförslag Johanna Karlsson joka1954
Projekt i språkteknologi Projektförslag Johanna Karlsson 870411-7129 joka1954 1. Inledning Opus är en växande parallell korpus med data från många olika språk (Tiedemann, 2009). Data som finns i OPUS i
Läs merMMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Läs merInledning. 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.
Läs merInlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Läs merLINKÖPINGS UNIVERSITET 729G11, Artificiell Intelligens II, HT10 SMT. En fördjupning i statistiska maskinöversättningssystem
LINKÖPINGS UNIVERSITET 729G11, Artificiell Intelligens II, SMT En fördjupning i statistiska maskinöversättningssystem johka299@student.liu.se 2010-10-01 Innehållsförteckning 1. Introduktion till översättning...
Läs merb) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.)
LINKÖPINGS TEKNISKA HÖGSKOLA Tekniska fakultetskansliet FÖRSLAG TILL PROGRAMNÄMND INFÖR ÅR NÄMND/NÄMNDER: Förslagsställare (Namn, funktion, Inst/Enhet) FÖRSLAGET GÄLLER: a) EXISTERANDE KURS (Ange kurskod
Läs merMaskininlä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
Läs merConvertus - kursplaneöversättning
Utbildningsavdelningen 2017-10-25 Convertus - kursplaneöversättning Innehåll Om Convertus kursplaneöversättning... 2 Så fungerar det... 2 Tre olika användarroller... 2 Arbetsgång... 3 Filnamn... 3 1. Beställa
Läs merIntroduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser
Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och
Läs mer729G04 Programmering och diskret matematik
Tentamen 729G04, 2013-02-15 1(9) 729G04 Programmering och diskret matematik Tentamen 2013 02 15 kl 14.00 19.00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker Uppgifter:
Läs merApplikationsexempel Timer med tryckknapp
Applikationsexempel Timer med tryckknapp Document title Document Identity 4655_024_01 Valid for IMSE WebMaster Pro Firmare version 1.09 or higher Date 08-04-14 Webpages version 1.09 or higher Abelko Innovation
Läs merKommentarer till bedömningsmatris för Tala Kurs D
Kommentarer till bedömningsmatris för Tala Kurs D Stockholms universitet Institutionen för språkdidaktik Global bedömning Den globala bedömningen representerar bedömarens första intryck och är en övergripande
Läs merKungl. Tekniska högskolan NADA Grundformer med Stava
Kungl. Tekniska högskolan NADA Grundformer med Stava Språkteknologi 2D1418 Höstterminen 2004 Författare: Andreas Pettersson az@kth.se 1. Bakgrund Om man automatiskt ska plocka ut de informationsbärande
Läs merSPRÅKKONTAKT OCH F2: SPRÅKKONTAKTBASERAD FLERSPRÅKIGHET/ SPRÅKFÖRÄNDRING VT2014 SPRÅKFÖRÄNDRING - MEKANISMER
SPRÅKKONTAKT OCH FLERSPRÅKIGHET/ SPRÅKFÖRÄNDRING VT2014 F2: SPRÅKKONTAKTBASERAD SPRÅKFÖRÄNDRING - MEKANISMER Josefin Lindgren josefin.lindgren@lingfil.uu.se 9/4 2014 GENERELL PROBLEMATIK Hur kan vi följa
Läs merKommentarer till bedömningsmatris för Tala Kurs D
Kommentarer till bedömningsmatris för Tala Kurs D Stockholms universitet Institutionen för språkdidaktik Global bedömning Den globala bedömningen representerar bedömarens första intryck och är en övergripande
Läs mer729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann
729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen
Läs merTommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2
Föreläsning 5 ADT Map/Dictionary, hashtabeller TDDI16: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 16 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 5.1 Innehåll Innehåll
Läs merHä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
Läs merJavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund gussk258@student.liu.se. Marcus Widblom marwi026@student.liu.se. Senast ändrad: 13 / 05 / 08
JavaRats Kravspecifikation Version 1.1 Gustav Skoglund gussk258@student.liu.se Marcus Widblom marwi026@student.liu.se Senast ändrad: 13 / 05 / 08 Sammanfattning Kravspecifikationen för JavaRats har skrivit
Läs merPerceptron som ordklasstaggare: ett fördjupningsarbete i 729G43 -Artificiell Intelligens
Perceptron som ordklasstaggare: ett fördjupningsarbete i 729G43 -Artificiell Intelligens Niklas Blomstrand Linköpings Universitet Inledning Att veta vilken ordklass ett ord tillhör är en viktig del i bearbetning
Läs merWord- sense disambiguation
KTH Word- sense disambiguation Inlämningsuppgift - DD2418 - sprakt12 Mattias Uskali & Emilia Hillert 1/8/2013 Sammanfattning Denna rapport kommer att undersöka två metoder för word- sense disambiguation,
Läs merLektion 2: Sökagenter. Robin Keskisärkkä
Lektion 2: Sökagenter Robin Keskisärkkä Lektionens innehåll Introduktion till laboration 2 Implementation av en sökalgoritm Livekodning Konfrontera ett liknande problem själva Extra: Heuristisk sökning
Läs merKPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner
KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen
Läs merKompilatorer och interpretatorer
1 of 6 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@oru.se) Tentamen i Kompilatorer och interpretatorer för Dataingenjörsprogrammet m fl lördag 7 november
Läs merLingvistik I Delmoment: Datorlingvistik
Lingvistik I Delmoment: Datorlingvistik evapet@stp.lingfil.uu.se 1 Lingvistik I, 12 februari 2007 Föreläsningsöversikt Datorlingvistik/språkteknologi vad är det? Några språkteknologiska tillämpningsområden:
Läs merForskning 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
Läs mer729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer
Läs merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merTAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26
TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att
Läs merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs merKryptering & Chiffer Del 2
Kryptering & Chiffer Del Vigenere Vigenere är en annan krypteringsmetod som är mer avancerad än de två föregående. Denna metod är säkrare men långt ifrån säker om man använder dåliga nycklar. Det finns
Läs merArrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB
Arrayer (vektorer) Murach s: kap 8 2013-01-15 1 Elektronikcentrum i Svängsta AB Arrayer Arrayer (vektorer) Ofta i ett program har vi flera variabler av samma datatyp som är relaterade till varandra. Exempel
Läs merInstruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Läs merStatistisk maskinöversättning
Statistisk maskinöversättning Åsa Holmqvist Asaho232 Artificiell Intelligens 729G43 Innehållsförteckning Introduktion... 1 Maskinöversättningens historia.... 1 Statistisk metod... 3 Brusiga kanalen....
Läs merBusiness 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
Läs merFöreläsning 18 Filer och avbildningar
Föreläsning 18 Filer och avbildningar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.11.2011 Avbildningar Hur skulle du göra en: Ordlista
Läs merInstruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Läs merDatastrukturer och algoritmer
Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 23 24 Konstruktion av Fält Fysisk datatyp i
Läs merTentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
Läs mer729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer
729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser
Läs merAvbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4
Avbildningar och hashtabeller Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4 1 2 Mängder i Java 3 Mängd-gränssnittet Set vs. List Mängder får endast innehålla unika element: Metoden.add(E) returnerar
Läs merUndervisningen ska erbjuda möjlighet till anpassning av stoff efter elevernas intresse och utbildning.
SVENSKT TECKENSPRÅK Ett välutvecklat teckenspråk är av betydelse för dövas och hörselskadades lärande i och utanför skolan. När språket utvecklas ökar förmågan att reflektera över, förstå, värdera och
Läs merDet finns mycket kritik som förs fram om skolan i allmänhet samtidigt
Joakim Samuelsson Expert i matematikklassrummet Vad är det som kännetecknar skickliga matematiklärare? Artikelförfattaren har följt en erkänt duktig matematiklärare och sett hur han bedriver sin undervisning.
Läs merViktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator
Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,
Läs merBerä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...
Läs merLaboration: Whitebox- och blackboxtesting
Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Läs merHur man programmerar. Exempel på problemlösning i Python
Hur man programmerar Exempel på problemlösning i Python Problemet Som vokaler i engelska språket räknar vi i denna uppgift bokstäverna aeuio, och som konsonanter alla andra bokstäver utom y (y fungerar
Läs mer729G04 Programmering och diskret matematik
Tentamen 729G04, 2013-01-11 1(8) 729G04 Programmering och diskret matematik Tentamen 2013 01 11 kl 08.00 13.00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker Uppgifter:
Läs merFö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
Läs merÖU2100, Översättarutbildning 1. Magisterutbildning, 60 högskolepoäng
Humanistiska fakultetsnämnden ÖU2100, Översättarutbildning 1 Magisterutbildning, 60 högskolepoäng Professional Translation 1, 60 higher education credits Avancerad nivå Second Cycle 1. Fastställande Kursplanen
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merProgrammering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.
Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer
Läs merAnna Sågvall Hein, Institutionen för lingvistik, Uppsala universitet Rosenbad/2001-08-24. Automatisk översättning och översättningshjälpmedel
Automatisk översättning och översättningshjälpmedel 1 / 4 Klassiska problem med maskinöversättning orealistiska förväntningar dåliga översättningar svårigheter att integrera maskinöversättning i arbetsflödet
Läs merTvåspråkighetssatsning Manillaskolan ~^
VCc ^j^\ Tvåspråkighetssatsning Manillaskolan ~^ Specialpedagogiska skolmyndigheten Definition Tvåspråkighet: Funktionell tvåspråkighet innebär att kunna använda båda språken för att kommunicera med omvärlden,
Läs merInnehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation
Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till
Läs merFöreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
Läs merTDP Regler
Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt
Läs merProbabilistisk logik 2
729G43 Artificiell intelligens / 2016 Probabilistisk logik 2 Marco Kuhlmann Institutionen för datavetenskap Översikt Probabilistiska modeller Probabilistisk inferens 1: Betingad sannolikhet Probabilistisk
Läs merLösningsförslag till tentamen i Språkteknologi 2D1418,
Lösningsförslag till tentamen i Språkteknologi 2D1418, 2004-10-18 1. Stavningskontroll utan ordlista (10 poäng) a) Med 29 bokstäver i alfabetet och en specialbokstav för ordbörjan/ordslut så finns det
Läs merIntroduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Läs merInstruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)
Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken
Läs mer729G09 Språkvetenskaplig databehandling
729G09 Språkvetenskaplig databehandling Föreläsning 2, 729G09, VT15 Reguljära uttryck Lars Ahrenberg 150409 Plan för föreläsningen Användning av reguljära uttryck Formella språk Reguljära språk Reguljära
Läs merTalsystem Teori. Vad är talsystem? Av Johan Johansson
Talsystem Teori Av Johan Johansson Vad är talsystem? Talsystem är det sätt som vi använder oss av när vi läser, räknar och skriver ner tal. Exempelvis hade romarna ett talsystem som var baserat på de romerska
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs mer729G75: 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
Läs merSvensk 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
Läs merDatastrukturer och algoritmer
Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer Algoritmer Vad är det? Innehåll Mer formellt om algoritmer beräkningsbarhet Att beskriva algoritmer Analysera algoritmer Exekveringstid,
Läs merNågra inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Läs merFöreläsninsanteckningar till föreläsning 3: Entropi
Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel.
Läs merTommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2
Föreläsning 4 ADT Map/Dictionary, hashtabeller, skip-listor TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 9 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 4.1
Läs merVardagssituationer och algebraiska formler
Modul: Algebra Del 7: Kommunikation i algebraklassrummet Vardagssituationer och algebraiska formler Cecilia Kilhamn, Göteborgs Universitet och Jörgen Fors, Linnéuniversitetet En viktig del av algebran
Läs merFTEA21:3 Spr akfilosofi F orel asning I Martin J onsson
FTEA21:3 Språkfilosofi Föreläsning I Martin Jönsson Att lära Varför Frege varken tror att ett ords mening är dess referens eller något mentalt. Freges egen teori om mening Tre semantiska principer Kompositionalitetsprincipen,
Läs merUppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \
Läs merProgrammering 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
Läs merAtt referera till objekt
Att referera till objekt En algoritm för generering av refererande uttryck 729G43: Artificiell intelligens Examinator: Arne Jönsson 2 Innehållsförteckning 1. Inledning... 4 1.1 Bakgrund... 4 1.2 Syfte...
Läs merSkrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord
Joakim Nivre / 30 Varför bry sig om stavning? Stavfel kan skapa missförstånd Stavfel kan dölja innehåll Standardiserad stavning underlättar många uppgifter Slå upp ord i ordbok Identifiera svårlästa ord
Läs merDatastrukturer och algoritmer
Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 25 26 Fält Modell Schackbräde Organisation n-dimensionellt
Läs merVektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://w3.msi.vxu.se/users/pa/vektorgeometri/gymnasiet.html Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Vektorer i planet
Läs merFormell 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,
Läs merFöreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering
Föreläsning 5 Programmeringsteknik DD1310 Doctest Modulen doctest Man kan använda modulen doctest för att testa programmet på ett mer systematiskt sätt. Så här gör man: 1. Skriver programmets funktioner
Läs merOm ämnet Engelska. Bakgrund och motiv
Om ämnet Engelska Bakgrund och motiv Ämnet engelska har gemensam uppbyggnad och struktur med ämnena moderna språk och svenskt teckenspråk för hörande. Dessa ämnen är strukturerade i ett system av språkfärdighetsnivåer,
Läs mer