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

Relevanta dokument
Grundläggande textanalys, VT2012

Finita automater, reguljära uttryck och prefixträd. Upplägg. Finita automater. Finita automater. Olika finita automater.

Tentamen Programmeringsteknik II Skrivtid: Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper.

Reguljära uttryck, automater, hashtabeller, mm

AUBER 95 9 jan LÖSNINGAR STEG 1:

6 Formella språk. Matematik för språkteknologer (5LN445) UPPSALA UNIVERSITET

1. (6p) (a) Använd delmängdskonstruktionen för att tillverka en DFA ekvivalent med nedanstående NFA. (b) Är den resulterande DFA:n minimal? A a b.

FORMELLA SPRÅK, AUTOMATER OCH BERÄKNINGSTEORI ÖVNINGSUPPGIFTER PÅ REGULJÄRA SPRÅK

Listor = generaliserade strängar. Introduktion till programmering SMD180. Föreläsning 8: Listor. Fler listor. Listindexering.

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

definitioner och begrepp

Associativa lagen för multiplikation: (ab)c = a(bc). Kommutativa lagen för multiplikation: ab = ba.

Tentamen i Databasteknik

PASS 1. RÄKNEOPERATIONER MED DECIMALTAL OCH BRÅKTAL

Lexikon och lexikonorganisation. Lexikal information. Reguljära uttryck i implementeringar. Reguljära uttryck. Olika sätt att definiera strängmängder

Trigonometri. 2 Godtyckliga trianglar och enhetscirkeln 2. 3 Triangelsatserna Areasatsen Sinussatsen Kosinussatsen...

Föreläsning 3: Strängmatchning

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 5-7.

IE1204 Digital Design

Exponentiella förändringar

Uppgiftssamling 5B1493, lektionerna 1 6. Lektion 1


Kan det vara möjligt att med endast

Bokstavsräkning. Regler och knep vid bokstavsräkning

x = x = x = x=3 x=5 x=6 42 = 10x x + 10 = 15 x = = 20 x = 65 x + 36 = 46

LINJÄR ALGEBRA II LEKTION 1

Kontrollskrivning 3 till Diskret Matematik SF1610, för CINTE1, vt 2019 Examinator: Armin Halilovic Datum: 2 maj

Nya regler för plåtbalkar-eurokod 3-1-5

MEDIA PRO. Introduktion BYGG DIN EGEN PC

Matris invers, invers linjär transformation.

Råd och hjälpmedel vid teledokumentation

Föreläsning 7: Trigonometri

Lösningar och kommentarer till uppgifter i 1.2

Operativsystemets uppgifter. Föreläsning 6 Operativsystem. Skydd, allmänt. Operativsystem, historik

============================================================ V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE ±.

14. MINSTAKVADRATMETODEN

Skriv tydligt! Uppgift 1 (5p)

Kvalificeringstävling den 2 oktober 2007

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Datorernas matematik

Finaltävling den 20 november 2010

V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE ±. är begränsad i intervallet [a,b].

Sidor i boken

9. Vektorrum (linjära rum)

Definition 1 En funktion (eller avbildning ) från en mängd A till en mängd B är en regel som till några element i A ordnar högst ett element i B.

============================================================ V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE.

Induktion LCB 2000/2001

V1. Intervallet [a,b] är ändligt, dvs gränserna a, b är reella tal och INTE ±. är begränsad i intervallet [a,b].

Slutrapport Jordbruksverket Dnr /10 Kontroll av sniglar i ekologisk produktion av grönsaker och bär

Repetition 2. a) Delmängdskonstruktionen ger nedanstående DFA. Till höger med nya tillståndsnamn.

Belöningsbaserad inlärning. Reinforcement Learning. Inlärningssituationen Belöningens roll Förenklande antaganden Centrala begrepp

Integraler. 1 Inledning. 2 Beräkningsmetoder. CTH/GU LABORATION 2 MVE /2013 Matematiska vetenskaper

Byt till den tjocka linsen och bestäm dess brännvidd.

Sammanfattning, Dag 9

Tentamen 1 i Matematik 1, HF dec 2016, kl. 8:00-12:00

Rationella uttryck. Förlängning och förkortning

