Most recent comments
Jogging og blogging
Are, 9 måneder, 1 uke
Liveblogg nyttårsaften 2016
Are, 9 måneder, 1 uke
Reading in dark times
Are, 11 måneder, 1 uke
Moldejazz 2016
Camilla, 1 år, 2 måneder
Dørskilt
Karoline, 1 år, 3 måneder
Halifax
Tor, 1 år, 4 måneder
Sony Smartwatch 3 review
Tor, 1 år, 4 måneder
Numerikk, takk
Tor, 1 år, 4 måneder
Topp tur
Camilla, 1 år, 6 måneder
Tolkien reading day
Tor, 1 år, 6 måneder
50 book challenge
Camilla, 9 måneder, 2 uker
Ten years ago
To ting på en gang
Tor
Controls
Register

Movie Narrative Charts

I min stadige jakt på nye prosjekter legge til på den voksende listen av halvferdige ting jeg har prøvd meg på har jeg begynt å kikke på digital humanities, eller digital humaniora som det sikkert heter på norsk. Mitt utgangspunkt er at jeg har hørt mange historier om hvordan metoder fra matematikk og programmering kan lede til ære, berømmelse og lettvinte publikasjoner når det anvendes på nye områder, så jeg har lest litt rundtomkring og snakket litt med venner av oss med interesser i den retningen, og i løpet av en interessant diskusjon på et cocktailparty nå nylig bestemte jeg meg for at et bra sted å begynne kanskje er å prøve å lage et XKCD Movie Narrative Chart fra en bok, via et script.

Jeg begynte med å lage et såkalt lexical dispersion plot, som essensielt viser hvor et ord er brukt i en tekst, som viser de mest nevnte personene i Ringenes Herre. (Merk at jeg har lagt sammen Strider og Aragorn til én person.) Når man har teksten og en liste over personer er dette bortimot en triviell oppgave, men jeg synes likevel det var en morsom ting å gjøre.
Markeringen på x-aksen viser slutten på de tre bøkene.

Den store forskjellen på et dispersjonsplott og et XKCD Movie Narrative Chart (heretter kalt XKCD-plott) er at for å lage et XKCD-plott må man finne ut om to personer opptrer i samme scene eller ikke. En første tilnærming er naturligvis å se på de som ofte dukker opp sammen i teksten. En rask inspeksjon av plottet viser at dette ser ut til å kunne være en grei tilnærming, men ikke fullstendig robust. Det er for eksempel en sekvens nær slutten av Two Towers der Boromir nevnes så ofte at det kan se ut som om han er tilstede, selv om han døde i forrige bok.

Det er mulig man kan håndtere problemet med omtalte personer, for eksempel ved å se på verbene som brukes om dem. En annen tilnærming kunne kanskje være å se bort fra personer som nevnes i tekst som er markert som direkte tale, men det vil ikke nødvendigvis luke ut situasjoner der man tenker på en person, og vil sikkert ikke være robust i den forstand at det kan anvendes på en vilkårlig bok.

Jeg har uansett tenkt å utsette det problemet, og heller fokusere på å gruppere personer som opptrer sammen i ulike scener. Etter en liten diskusjon med en kollega, og i tråd med idéalet om å få til kule ting med litt lettvint scripting prøvde jeg meg på idéer fra den utrolig kule artikkelen Using Metadata to Find Paul Revere. Jeg splittet opp teksten i biter på for eskempel 200 ord, og behandlet hver slik bit som en ting man er medlem av hvis man er nevnt i den. Da er det bare en enkel matrisemultiplikasjon som skal til for å finne ut om to biter har mange medlemmer til felles, og jeg tenker at det burde ligge noe der, uten at jeg har kommet så mye videre foreløpig.

Det absolutt kuleste ville være å lage et script som kunne generere et XKCD-plott fullstendig automatisk fra en vilkårlig bok, men det er antagelig så godt som umulig. Kikker man på XKCD-plottet av Ringenes Herre ser man for eksempel at det viser hvordan Gandalf farter hit og dit i første bok, og det er informasjon man først får tilgang til mye senere når han forklarer hvorfor han ikke dukket opp i Bree. Jeg tror man skal lage en ganske heftig kunstig intelligens for å få til noe slikt. Likevel, det er mange kule delmål på veien dit, så jeg tror jeg sysler videre med dette en stund til.
Camilla likes this

Comments

Camilla,  25.05.14 19:54

Du burde kanskje inkludere alternative navn under de enkelte karakterene. Som "the ringbearer", "Strider", "Mithrandir", "Elessar", "Dunadan" og "the King".

Edit: ah. Jeg ser at du nevner at du har gjort det. Men tok du med alle varianter, eller bare den ene?
Tor,  25.05.14 21:23

Jeg tok bare med Aragorn/Strider, fordi de var de eneste som kom høyt opp på listen over hyppig brukte navn.
Tor,  25.05.14 21:43

Jeg la til den nevnte metoden fra Social Networke Analysis. Først delte jeg opp teksten i 933 stykker, á 500 ord. Så lagde jeg en \(933 \times 21\)-matrise, \(M\), som viser hvor mange ganger hver av de 21 personene er med i hver av de 933 tekststykkene. Deretter regnet jeg ut \(A=MM^T\), som gir en \(933 \times 933\)-matrise der elementet \(A_{ij}\) inneholder et tall som er større jo flere personer tekststykke \(i\) og tekststykke \(j\) har til felles. Sånn omtrent.

(I Finding Paul Revere bruker han en medlemskapsmatrise som inneholder 1 hvis en person er medlem av en klubb, 0 hvis ikke. Siden jeg bruker tall som forteller hvor mange ganger en person er med i et tekststykke blir det litt annerledes.)

Jeg har laget en ny versjon av plottet over, men med farget bakgrunn. Bakgrunnen er enten rød eller grønn, og fargen skifter hver gang et tekststykke ikke ligner på det forrige. Så fargen som sådan betyr ingenting, men der fargen er konstant betyr det at det er en lang sekvens med «like» tekststykker.
Ole Petter likes this
Camilla,  25.05.14 22:32

*host*fargeblinde kan også ha interesse for digital humanities*host*
Tor,  25.05.14 22:38

Camilla likes this