Hopp til innhold

Semantisk rolleoppmerking

Fra Wikipedia, den frie encyklopedi

Semantisk rolleoppmerking er i lingvistikken oppgaven med å merke deler av en setning med deres semantiske roller. Semantiske roller angir for eksempel hvem som gjør noe (agent), mot hvem noe gjøres (tema) og hvor noe gjøres (lokasjon). Automatisk oppmerking av slike roller finner mange anvendelser innenfor språkteknologien.

Bruksområder

[rediger | rediger kilde]

Systemer som trekker ut informasjon fra tekst og kan besvare spørsmål, kan ha nytte av å identifisere de semantiske rollene i kildematerialet.[1] Ren syntaktisk analyse er gjerne ikke tilstrekkelig, siden det ikke alltid er samsvar mellom syntaktiske og semantiske roller. For eksempel har setningene «Facebook kjøpte opp Instagram» og «Instagram ble solgt til Facebook» samme meningsinnhold, selv om verbene og den syntaktiske strukturen er forskjellig. Å tilordne semantiske roller til de ulike enhetene i sammenhengen gjør det mulig for systemet å representere faktiske forhold og gjøre informasjonen søkbar.

Det er også til hjelp i automatisk oversettelse mellom språk, da systemet kan bruke den semantiske representasjonen som et mellomledd. Det er nyttig siden to setninger på ulike språk ofte kan ha ulik syntaktisk form selv om de uttrykker det samme. For eksempel kan «Jeg liker musikk» oversettes til «Me gusta la música» på spansk, hvor ordet for musikk bytter syntaktisk rolle fra grammatisk objekt til subjekt.

Selve idéen om semantiske roller er relativt gammel, og ble først foreslått av den indiske grammatikeren Panini på et tidspunkt mellom det syvende og fjerde århundret før Kristus. På 1960-tallet var Fillmore og Gruber de første til å introdusere dette konseptet til moderne lingvistikk, hvor førstnevnte foreslo en universell mengde av semantiske roller. Semantiske roller ble fort tatt i bruk i prosessering av naturlige språk, og ble anvendt i sammenheng med blant annet maskinoversettelse og dialogsystemer, og har siden spilt en viktig rolle for lignende systemer.[2]

Manuelt annoterte ressurser

[rediger | rediger kilde]

PropBank, eller The Proposition Bank, er et syntaktisk annotert korpus oppmerka med semantiske roller.[3] Den bakenforliggende teorien er henta fra Dowty 1991,[4] og Proto-Agent og Proto-Patient er de viktigste semantiske/tematiske rollene for oppmerkinga. Første versjon av korpuset blei gjort tilgjengelig i 2002.

FrameNet er et prosjekt som knytter setninger som har lik betydning i sammen. Dette ble utviklet ved International Computer Science Institute in Berkeley, California som lager en ressurs som er basert på teori om blir kalt rammesemantikk. Dette vil si at den ser etter essensen i setninger og finner setninger som har tilnærmet lik betydning. Et eksempel på en setning kan være «Ola solgte en bil til Kari» beskriver den samme situasjonen som «Kari kjøpte en bil fra Ola», men fra ulike perspektiv. FrameNet har vi noen nøkkelbegreper som ramme og rammeelement. Ramme bruker semantiske roller som er spesifikt for generelle semantiske ideer. Det er et skjema som representere relasjonen mellom involverte, funksjoner og andre konseptuelle roller. Noen eksempel på rammebeskrivelser kan være bli_født og lokasjon_relasjon. Rammebeskrivelsen er en tekstlig beskrivelse, samt assosierte rammeelementer, leksikale enheter, eksempel og ramme-til-ramme relasjoner. Rammeelement gir tilleggsinformasjon til den semantiske strukturen for en setning. Hver ramme har noen kjerne- og ikke-kjerne-rammeelementer som kan bli sett på som semantiske roller.

Maskinlæringsbasert semantisk rolleoppmerking

[rediger | rediger kilde]

Generell arbeidsflyt

[rediger | rediger kilde]

Ettersom man ved semantisk rolleoppmerking er interessert i semantiske roller mellom predikat og argumenter, vil man få en arbeidsflyt som bygger opp til og ha informasjonen vi trenger for å så kunne bruke overvåket maskinlæring til å klassifisere de semantiske rollene basert på den.

En generell flyt kan deles inn i disse stegene:

  1. Syntaktisk parsing deler setningene som skal oppmerkes inn i syntaktiske tre og innebærer gjerne avhengighetsparsing og PoS-tagging for å opprette et syntaktisk tre.
  2. Fjerning av uønskede bestanddeler går gjennom og fjerner bestanddeler av det syntaktiske treet som garantert ikke er predikat eller argument eller del av de.
  3. Identifikasjon av predikat og argumenter avgjør hvilke bestanddeler av treet som kan være enten predikat eller argument og bruker gjerne maskinlæring til å utføre selve identifikasjonen i dette steget, Noen bestanddeler kan være både predikat og argument til et annet predikat.
  4. Klassifiserng av argumenter tildeler hvert identifiserte predikat sine argumenter med predikert rolle ved bruk av maskinlæring.
  5. Nyrangering analyserer resultatene fra klassifiseringen i samsvar med lingvistiske regler og optimaliserer resultatene fra klassifiseringen rundt disse reglene for å forbedre predikasjonene.

Denne flyten antar at ingen data er tilgjengelig fra før.