Integralen. f(x) dx exakt utan man får nöja sig med att beräkna

Skapa uppmärksamhet och få fler besökare till din monter!

Allmän studieplan för utbildning på forskarnivå i ämnet medicinsk vetenskap (Dnr /2017)

Campingpolicy för Tanums kommun

TATA42: Föreläsning 4 Generaliserade integraler

Ett förspel till Z -transformen Fibonaccitalen

EasyMP Multi PC Projection-bruksanvisning

Grafisk Profil. Välkommen in i Korvpojkarnas grafiska värld.

Preliminär version 2 juni 2014, reservation för fel. Tentamen i matematik. Kurs: MA152G Matematisk Analys MA123G Matematisk analys för ingenjörer

Uppsala universitet Institutionen för lingvistik och filologi. Grundbegrepp: Noder (hörn) och bågar (kanter)

CD5560 FORMELLA SPRÅK, AUTOMATER, OCH BERÄKNINGSTEORI, 5 p 10 AUGUSTI 2007 LÖSNINGAR

Sfärisk trigonometri

TATA42: Föreläsning 4 Generaliserade integraler

Långtidssjukskrivna. diagnos, yrke, partiell sjukskrivning och återgång i arbete. En jämförelse mellan 2002 och 2003 REDOVISAR 2004:7.

TENTAMEN. Matematik för basår I. Massimiliano Colarieti-Tosti, Niclas Hjelm & Philip Köck :00-12:00

SF1625 Envariabelanalys

1. Tvätta händerna och abborrens yttre samt använd rent material. Lägg abborren på skärbrädan framför dig. Studera dess utseende.

Laboration 1a: En Trie-modul

Allmän information (1 av 1)

Tillämpning - Ray Tracing och Bézier Ytor. TANA09 Föreläsning 3. Icke-Linjära Ekvationer. Ekvationslösning. Tillämpning.

Mat Grundkurs i matematik 1, del III

SF1625 Envariabelanalys

Komplexa tal. j 2 = 1

CHECKLISTA FÖR PERSONALRUM

Naturresurser. Vatten. Kapitel 10. Översiktsplan 2000

Diskreta stokastiska variabler

SIGNALER OCH SYSTEM II LEKTION 2 / MATEMATISK LEKTION 1. Fredrik Andréasson. Department of Mathematics, KTH

Färgsättning. Man kan även trycka i solida färger, då används PMS koden. T ex när man trycker på kläder eller ska brodera logon på tyg.

SLING MONTERINGS- OCH BRUKSANVISNING

Programmeringsguide ipfg 1.6

GEOMETRISKA VEKTORER Vektorer i rummet.

Materiens Struktur. Lösningar

Analys grundkurs B lab 1. Stefan Gustafsson Per Jönsson Fakulteten för Teknik och Samhälle, 2013

Dnr 6/002/2006. Till pensionsstiftelser som bedriver tilläggspensionsskydd och är underställda lagen om pensionsstiftelser

Lösningsförslag till tentamen i SF1683 och SF1629 (del 1) 23 oktober 2017

Evighetskalender. 19 a) nyårsdagen var år 2000 b) julafton kommer att vara på år 2010 c) de första människorna landade på månen, 20 juli 1969

ORTONORMERAT KOORDINAT SYSTEM. LÄNGDEN AV EN VEKTOR. AVSTÅND MELLEN TVÅ PUNKTER. MITTPUNKT. TYNGDPUNKT. SFÄR OCH KLOT.

Föreläsning 7. Splay-träd. Prioritetsköer och heapar. Union/Find TDDC70/91: DALG. Innehåll. Innehåll. 1 Splay-träd

Från fotbollsplan till affärsplan. Berättelsen om Newbody

MATEMATISKT INNEHÅLL UPPGIFT METOD. Omvandla mellan olika längdenheter. METOD BEGREPP RESONEMANG. Ta reda på omkrets. 5 Vilken omkretsen har figuren?

upp skannern och kontrollera komponenterna Mikro-USB-kabel SD-kort Snabbguide DVD-ROM

Matematisk statistik för B, K, N, BME och Kemister. Matematisk statistik slumpens matematik. Exempel: Utsläpp från Källby reningsverk.

KTH Teknikvetenskap Fotografi-lab 3

