Unni Cathrine Eiken February 2005
Unni Cathrine Eiken February 2005 Unni Cathrine Eiken February 2005
Appendix B: Ekstraktor.pl – program code Perl script Ekstraktor.pl #åpner fil som angis fra kommandolinjen når programmet kjøres open(FIL, $ARGV[0]) or die("Kan ikke åpne filen!!\n"); #leser hver linje i filen og legger linjen inn i forskjellige arrayer avhengig av hva som leses. Får lagret all informasjon som er nødvendig for å trekke ut pred-argstrukturene while ($linjeFraFil = ) { #legger indexverdi i @ARG0ep og arg0-verdi i @ARG0verdi dersom linjen fra filen inneholder ARG0 if ($linjeFraFil =~ m/ARG0/){ henteVerdi(); push(@ARG0ep, $ep); push(@ARG0verdi, $verdi); } #legger indexverdi i @ARG1ep og arg1-verdi i @ARG1verdi dersom linjen fra filen inneholder ARG1 if ($linjeFraFil =~ m/ARG1/){ henteVerdi(); push(@ARG1ep, $ep); push(@ARG1verdi, $verdi); } #legger indexverdi i @ARG2ep og arg2-verdi i @ARG2verdi dersom linjen fra filen inneholder ARG2 if ($linjeFraFil =~ m/ARG2/){ henteVerdi(); push(@ARG2ep, $ep); push(@ARG2verdi, $verdi); } #legger indexverdi i @ARG3ep og arg3-verdi i @ARG3verdi dersom linjen fra filen inneholder ARG3 if ($linjeFraFil =~ m/ARG3/){ henteVerdi(); push(@ARG3ep, $ep); push(@ARG3verdi, $verdi); } #legger lest linje inn i @restriksjoner dersom den inneholder 'BODY' if ($linjeFraFil =~ m/'BODY'/){ push(@restriksjoner, $linjeFraFil); } #legger lest linje inn i @restriksjoner dersom den inneholder 'RSTR' if ($linjeFraFil =~ m/'RSTR'/){ push(@restriksjoner, $linjeFraFil); } #legger lest linje inn i @semform dersom den bl.a inneholder 'semform' if ($linjeFraFil =~ m/'relation'\),semform\(/){ push(@semform, $linjeFraFil); } #legger lest linje inn i @cat dersom den inneholder '_CAT' if ($linjeFraFil =~ m/'_CAT'\)/){ push(@cat, $linjeFraFil); } #legger lest linje inn i @catsuff dersom den inneholder '_CATSUFF' if ($linjeFraFil =~ m/'_CATSUFF'\)/){ push(@catsuff, $linjeFraFil); } 92
#legger lest linje inn i @prt dersom den inneholder '_PRT' if ($linjeFraFil =~ m/'_PRT'\)/){ push(@prt, $linjeFraFil); } #legger lest linje inn i @index dersom den inneholder 'L-INDEX' if ($linjeFraFil =~ m/'L-INDEX'\)/){ push(@index, $linjeFraFil); } #legger lest linje inn i @index dersom den inneholder 'R-INDEX' if ($linjeFraFil =~ m/'R-INDEX'\)/){ push(@index, $linjeFraFil); } #legger lest linje inn i @navn dersom den inneholder 'CARG' if ($linjeFraFil =~ m/'CARG'\)/){ push(@navn, $linjeFraFil); } } #slutt while-loop close(FIL); #Her begynner prosesseringen av info hentet ut fra inputfilen: #fjerner ep'er som inneholder informasjon man vil se bort fra fjernRestri(); #fjerner første ep dersom den ikke har kategori 'v' finnCat(); #print("ARG0ep = \n@ARG0ep\nARG0verdi = \n@ARG0verdi\nARG1ep = \n@ARG1ep\nARG1verdi = \n@ARG1verdi\nARG2ep = \n@ARG2ep\nARG2verdi = \n@ARG2verdi\n"); #finner hovedstrukturen finnHoved(); #print("ARG0ep = \n@ARG0ep\nARG0verdi = \n@ARG0verdi\nARG1ep = \n@ARG1ep\nARG1verdi = \n@ARG1verdi\nARG2ep = \n@ARG2ep\nARG2verdi = \n@ARG2verdi\n"); #print("@semform\n"); #print("@navn\n"); #finner predikat-argumentstruktur nr2 #sjekkEkstra(); #finnResten(); #legger til predikat-argumentstrukturene til slutt i filen som angis open(OUTPUTFIL, ">>strukturer.txt") or die("kan ikke skrive til fil\n"); #open(OUTPUTFIL, ">>home/unni/Hovedoppgave/parse/pas-strukturer.txt") or die("kan ikke skrive til fil\n"); sjekkEkstra(); #lager hovedstrukturen lagStruktur(); close(OUTPUTFIL); #her kommer alle subfunksjonene: #henteVerdi(): #henter ut relasjonsindex og verdi til ARGx fra en linje fra #inputfilen og lagrer dem i $ep og $verdi 93
- Page 47 and 48: occur with. Arguments which are unl
- Page 49 and 50: 3.3.1 NorGram in outline Norsk komp
- Page 51 and 52: Figure 3 The most useful structure
- Page 53 and 54: 3.4 Altering the source As already
- Page 55 and 56: (3- 12) (3- 13) Politiet leter ette
- Page 57 and 58: ARG1 and ARG2 arrays display a valu
- Page 59 and 60: (3- 20) Anne Slåtten bodde i et st
- Page 61 and 62: value and highly desirable. As such
- Page 63 and 64: this project, this can be interpret
- Page 65 and 66: The process of classifying the cons
- Page 67 and 68: There are several different distanc
- Page 69 and 70: . ankomme,etterforsker,?,? ankomme,
- Page 71 and 72: Test 2 Training set: EPAS_arg1 with
- Page 73 and 74: The training and test material was
- Page 75 and 76: • level 0: words which co-occur w
- Page 77 and 78: (4- 9) avklare,obduksjon,? bede-om,
- Page 79 and 80: (4-10) below shows the output for t
- Page 81 and 82: In the introduction to this chapter
- Page 83 and 84: the EPAS can be used in the classif
- Page 85 and 86: exemption of jobbe-utfra, none of t
- Page 87 and 88: antecedent for (4-15a). In the case
- Page 89 and 90: Figure 7 Interestingly enough, howe
- Page 91 and 92: When testing on knowledge-dependent
- Page 93 and 94: Firth, J. R. (1957): A synopsis of
- Page 95 and 96: Appendix A: Ekstraktor.pl - algorit
- Page 97: finnARG2(); This function has exact
- Page 101 and 102: sub fjernEP{ #fjerner elementer fra
- Page 103 and 104: } splice(@ARGx); $imax = @ARG3ep; @
- Page 105 and 106: } else{ } } } push(@liste, $ARG0ep[
- Page 107 and 108: 101 Appendix C: the EPAS list 23-å
- Page 109 and 110: 103 obdusere,,kvinne observere,,23-
- Page 111 and 112: Appendix D: Text aligned with EPAS
- Page 113 and 114: eventualiteter. Vi varslet Kripos.
- Page 115 and 116: Etterforskerne har flere observasjo
- Page 117 and 118: # Subrutine som tar inn argumentnum
- Page 119 and 120: Appendix F: POS-based structures SE
- Page 121: Vi har ingen spesiell teori som vi
#legger lest linje inn i @prt dersom den inneholder '_PRT'<br />
if ($linjeFraFil =~ m/'_PRT'\)/){<br />
push(@prt, $linjeFraFil);<br />
}<br />
#legger lest linje inn i @index dersom den inneholder 'L-INDEX'<br />
if ($linjeFraFil =~ m/'L-INDEX'\)/){<br />
push(@index, $linjeFraFil);<br />
}<br />
#legger lest linje inn i @index dersom den inneholder 'R-INDEX'<br />
if ($linjeFraFil =~ m/'R-INDEX'\)/){<br />
push(@index, $linjeFraFil);<br />
}<br />
#legger lest linje inn i @navn dersom den inneholder 'CARG'<br />
if ($linjeFraFil =~ m/'CARG'\)/){<br />
push(@navn, $linjeFraFil);<br />
}<br />
} #slutt while-loop<br />
close(FIL);<br />
#Her begynner prosesseringen av info hentet ut fra inputfilen:<br />
#fjerner ep'er som inneholder informasjon man vil se bort fra<br />
fjernRestri();<br />
#fjerner første ep dersom den ikke har kategori 'v'<br />
finnCat();<br />
#print("ARG0ep = \n@ARG0ep\nARG0verdi = \n@ARG0verdi\nARG1ep = \n@ARG1ep\nARG1verdi =<br />
\n@ARG1verdi\nARG2ep = \n@ARG2ep\nARG2verdi = \n@ARG2verdi\n");<br />
#finner hovedstrukturen<br />
finnHoved();<br />
#print("ARG0ep = \n@ARG0ep\nARG0verdi = \n@ARG0verdi\nARG1ep = \n@ARG1ep\nARG1verdi =<br />
\n@ARG1verdi\nARG2ep = \n@ARG2ep\nARG2verdi = \n@ARG2verdi\n");<br />
#print("@semform\n");<br />
#print("@navn\n");<br />
#finner predikat-argumentstruktur nr2<br />
#sjekkEkstra();<br />
#finnResten();<br />
#legger til predikat-argumentstrukturene til slutt i filen som angis<br />
open(OUTPUTFIL, ">>strukturer.txt") or die("kan ikke skrive til fil\n");<br />
#open(OUTPUTFIL, ">>home/unni/Hovedoppgave/parse/pas-strukturer.txt") or die("kan ikke<br />
skrive til fil\n");<br />
sjekkEkstra();<br />
#lager hovedstrukturen<br />
lagStruktur();<br />
close(OUTPUTFIL);<br />
#her kommer alle subfunksjonene:<br />
#henteVerdi():<br />
#henter ut relasjonsindex og verdi til ARGx fra en linje fra<br />
#inputfilen og lagrer dem i $ep og $verdi<br />
93