I oppmerking av semantiske roller lager man vektorer av trekk som brukes til å forutsi argumentenes roller. Man kan bruke mange forskjellige trekk, og man kan variere hvordan disse trekkene kombineres. En trekk-vektor består av trekk som representerer et bestemt argument i en setning. Trekk som kan brukes til oppmerking av semantiske roller kan være argumentets POS-tagg, predikatets POS-tagg, et bestemt antall POS-tagger eller ord før og etter argumentet, det første og det siste ordet i argumentet, argumentets eller predikatets hovedord og dets POS-tagg, avhengighetsrelasjonen mellom argumentet og dets hovedord, predikatets form og lemma, posisjonen til argumentet i forhold til predikatet, konstituentens parsetre og om det er en aktiv eller en passiv setning.[5]

Sykliske nevrale nettverk for semantisk rolle-oppmerking

[rediger | rediger kilde]

Evaluering

[rediger | rediger kilde]

Semantisk rolleoppmerking består av to separate steg, identifisering og klassifisering. Disse kan enten evalueres hver for seg, eller sammen. Det er vanlig å beregne precision, recall og F1-poengsum på de semantiske rollemerkelappene for hvert argument generert av et system.[1][6] Gjennom flere CoNLL Shared Tasks er det etablert baseline datasett som ofte brukes for å sammenligne systemer, med F1-makrosnitt som evalueringsmetrikk.[7][8][9][10]

CoNLL Shared Tasks

[rediger | rediger kilde]

CoNLL er en årlig konferanse for maskinell naturlig språklæring[11], som hvert år har en oppgave der flere deltakere tar for seg en relevant oppgave, eller Shared Task. Semantiske roller har vært tema i flere ganger.

2004 og 2005: Semantic Role Labeling

[rediger | rediger kilde]

I 2004 fikk deltakerne som oppgave å utvikle maskinlæringsstrategier som klarte å tilordne semantiske roller til argumenter for verbalpredikater på bakgrunn av delvis syntaktisk informasjon. Deler av Wall Street Journal-delen i Penn Treebank, med annotasjoner fra PropBank, ble brukt som datasett. Det beste systemet var basert på støttevektormaskiner og oppnådde en F1-poengsum på 69,49.[7]

I 2005 ble denne oppgaven videreført med noen forskjeller. Forskjellene gikk ut på at syntaktiske trær fra to ulike parsere ble brukt, at korpuset var forstørret og at evaluering også ble utført på et helt annet korpus, Brown-korpuset, for å vurdere «robustheten». Dette året oppnådde det beste systemet en F1-poengsum på 79,44 på WSJ-testen, men 10 poeng mindre på Brown-korpuset.[8]

2008: Joint Parsing of Syntactic and Semantic Dependencies

[rediger | rediger kilde]

Etter arbeidet med dependensparsing i 2006 og 2007 ville man i 2008 forsøke å sette sammen disse to problemene samt å finne roller for argumenter til nominalpredikater i tillegg til verbalpredikater. Det beste systemet fikk en F1-poengsum på 81,75 poeng på WSJ-korpuset i den semantiske delen, men både dette og de fire andre toppsystemene brukte i praksis ikke felles syntaktiske og semantiske tilnærminger. Surdeanu et al. konkluderte med at det var behov for mer forskning før man kunne påstå at felles syntaktisk og semantisk behandling var hensiktsmessig.[9]

2009: Syntactic and Semantic Dependencies in Multiple Languages

[rediger | rediger kilde]

I 2009 ble oppgaven fra det forrige året videreført med data fra flere språk i tillegg til engelsk: katalansk, kinesisk, tsjekkisk, tysk, japansk og spansk. Som i 2008 var resultatet slik at systemer som brukte en felles metode for syntaktisk og semantisk parsing ikke ga de beste resultatene, så hvorvidt dette er gunstig ble stående som et åpent spørsmål.[10]

Referanser

[rediger | rediger kilde]
  1. ^ a b Jurafsky, Daniel. «Semantic Role Labelling» (PDF). Arkivert fra originalen (PDF) 21. september 2017. 
  2. ^ Jurafsky, Daniel. «Semantic Role Labelling» (PDF). Arkivert fra originalen (PDF) 21. september 2017. 
  3. ^ Kingsbury, Paul og Palmer, Martha: «From TreeBank to PropBank».
  4. ^ Dowty, David: «Thematic Proto-roles and Argument Selection»
  5. ^ Gildea, Daniel; Jurafsky, Daniel. «Automatic Labeling of Semantic Roles». Computational Linguistics. 3. 28: 245–288. doi:10.1162/089120102760275983. 
  6. ^ Favre, B.; Bohnet, B.; Hakkani-Tür, D. (mars 2010). «Evaluation of semantic role labeling and dependency parsing of automatic speech recognition output». 2010 IEEE International Conference on Acoustics, Speech and Signal Processing: 5342–5345. doi:10.1109/ICASSP.2010.5494946. Besøkt 29. november 2017. 
  7. ^ a b Carreras, Xavier og Màrquez, Lluís: «Introduction to the CoNLL-2004 Shared Task: Semantic Role Labeling» Arkivert 1. desember 2017 hos Wayback Machine.
  8. ^ a b Carreras, Xavier og Màrquez, Lluís: «Introduction to the CoNLL-2005 Shared Task: Semantic Role Labeling»
  9. ^ a b Surdeanu et al.: «The CoNLL-2008 Shared Task on Joint Parsing of Syntactic and Semantic Dependencies» Arkivert 1. desember 2017 hos Wayback Machine.
  10. ^ a b Hajič et al.: «The CoNLL-2009 Shared Task: Syntactic and Semantic Dependencies in Multiple Languages» Arkivert 1. desember 2017 hos Wayback Machine.
  11. ^ «The SIGNLL Conference on Computational Natural Language Learning»
Autoritetsdata