Tentamen i ETE115 Ellära och elektronik, 25/8 2015

Transkript:

Progrmmering för språkteknologer II, HT2014 Avncerd progrmmering för språkteknologer, HT2014 evelin.ndersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelin/uv/uv14/pst2/

Idg - Ändlig utomter - Reguljär uttryck - Läsning/Skrivning - Hshteller - Övningr 2

Reltion till tidigre kurser - Mtemtik för språkteknologer Teori kring finit utomter och reguljär uttryck - Introduktion till dtteknik för språkvetre Prktisk nvändning v reguljär uttryck sed och grep - Den här kursen Fokus på hur reguljär uttryck nvänds i Jv Sk kunn representer enkl uttryck som utomter 3

Ändlig utomter 4

Exempel Vd är en utomt? S 1 S 2 S 3 S 4 S 2 S 1 S4 initiltillstånd tillstånd S 3 finltillstånd 5

Exempel Vd är en utomt? S 1 S 2 S 3 S 4 symoler trnsition / övergång loop 6

Exempel Vd är en utomt? S 1 2 3 S 4 S S 3 Provkör utomten på inputsträngen: 7

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 8

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 9

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 10

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 11

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 12

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 13

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 14

Exempel Vd är en utomt? indt: S 1 2 3 S 4 S S 3 15

Exempel Vd är en utomt? indt: S 1 2 3 S 4 Nu är indtn slut och vi lyckdes hmn i utomtens finltillstånd. Dett inneär tt strängen ccepters v utomten. S S 3 16

Exempel Vd är en utomt? S 1 2 3 S 4 Provkör utomten på indtn S S 3 17

Exempel Vd är en utomt? Indt: S 1 2 3 S 4 S S 3 18

Exempel Vd är en utomt? Indt: S 1 2 3 S 4 S S 3 19

Exempel Vd är en utomt? Indt: S 1 2 3 S 4 S S 3 20

Exempel Vd är en utomt? Indt: S 1 2 3 S 4 S S 3 21

Exempel Vd är en utomt? Indt: S 1 2 3 S 4 S S 3 Nu är indtn slut och vi lyckdes inte hmn i utomtens finltillstånd. Dett inneär tt strängen inte ccepters v utomten. 4 Tillståndet S klls för skräptillstånd 22

Exempel Vd är en utomt? S 1 S 2 S 3 S 4 Accepternde strängr:,,,... Icke-ccepternde strängr:,,,,... 23

Deterministisk ändlig utomt Fkt S 1 initiltillstånd - finns endst en - utomtens strttillstånd S i S j tillstånd - det tillstånd utomten hmnt i under körning S f finltillstånd - utomtens måltillstånd - kn finns fler 24

Deterministisk ändlig utomt Fkt c d symoler - Det lfet vi retr med i utomten trnsition/övergång - förflyttning från ett tillstånd till ett nnt tillstånd smtidigt som en symol läses från indt loop - en symol läses från indt och vi är kvr i smm tillstånd 25

Deterministisk ändlig utomt Fkt Accepterd indt När mn kört den givn indtn på utomten från initiltillståndet och lyckts komm frm till finltillståndet, då hr utomten ccepterd den givn indtn. Inte ccepterd indt När mn kört den givn indtn på utomten från initiltillståndet tills indtn är slut och mn inte hr nått frm till finltillståndet, då hr utomten inte ccepterd den givn indtn. 26

Ändlig utomter Fkt Deterministisk utomt En utomt där en symol leder till mximlt ett estämt tillstånd. Exempel: S 1 S 2 S 3 Icke deterministisk utomt En utomt där en symol kn led till mer än ett tillstånd. Exempel: S 1 S 2 S 3 27

Automter Tillämpning Exempel: Test tt dtum i texter är skrivn på rätt sätt. Rätt dtum: 110915, 111015 Fel dtum: 111401, 110145 Kn vr intressnt i sökning, elektronisk formulär, etc 28

Reguljär uttryck 29

Reguljär uttryck - Vd är reguljär uttryck? - Ett reguljär uttryck krktäriserr teckensekvenser - En sekvens med tecken mtchr eller mtchr inte ett reguljärt uttryck. - När esläktde med utomter - Mycket viktig i språkteknologi och dtvetenskp 30

Reguljär uttryck i Jv - Syntxen för reguljär uttryck kn skilj sig från den syntx ni är vn vid. - Funktioner med reguljär uttryck finns i klssen String - Klsser i Jv: jv.util.regexp - Pttern - Mtcher - I ndr klsser, till exempel Scnner, kn reguljär uttryck nvänds som prmeter till metoder. 31

Reguljär uttryck som strängr - I Jv skrivs reguljär uttryck som strängr - Speciltecken: Speciltecken Betydelse. Vilket tecken som helst () Gruppering v tecken *+? Kvntifierre ({[\^-=$! ]})?*+ All specil tecken Noter: Bckslsh(\) måste dulers: \\ Speciltecken kn nvänds som vnlig tecken om mn skriver ckslsh före: \\. Fördefinierde klsser: \\s 32

Kvntifierre - * Hur kn vi eskriv nednstående utomt med hjälp v ett reguljärt uttryck? S 1 Lösning: * Opertionen klls för kleeneslutning och mtchr noll eller fler 33

Kvntifierre - + Hur kn vi eskriv nednstående utomt med hjälp v ett reguljärt uttryck? S S 1 2 Lösning: + Opertionen klls för plusopertor och mtchr en eller fler 34

Kvntifierre -? Hur kn vi eskriv nednstående utomt med hjälp v ett reguljärt uttryck? S1 S 2 Lösning:? Opertionen klls för optionlitet och mtchr noll eller ett 35

Opertioner - Hur kn vi eskriv nednstående utomt med hjälp v ett reguljärt uttryck? S 1 S 2 S 3 Lösning: Opertionen klls för union och nvänds när mn vill mtch olik lterntiv 36

Reguljär uttryck - Teckenklsser [] Ett v de tecken som står innnför [] mtchs 37

Reguljär uttryck - Teckenklsser [] [] mtchr tecknet Motsvrr denn utomt: S 1 S 2 38

Regujär uttryck - Teckenklsser [] [-c] mtchr tecken, och c Motsvrr denn utomt: S S 1 2 c 39

Reguljär uttryck - Teckenklsser [] [-za-z] mtchr tecken till och med z smt A till och med Z 40

Reguljär uttryck - Teckenklsser [] [c] mtchr tecken och c Motsvrr denn utomt: S 1 2 c S 41

Reguljär uttryck negerde teckenklsser [] En negerd teckenklss mtchr inget v de tecken som står innnför [] 42

Reguljär uttryck negerde teckenklsser [] [^] mtchr ll tecken utom S 1 2, c,... S S 3 43

Reguljär uttryck negerde teckenklsser [] [^c] mtchr ll tecken utom och c S 1 2, c, d, e,... S S 3 44

Reguljär uttryck negerde teckenklsser [] [^-c] mtchr ll tecken utom, och c S 1 2,, c d, e,... S S 3 45

Reguljär uttryck negerde teckenklsser [] [^-za-z] mtchr ll tecken utom till och med z smt A till och med Z 46

Fördefinierde teckenklsser i Jv: Teckenklss Betydelse Mtchr "\\d" [0-9] en siffr "\\D" [^0-9] ett tecken som inte är en siffr "\\w" [-za-z0-9] ett ordtecken "\\W" [^-za-z0-9] inte ett ordtecken "\\s" [ \t\n...] vit tecken "\\S" [^ \t\n...] inte vit tecken "\\" Ordgräns Inget tecken 47

Unicode i Jv - Stndrd för de teckenklsser vi ehöver när vill nvänd ll skriftsystem för nturlig språk - Exempel: "\\p{l}" "\\p{ll}" "\\p{lu}" "\\p{p}" - okstv - gemen - versl - interpunktionstecken Fler klsser finns här: http://www.regulr-expressions.info/unicode.html 48

Opertioner Hur kn vi eskriv nednstående utomt med hjälp v ett reguljärt uttryck? S 1 2 3 S S 3 49

Opertioner - [][] Hur kn vi eskriv nednstående utomt med v ett reguljärt uttryck? S 1 2 3 S S 3 Lösning: [][] Metoden klls för konktinering dvs smmnfogning 50

Konktinering([][]): Givet två reguljär uttryck R 1 och R 2. R 1R 2 mtchr ll strängr som är smmnstt v två strängr där den först strängen mtchr R och den ndr strängen mtchr R. 1 Exempel: [1] [2] mtchr, 2, 1 och 12 2 51

Konktinering([][]): Exempel: [1] [2] mtchr, 2, 1 och 12 2 S 1 2 S 3 1 S 52

Reguljär uttryck - Opertioner Opertor nmn [][] konktinering(smmnfogning) * kleeneslutning + plusopertor union? optionlitet 53

Reguljär uttryck i Jv Klssen String 54

Klssen String mtchningsmetod oolen mtches(string regex) - returnerr snt om strängen mtchr regex och flskt nnrs Exempel: String mystring = ""; if(mystring.mtches("+")) System.out.println("The string mtches" + "\"+\""); else { System.out.println("The string does " + "not mtch \"+""); } 55

Klssen String ersättningsmetoder Följnde yter den mtchnde strängen regexp mot strängen replcement: replcefirst(string regex, String replcement) - ersätter de först mtchningen i strängen och returnerr den ny strängen (String) replceall(string regex, String replcement) - ersätter ll mtchningr i strängen och returnerr den ny strängen (String) 56

Klssen String ersättningsmetoder replcefirst(string regex, String replcement) - ersätter de först mtchningen i strängen och returnerr den ny strängen (String) Exempel: String mystring = ""; mystring = mystring.replcefirst("", ""); "" mtchr strängen mystring ser nu ut så här: "" 57

Klssen String ersättningsmetoder replceall(string regex, String replcement) - ersätter ll mtchningr i strängen Exempel: String mystring = ""; mystring = mystring.replceall("+", ""); "+" mtchr ll strängr som innehåller:,,,,... mystring ser nu ut så här: "" 58

Klssen String ersättningsmetoder replceall(string regex, String replcement) - ersätter ll mtchningr i strängen Exempel: String mystring = ""; mystring = mystring.replceall("*", ""); "*" mtchr ll strängr som innehåller: "",,,,,... mystring ser nu ut så här: "" 59

Klssen String ersättningsmetoder replceall(string regex, String replcement) - ersätter ll mtchningr i strängen Exempel: String mystring = ""; mystring = mystring.replceall("?", ""); "?" mtchr ll strängr som innehåller: "" eller mystring ser nu ut så här: "" 60

Klssen String splitmetod String[] split(string regex) - klipper en sträng vid vrje mtchnde delsträng Exempel: String mystring = "en liten ktt"; String[] sustring = mystring.split(" "); sustring ser ut så här: "en" "liten" "ktt" 61

Reguljär uttryck- gruppering 62

Reguljär uttryck- gruppering - Med hjälp v prenteser kn mn grupper delr v ett reguljärt uttryck. Användning Exempel Mtchr Begräns lterntiv gld(re st) gldre, gldst gldre st gldre, st Tillsmmns med kvntifierre (ktt)+ gld(re st)? ktt, kttktt, kttkttktt,... gld, gldre, gldst Hänvis tillk ([1-4])\\1 11, 22, 33, 44 63

Reguljär uttryck- gruppering - Fler grupper kn nvänds i ett uttryck - Gruppern räkns från vänster till höger: Exempel: ((e(tl))(r)) 64

Reguljär uttryck- gruppering - Fler grupper kn nvänds i ett uttryck - Gruppern räkns från vänster till höger: Exempel: ((e(tl))(r)) grupp 0: etlr 65

Reguljär uttryck- gruppering - Fler grupper kn nvänds i ett uttryck - Gruppern räkns från vänster till höger: Exempel: ((e(tl))(r)) grupp 0: etlr grupp 1: etl 66

Reguljär uttryck- gruppering - Fler grupper kn nvänds i ett uttryck - Gruppern räkns från vänster till höger: Exempel: ((e(tl))(r)) grupp 0: etlr grupp 1: etl grupp 2: tl 67

Reguljär uttryck- gruppering - Fler grupper kn nvänds i ett uttryck - Gruppern räkns från vänster till höger: Exempel: ((e(tl))(r)) grupp 0: etlr grupp 1: etl grupp 2: tl grupp 3: r 68

Reguljär uttryck- gruppering - Mn kn nvänd grupper för tt välj ut ett eller uttryck I smm uttryck - \\x Exempel:[rst]\\1 mtchr rr, ss, tt I utytesuttryck - $x 69

Regexp i Jv jv.util.regex - Innehåller mer vncerde funktioner än klssen String - Två huvudklsser: Pttern representerr ett reguljärt uttryck Mtcher Hnterr instnser v klssen Pttern och Innehåller metoder för mtchning - Exempel: String mysentence =...; Pttern p = Pttern.compile("REGEXP"); Mtcher m = p.mtcher(sentence); // Do something with m 70

Regexp i Jv jv.util.regex Mtchningsmetoder oolen find() returnerr snt om det finns en delsekvens i teckensekvensen som uppfyller det reguljär uttrycket oolen mtches() returnerr snt om hel teckensekvensen mtchr det reguljär uttrycket 71

Regexp i Jv jv.util.regex indexmetoder int regionstrt() returnerr vid vilket index i teckensekvensen som mtchningen örjr int regionend() returnerr vid vilket index i teckensekvensen som mtchningen slutr 72

Regexp i Jv jv.util.regex Grupperingsmetoder String group() returnerr den delsträng som mtcht grupp 0 String group(int group) returnerr den delsträng som mtcht grupp group int groupcount() returnerr ntlet grupper i det reguljär uttrycket 73

Regexp i Jv jv.util.regex Ersättningsmetoder String replceall(string replcement) Ersätter ll delsträngr som mtchr det reguljär uttrycket med replcement String replcefirst(string replcement) Ersätter den först delsträngen som mtchr det reguljär uttrycket med replcement 74

Reguljär kvntifiktorer Greedy X? X* X+ Greedy Mtchr så lång delsträng som möjligt först och försöker därefter med kortre. (Defult) Exempel: String mystring = "en <i>liten</i> ktt"; mystring = mystring.replceall("</?.*>", ""); mystring ser nu ut så här: "en ktt" 75

Reguljär kvntifiktorer Reluctnt X?? X*? X+? Reluctnt(?) Mtchr så kort delsträng som möjligt först och försöker därefter med längre. Exempel: String mystring = "en <i>liten</i> ktt"; mystring = mystring.replceall("</?.*?>", ""); mystring ser nu ut så här: "en liten ktt" 76

Reguljär kvntifiktorer Possessive(+) Mtchr som greedy men kstr tidigre mtchningr. Exempel: String mystring = "cx"; mystring = mystring.replceall(".*", ""); mystring ser nu ut så här: "" Possessive X?+ X*+ X++ 77

Reguljär kvntifiktorer Possessive(+) Mtchr som greedy men kstr tidigre mtchningr. Exempel: String mystring = "cx"; Possessive X?+ X*+ X++ mystring = mystring.replceall(".*+x", ""); mystring ser nu ut så här: "cx" Eftersom ingen delsträng mtchde.*+x 78

Reguljär kvntifiktorer Greedy Reluctnt Possessive X? X?? X?+ X* X*? X*+ X+ X+? X++ Greedy Mtchr så lång delsträng som möjligt först och försöker därefter med kortre. Reluctnt(?) Mtchr så kort delsträng som möjligt först och försöker därefter med längre. Possessive(+) Mtchr som greedy men kstr tidigre mtchningr. 79

Reguljär uttryck i Jv vs grep/sed - Vrför sk mn nvänd reguljär uttryck i jv? - Fungerr inte grep och sed lik r? 80

Reguljär uttryck i Jv vs grep/sed - Vrför sk mn nvänd reguljär uttryck i jv? - Fungerr inte grep och sed lik r? Svr: Det eror på vd sk gör! Om mn sk gör något mer med dtn, till exempel gör en frekvenstell som i lortion 1, så kn det vr r tt nvänd ett progrmmeringsspråk. 81

Läsning med reguljär uttryck 82

Läsning med reguljär uttryck - Scnner - Klssen Scnner nvänds när mn vill läs in dt med hjälp v reguljär uttryck. Exempel: - Stndrd in: Scnner stdin = new Scnner(System.in); - Från en nnn sträng: String line = ; Scnner linescnner = new Scnner(line); - Från en fil: File infile = new file(filenme); Scnner instrem = new Scnner(infile); 83

Läsning med reguljär uttryck - Scnner Exempel på Inläsningsmetoder: String next() returnerr näst token från sknnern String next(string/pttern regexp) returnerr näst token från sknnern om det uppfyller Regexp String nextline() returnerr resternde innehåll på nuvrnde rd och förflyttr sknner till näst rd int textint() returnerr näst heltl om det går nnrs ksts ett undntg 84

Läsning med reguljär uttryck - Scnner Exempel på kontrollmetoder: oolen hsnext() returnerr snt om indtn till sknnern estår v fler token oolen hsnextline() returnerr snt om det finns en till rd i indtn till sknnern oolen hsnextint() returnerr snt näst token i indtn till sknnern är ett heltl 85

Scnner kodexempel VISA KODEXEMPEL!!! 86

Skrivning med reguljär uttryck klssen Formt 87

Klssen Formt - Används för tt formter output för till exempel: Tl Dtum Mrginler... - Kn npsss till konventioner i olik språk (med hjälp v locles) 88

Klssen Formt - Kn nvänds till olik skrivtekniker: Formtter(Appendle ) Exempel: StringBuilder Formtter(File file) Formtter(OutputStrem os) - Mn kn även nvänd en locle för tt konverter till olik språk: Exempel: Formtter(Appendle, Locle l) - Kn även skriv till stndrd out: System.out.formt 89

Klssen Formt Användning - System.out.formt(String formt, Oject...rgs) formt: Formtet på strängen och innehåller text och formtidentifierre: Formtidentifierre Betydelse %s sträng %d heltl i decimlformt %o heltl i octlformt %f decimlformt %e decimltl, vetenskplig nottion %t dtum/tid Exempel: System.out.form( Frekvensen (kräver ytterliggre för ordet specifiering) %s är %d, word, freq); Resultt: Frekvensen för ordet ktt är 5 %n nyrd 90

Klssen Formt Användning - System.out.formt(String formt, Oject...rgs) formt: Formtet på strängen och innehåller text och formtidentifierre: Exempel: System.out.formt("Frekvensen för ordet %s är %d", word, freq); Resultt: Frekvensen för ordet ktt är 5 91

Klssen Formt Formtidentfierre - Detljer %[flgs][width][.precision]conversion - conversion Vilken formtidentifierre det är - flgs Specifiktionsflggor, vilk som mn kn nvänd eror på conversionen - width minimumvidd på utskriften -.precision ntl decimler för decimltl (nvänds enrt för tl) 92

Klssen Formt Formtidentfierre - Detljer Exempel: %.2f - decimltl vrundt till två decimler, ex. 23.57 %10s -sträng utskriven vänsterjusterd, med minst 20 tecken, utfyllt med mellnslg, ex. '' hej'' %-10s -sträng utskriven högerjusterd, med minst 20 tecken, utfyllt med mellnslg, ex. ''hej '' %0+8.3f - decimltl vrundt till två decimler, med tecken ngivet, minst 8 positioner långt, utfyllt med nollor, ex. ''+023.568'' 93

Hshteller Idg: - Vd är en hshtell (Översikt)? - Vilk klsser finns i Jvs iliotek? - Hur nvänder mn den? Senre i kursen: - Hur fungerr en hshtell teoretiskt? - Hur är den implementerd? 94

Hshteller - Mppningr -Arryer: Mppning från heltl (0,...,n) till värden: 0 1 2 3 95

Hshteller - Mppningr -Arryer: Mppning från heltl (0,...,n) till värden: 0 1 2 3 ArryList<String>: Mppning melln heltl och strängr hej ö En ktt 0 1 2 3 96

Hshteller - Mppningr Hshteller: Mppning från en typ till en nnn HshMp<String,String> Mppning från sträng till sträng hej ö En ktt h ö E k 97

Hshteller - Mppningr Hshteller: Mppning från en typ till en nnn HshMp<String,String> Mppning från sträng till sträng hej ö En ktt h ö E k HshMp<Person,Integer> Mppning från klssen Person till heltl 4711 11 15 1000 Klle Musse Kntte Kjs 98

Hshteller - Terminologi - Mppning från nyckel till värde Exempel: Frekvensordlist: Nyckel: ord(string) Värde: frekvens(integer) HshMp<String,Integer> Mpp från ordform till lemm Nyckel: ordform(string) Värde: lemm(string) HshMp<String,String> 99

Hshteller Vilk hshteller finns det i jv? - Osorterde hshteller HshMp Hshtle - Sorterde hshteller (sorterr på nycklrn) TreeMp - All hshteller implementerr gränssnittet Mp 100

Klsser vs Astrkt klsser vs Gränssnitt - Klss Kn h instnser All metoder är implementerde Kn vr superklss 101

Klsser vs Astrkt klsser vs Gränssnitt - Klss Kn h instnser All metoder är implementerde Kn vr superklss - Astrkt klss Kn INTE h instnser Minst en metoder är inte implementerd Kn vr superklss 102

Klsser vs Astrkt klsser vs Gränssnitt - Klss Kn h instnser All metoder är implementerde Kn vr superklss - Astrkt klss Kn INTE h instnser Minst en metoder är inte implementerd Kn vr superklss - Gränssnitt (Intefce) Kn inte h instnser Hr endst oimplementrde metoder Andr klsser kn implementer en eller fler gränssnitt Ett lterntiv till multipel rv (som skns i Jv) 103

Använd hshteller Funktion Skp hshtell Lägg till ett nytt nyckelvärdepr Hämt värde Exempel HshMp<K,V> nme = new HshMp<K,V)(int cpcity); Nme.put(K key, V vlue); V vlue = nme.get(k key); Returnerr null om det inte finns en mppning melln key och ett värde Test om en nyckel finns i hshtellen nme.continskey(k key); 104

Exempel: Ök värdet i en frekvenslist HshMp<String, Integer> freqlist = new HshMp<String, Integer>(); // Lägg till nycklr-värden //Ök värdet för nyckel med 1 //Alterntiv 1: if(freqlist.continskey()) { freqlist.put(, freqlist.get()+1); } else{ freqlist.put(, 1); } 105

Exempel: Ök värdet i en frekvenslist HshMp<String, Integer> freqlist = new HshMp<String, Integer>(); // Lägg till nycklr-värden //Ök värdet för nyckel med 1 //Alterntiv 2: if(freqlist.get() == null) { freqlist.put(, 1); } else{ freqlist.put(, freqlist.get()+1); } 106

Lortion 1 - Huvudskligen om reguljär uttryck - Även övning på utomter, läsning/skrivning, hshteller - Språkteknologrelterde uppgifter, t ut informtion och t frm informtion från texter - Tre delr(kndidt), fyr delr(mster): 1. Mtch och eret rå text 2. T frm frekvensteller för olik spekter ur tggt text 3. T frm sttistik från text: meningslängd, ordlängd, Vnlig ord, etc Mster: 4. Diskussionsfrågor - Givet testprogrm för del 1. I övrigt får ni skriv och strukturer er egen kod. Dedline: 17/9 107

Lrpporter - Vd som sk ts med frmgår i respektive instruktion - Mil llt till Evelin, zippt - T lltid med kod: Använd r nmn på klsser, metoder, vriler Indenter koden korrekt Följ Orcles kodstndrd - Övrig delr i l 1 Testkörning för er progrm Finit utomter för övning 1.1 och 1.2 - I kommnde lortioner: Skriftlig diskussion- ing formell rpporter men skriv tydligt och korrekt. Lämn in som pdf. Skriv nmn! UML-digrm Skärmdump 108

Näst veck Tem: Sökning och sortering Två föreläsningr: Fö 1: Sökning och sortering Fö 2: Generics, interfce, stckr, köer, mm (även inför l 3) L 2 om sökning och sortering 109

Jo själv - Lr L 1 L 0 om den inte är klr - Gör progrmmeringsövningr Från oken L 2 från 2012 (mer om finit utomter) - Läs om veckns område Mteril om reguljär uttryck och finit utomter Från kurshemsidn Läsning/skrivning Hshteller Jvdoc om de klsser vi ehndlt idg - Läs inför näst veck: Sökning Sortering 110