Digital humaniora - subcorpus topic modeling

Datautvinningsteknikk er nødvendig og gir unike muligheter for historikere og andre forskere som vil nyttigjøre digitalt materiale. 

Digital humaniora er en samlebetegnelse på forskning innen humaniora der man bruker digitalt materiale, digitale verktøy, metoder og teorier. I dag er det vel mer vanlig enn uvanlig å benytte seg av digitalt materiale i form av skriftlige kilder og bilder. Denne delen av digital humaniora er ikke ny. Men ikke så mange har tatt i bruk de store mulighetene vi nå har når det gjelder søkemetoder som forskjellige digitale verktøy tilbyr. Masterstudenter og humanistiske forskere kan utføre nye typer undersøkelser som resulterer i studier vi ikke kunne drømt om uten slike digitale verktøy.

Digitalisert kulturarv

Bare noen tastetrykk unna oss ligger en stor del av kulturarven vår. Nasjonalbiblioteket har gjennomført et enormt digitaliseringsprosjekt. Bokhylla er blant de største digitale tekstsamlingene i verden, som mange forskere i andre land misunner oss. Her finner vi mange hundre tusen aviser og bøker som består av tekster innen et mangfold sjangre. Dette er tekster som er publisert i Norge, gjennom flere århundrer. Men hvordan nyttiggjøre seg av ressursene? Hvordan finne frem? Hvordan optimalisere søkene?

Datautvinningsteknikk

Det finnes en datautvinningsteknikk, kalt sub-corpus topic modeling, som ut fra temaer i en kjent tekstsamling, muliggjør søk etter de samme temaene i en større samling av mindre kjente tekster. La oss tenke oss at du skriver en masteroppgave eller holder på med forskning der du er opptatt av synet på Amerika i Norge på 1800-tallet, slik det fremkom i aviser. Når vi har tilgang til flere hundretusen aviser i Bokhylla, sier det seg selv at ved bare å søke på “Amerika”, kan du raskt få treff som det ville tatt år og dag å gå gjennom på jakt etter det om Amerika du er interessert i. Med sub-corpus topic modeling kan vi ikke bare søke til tekster skrevet på 1800-tallet om Amerika, men vi kan stille inn søket slik at vi får opp tekster som omtaler for eksempel en bestemt holdning til Amerika. Slik kan vi nå målet om å få frem ulike syn på Amerika mye raskere enn vi ellers ville gjort. 

Denne artikkelen er ikke ment som en opplæring i hvordan du på egen hånd tar i bruk subcorpus topic modeling. Den vil likevel forklare det grunnleggende ved hvordan søkeverktøyet virker og illustrere mulighetene det gir.

Hvis du tenker at sub-corpus topic modeling er noe du vil prøve ut i din forskning, ta kontakt med Nasjonalbiblioteket så får du hjelp med nødvendige nedlastninger, oppsett og veiledning i prosessen.

Søkemodellens muligheter i kortsversjon

Kanskje er du interessert i å undersøke utbredelsen av positiv omtale av Amerika som et mulighetens land. Da kan du ta utgangspunkt i en eller flere tekster du kjenner fra perioden, tekster som tematiserer eller inneholder eksempler på det du er ute etter. Disse tekstene sier vi at fungerer som sub-korpuset. Du noterer deg så hvilke ord i disse tekstene som benyttes for å snakke om Amerika på den måten. Dette kan også gjøres automatisk, som omtales senere i denne teksten.

Disse ordene danner et tema, eller “topic” Videre kan du søke med hele dette temaet etter treff i hundretusener av dokumenter. Kanskje får du treff i tekster eller teksttyper du aldri ville tenkt på å lete i, og i tekster du ikke visste eksisterte. Arbeider du for eksempel ut fra en hypotese om at visse formuleringer om Amerika i avisartikler ofte kom i sammenheng med mangel på arbeidskraft i jordbruket, kan du lage temaer ut fra bestemte ord du har identifisert som tilbakevendende i disse måtene å snakke på. Kanskje er du ikke bare opptatt av konkrete formuleringer, men av hvordan en rekke forskjellige måter å snakke på bidro til å tone ned forestillinger om kjønnsforskjeller, eller er det nettopp å undersøke forskjellige måter å snakke om kvinner på, innen et eller flere felt, du vil undersøke. Også i slike tilfeller kan du få tak på relevante data med sub-corpus tonic modeling.

Sub-corpus topic modeling er altså et verktøy som gjør det mulig å undersøke om temaer i en eller flere tekster kan spores i et større korpus av tekster. Med temaer (topics) i denne sammenheng menes rett og slett en rekke med ord, en ordklynge / “cluster of words”, som man vurderer at til sammen utgjør en meningsfull enhet. Det ligger i betegnelsen “sub-corpus topic modeling” at temaer modelleres (settes sammen) i tekstene som utgjør det mindre korpuset, nemlig et “underkorpus” eller sub-corpus, sett i forhold til det større korpuset man ønsker å søke etter de samme temaene i. Ettersom databasen Bokhylla består av søkbare tekstsamlinger, kan vi si at den fungerer som et korpus. I alle eksemplene i denne artikkelen er Bokhylla det større korpuset det søkes i.

Et mye brukt verktøy for korpusanalyse er Jupyter Notebook. Dette er et verktøy som bruker Python som programmeringsspråk. Man trenger imidlertid ikke programmeringskompetanse for å benytte seg av Jupyter Notebook.

Jupyter Notebook

Videre i denne artikkelen skal jeg gi eksempler på sub-corpus topic modeling ved hjelp av Jupyter Notebook. Alle Jupyter Notebooks som jeg viser frem her, samt verktøy for å imøtekomme utfordringer ved søk i eldre tekster i Bokhylla, er utviklet av datalingvist og programmerer, Lars G. Johnsen ved Nasjonalbiblioteket. Når jeg skriver om hva vi har gjort, refererer jeg alltid til Lars og meg. Ingenting av dette ville vært mulig uten hans bistand. Gjennom å vise hvordan jeg har arbeidet med mitt doktorgradsprosjekt vil jeg forklare det grunnleggende ved hvordan søkeverktøyet virker og illustrere mulighetene det gir.

Eksemplet: Kvinnens plass i samfunnet

I mitt doktorgradsprosjekt arbeider jeg med spørsmålet om kvinnens plass i samfunnet i perioden 1830-1880. Mer spesifikt ønsker jeg å få fatt på tekster, det vil si avisartikler, skjønnlitteratur, religiøse tekster, politiske dokumenter og andre type tekster som på en eller annen måte tematiserer «samteler», meningytringer om synet på kvinners plass og funksjon i samfunnet i denne perioden. For å identifisere denne historisk bestemte “kvinnelighetens plass” foretar jeg diskursanalyse. Jeg vil undersøke måter å snakke om kvinnen og kvinnens plass på som elementer i en større kjønnsdiskurs som etableres i perioden. Kvinner får adgang til diskursen ved at enkelte begynner å skrive moderne romaner som rommer erfaringer med å være kvinner i samfunnet. Et utvalg av romaner av kvinnelige forfattere danner mine sub-korpora. Det er i disse romanene jeg finner frem til “topics” om kvinnen, det vil si klynger av ord som jeg mener uttrykker en idé om kvinnen, holdninger eller assosiasjoner til kvinnen eller tematiseringer kvinner var gjenstand for, som for eksempel formål med utdanning av kvinner.

Disse “topics” har vi kjørt opp mot Bokhylla-korpuset avgrenset til år 1830-80. Jeg fikk en rekke treff, blant annet i religiøse tekster. Eksistensen av de fleste av disse tekstene var for meg ukjent og om jeg hadde kjent til dem, ville jeg neppe tenkt på å konsultere dem. Få av dem hadde en tittel eller metadata som indikerer at kvinner på et eller annet vis utgjør en del av tematikken i tekstene. Med sub-corpus topic modeling har jeg fått direkte tak på avsnitt i tekstene der det skrives om kvinner i forbindelse med for eksempel ordene, plikt, rett og samvittighet (og variasjoner over disse ordene, som vi skal se). Sub-corpus topic modeling kan slik gi unike muligheter for å undersøke intellektuelle strømninger og spredning av tankegods.   

Dypdykk i sub corpus topic modeling – fire hovedtrinn

Sub-corpus topic modeling er en seksleddet prosess slik Peter Leonard, litteraturviter og direktør for Digital Humanities Lab ved Yale University, og Timothy R. Tangherlini, professor i skandinaviske studier, beskriver det. Her skal vi se på de fire hovedtrinnene. Tittelen på Leonard og Tangherlinis artikkel, “Trawling in the Sea of the Great Unread”, viser metaforene de gjør bruk av for å forklare prinsippene ved datautvinningsteknikken sub-corpus topic modeling. Å bedrive sub-corpus topic modeling er å være ute og “fiske”, hvor “tråleren” er temaene vi bruker. Trålerens utrustning er førende for hva slags fangst man får, slik temaene er det for hva slags tekstpassasjer vi får tak i. Big-data-samlingene man søker i, er som et hav av det ukjente, slik store tekstmengder kan være lite kjente eller helt ukjente for samtiden. Uttrykket “the Great Unread” brukes i denne sammenheng.

Første trinn - sub-korpus

Det første skrittet er å opprette et digitalt korpus som består av tekster man kjenner relativt godt. Dette vil være det såkalte sub-korpuset. Det kan for eksempel være én eller flere tekster som forskeren bruker som kilder i sin undersøkelse av nasjonsbyggingen i Norge på 1800-tallet. Tekstene i sub-korpuset kan gjerne være av formatet .txt.

Andre trinn - chunking

Det andre skrittet kalles “chunking” (“oppstykking”). Det innebærer at algoritmen i Jupyter Notebook deler opp teksten/e i sub-korpuset i passasjer, som en forberedende fase til temagenereringen. Dette kan kanskje fremstå litt vel “teknisk”, men bær over med meg, for det ligger en del muligheter i å sette seg inn i dette punktet.

Hva begrepet “passasje” betegner i denne sammenheng vil være kontekstavhengig, det kan være et visst antall ord, et avsnitt, kapittel eller et verk. Forskeren må vurdere i hvert enkelt tilfelle hvilken inndeling som er hensiktsmessig ut fra hva slags tekst/er korpuset består av og hvilke forskningsspørsmål man retter mot materialet.

Temaer genereres videre ved at algoritmen registrerer forekomst for alle ordene i korpuset og sammenligner passasjene teksten/e har blitt delt inn i når det gjelder ordforekomst. Dette betyr at om for eksempel ordet kvinne har høy total forekomst i korpuset og forekommer i et høyt antall av passasjene, vil algoritmen peke ut “kvinne” som et temaord. Videre tar algoritmen i betraktning samforekomst av ord: Hvis ordet kvinne ofte forekommer i nærheten av for eksempel ordet mor, vil algoritmen angi ordene kvinne og mor som del av samme tema.

Under ser vi et eksempel på temaer i Camilla Colletts “Amtmandens døtre” , der kommandoen er at 100 temaer genereres, ut fra passasjer på 100 ord og med 15 som antall temaord. Her vil man ofte få utbytte av å prøve seg frem med forskjellige innstillinger når det kommer til både “chunk size”, altså lengden på passasjene, “topic size”, som vil si antall temaord og det totale antallet temaer man ønsker generert.

Tema nummer to har jeg kalt “selvstendig moralsk refleksjon”, som består av ordene: ja, siden, o, nok, synd, sandt, søgt, hvorfor, kjere, tænke, gode, jeg!, lad, pligter.

Stopp-ord-filter

Når det gjelder “chunking”-prosessen kan det være aktuelt å gjøre bruk av et såkalt “stopp-ord-filter”. I det ligger at man kan programmere algoritmen til å se bort fra ord med de høyeste forekomstfrekvensene. Innstillingene av stopp-ord-filteret vil avhenge av antall ord totalt i korpustekstene, sjanger og forskningsspørsmålene. Det vil ofte være ord med relativt lav semantisk tetthet, som preposisjoner og determinativer, som man vil ønske å utelukke fra temagenereringen. Ord som for eksempel den, det, i og på, vil i mange tilfeller være irrelevante for meningsinnholdet man er interessert i.

I Jupyter Notebook kan man få en oversikt over de mest frekvente ordene i korpuset, samt over ordene som stopp-ord-filteret har utelatt. Man har mulighet til manuelt å fjerne ord i denne listen, slik at de vil tas i betraktning i temagenereringen, likeledes kan man legge til ord i stopp-ord-listen. Dette kan være aktuelt om enkelte ord med høy forekomst i tekstene, men ikke høy nok til å bli stoppet av filteret, vurderes som “støy”. Med støy her menes irrelevante ord for meningsinnholdet man er interessert i, og dermed ikke ønsker at skal innlemmes i temaene.

Alle disse innstillingene kan justeres. Man får ofte igjen for å prøve seg frem, både med disse innstillingene og med stopp-ord-filteret. Ikke alle temaene som angis vil være interessante å gå videre med. Forskeren må vurdere dette i hvert enkelt tilfelle ut fra sjanger, forskningsspørsmål og skjønn.

Manuelle temaer

I tillegg til den automatiske genereringen av temaer beskrevet så langt, kan det være aktuelt å lage temaer manuelt. Hvis det dreier seg om en eller flere tekster der forskeren har sett seg ut temaer og hvilke ord i teksten som danner disse, er det ikke noe i veien for å gå videre med disse temaene. I slike tilfeller trenger man strengt tatt ikke teksten i digital versjon heller.

Ekstra ord

Om man velger automatisk generering av temaer, manuell eller en kombinasjon, vil bero på forskerens kjennskap til tekstene i sub-korpuset, dets størrelse og hva man er interessert i å forske på i det enkelte tilfelle. En annen mulighet er å legge ekstra ord til temaordene. I et tema fra Fredrika Bremers roman Hertha, som jeg har kalt “kvinnelig dannelse”, som består av følgende ord: kvinde, sjel, utvikling, har jeg lagt til ord som har semantisk slektskap med temaordene, ord som pige og fruentimmer, eller dannelse og opplæring, samt forskjellige morfologiske former av disse ordene, kvinden, pigene, dannelsen, osv.  De ble ikke lagt til temaet slik at dette simpelthen besto av flere temaord, alle på samme nivå. Vi opererte heller med “sekker“ for hvert av ordene. Dette blir ytterligere forklart og illustrert i del to. Gi gjerne temaene du velger å gå videre med et navn (“label”), som jeg allerede har gitt noen eksempler på. Det bidrar til bedre oversikt.

Målkorpuset

Et siste punkt når det gjelder “chunking” vedrører målkorpuset (Bokhylla i denne sammenheng). Velger man seg for eksempel ut alle tekster i Bokhylla mellom 1860 og 1880, må man instruere algoritmen i hvordan den skal dele opp dette korpuset: Skal det søkes etter tema-match i hvert av avsnittene tekstene er inndelt i, i passasjer på for eksempel 100 ord, i hele verk eller annet? En default-innstilling er ofte at målkorpuset stykkes opp ut fra avsnittsinndeling i tekstene. Det vil si at det søkes etter tema-match i avsnitt etter avsnitt i tekstene som algoritmen gjennomgår i Bokhylla.

Tredje trinn - temamodellereren

Det tredje leddet i prosessen dreier seg om å lage selve temamodellereren, det vil si hvordan vi programmer temaene når de skal kjøres opp mot det større korpuset: Hva programmerer vi “tråleren “ til å kreve av en passasje i målkorpuset for at denne passasjen skal regnes som et treff og inngå blant resultatene våre? Hvor mange av temarordene må det være treff på? I hvilken grad er høy forekomst av for eksempel ett av temordene (men mindre eller ingen av andre) interessant for oss?

Hva gjør algoritmen?

Her bør vi først se nærmere på hva algoritmen gjør med målkorpuset når temaene kjøres opp mot det. Jaccard-indeksen tas i betraktning, hvilket betyr at antall temaord registreres i alle passasjene i dokumentene det søkes i, passasjenes temaforekomst sammenlignes deretter med hverandre og basert på disse to faktorene angis en score til hver passasje. Scoren en gitt passasje oppnår, vil være proporsjonal med heterogeniteten ved temaordforekomsten, ikke bare kvantiteten. Det vil si at en passasje der alle temaordene er representert, vil få en høyere score enn en passasje der noen av dem forekommer mange ganger, mens andre er fraværende.

Vi bestemmer deretter den såkalte likhetsverdien i Jaccard som en passasje minst må ha for at den skal regnes som et treff av temamodellereren. Krever vi match på 100 prosent, to tredjedeler eller må kanskje halvparten av temaet (halvparten av temaordene) forekomme for at passasjen kommer med blant resultatene våre? Jeg skal senere i artikkelen vise at denne innstillingen kan være avgjørende. Ved å eksperimentere med opp- og nedjustering av likhetsverdien i Jaccard kan svakheter ved temamodellereren avdekkes. Gjennom analysen av resultatene man har oppnådd med de ulike innstillingene, kan det bli tydelig hvilke eventuelle svakheter som bør utbedres ved temamodellereren.

Fjerde trinn - fange passasjer

Oppdagelse av passasjer i målkorpuset er fjerde fase av prosessen. Dette utgjør kjernen i det hele, da det å fange passasjer som reflekterer våre utvalgte temaer er selve målet for prosessen. Vi skal se på flere eksempler nedenfor. Som jeg har vært inne på, er ikke temamodellereren automatisk anvendbar på målkorpuset. Vi må regne med å måtte prøve og feile, utføre flere tester, justere parameterne, som for eksempel likhetsverdien i Jaccard. Jaccard-indeks er en metrikk innen statistikk som betegner likheten og avstanden mellom datasett (oppkalt etter den sveitsiske statistikeren Paul Jaccard).

OCR-feil i digitaliserte tekster

Fra middelalderen og frem til ca. år 1900 var gotisk skrifttype vanlig. Mange av tekstene i Bokhylla som stammer fra 1800-tallet er trykt i fraktur, en stilvariant av gotisk skrift. I digitaliseringen av tekster må disse fotograferes og avleses. Skanneren som utfører dette, har imidlertid en tendens til å feil-lese en del gotiske bokstaver. Flere av bokstavene i fraktur er ganske like hverandre i utseende. Dette, kombinert med at trykken i det originale dokumentet ikke alltid er optimal, resulterer i en rekke feilstavinger i de søkbare dokumentene i Bokhylla. Det er dette som ligger i begrepet OCR-feil. OCR står for “optical character recognition”. Med OCR-feil menes altså at den optiske tegngjenkjenningen har feilet.

Jeg skal ved hjelp av noen eksempler illustrere viktigheten av å ta problemet med OCR-feil på alvor når man søker i eldre tekster. I et av subkorpusene mine ble “kjærlighed” angitt som et av ordene i flere av temaene. Da jeg kjørte denne temarekken opp mot Bokhylla første gang, satte vi innstillingene (likhetsverdien i Jaccard) til ca. 67 prosent, to tredjedeler av temaet måtte altså identifiseres i en passasje i Bokhylla for at den skulle blinkes ut som treff av algoritmen. Det viste seg imidlertid at jeg fikk svært få treff, noe som kunne skyldes flere faktorer. Vi prøvde imidlertid først å nedjustere likhetsverdien i Jaccard: denne gangen var det tilstrekkelig med 50 prosent match. Da fikk jeg mange treff. Vi skal se på ett av dem:

(…) ‘‘I Mcend elsier Eders Hustruer (…) I Kvinder vcerer Eders egne Mcend underdanige.’’ Men her tale vi ikke om Evne eller Forpligtelse, kun om den naturlige Trang. Nuu maae vi erkjende, at thi Manden er Kjcerligheden ikke saa umiddelbar, ikke så uegennyttig, som hos kvinden. Mindre umiddelbar ; thi Manden maa overvinde sig selv for at kunne elske, Kvinden behsver egentlig kun at agte vaa sit Hjertes Dragen og at folge den. Av denne Grund undlader maaskee Skriften, der saa ofte gjor Kjcerligheden til en Pligt for Manden, at befale Kvinden den, som om den her forlod sig vaa Naturen selv. Men fremfor Alt er Mandens Kjcerlighed mindre uegennyttig : Manden elsker kvinden mere for sin egen, end for hendes Skyld ; Kvinden derimod elsker Manden mere for hans, end for sin egen Skyld. Manden, fordi han alene ikke er sig selv nok, elsker  den, som Gud har givet ham ; Kvinden, fordi hun foler, at hun er nsdvendig for Manden, elsker den, som hun er givet til av Gud.

 

I dette avsnittet var ikke ordet kjærlighed blitt talt en eneste gang, men vi ser hvorfor: æ’en er konsekvent blitt tolket av leseren i skanneren som “ce”. Ordet mænd ville heller ikke blitt registrert av samme årsak. Vi ser også et tilfelle av OCR-feil i ordet elsker. Ø’ene har dessuten blitt lest som enten s eller o. I og med at vi bare hadde krevd 50 prosent match, fant jeg lite slektskap mellom subkorpuset og dette treffet i målkorpuset, men det var et nyttig treff for bevisstgjøring når det gjelder OCR-feil.

Ved hjelp av disse erfaringene, samt feilstavinger som viste seg i andre resultater fra denne kjøringen, e’er er ofte feil-lest som c, for eksempel, laget jeg meg en oversikt over typiske OCR-feil. Det er til stor hjelp med tanke på å få flere relevante treff om man bare tar høyde for utbredte OCR-feil. Jeg gikk deretter gjennom alle temaene mine og la til ord med feilstavinger jeg anså som sannsynlige, basert på erfaringene mine. For temaordet “kjærlighed" ble nå varianter som disse lagt til: “kjcerlighed” og “kjcerlighcd”. De ble ikke lagt til temaet slik at dette simpelthen ble bestående av flere temaord, alle på samme nivå. Dette ville ført til at vi måtte satt ned kraftig hva vi krevde av tema-match, da alle stavevarianter ikke vil opptre i alle potensielt relevante passasjer i målkorpuset. Vi opererte heller med “sekker“ for hvert av ordene. Her ser du eksempel på tre slike “ordsekker” for temaordene kjærlighed, hjerte, sandhed i et tema jeg har kalt “Er kjærligheden sann?”:

“Er kjærligheden sann?”: (…) kjærlighed_: kjærlighed, kjærligheden, kjærlighedens, kjcerlighed, kjcerligheden, kjcerlighedens, kjcrrlighed, kjcrrligheden, kjcrrlighedens, kjaerlighet, kjaerligheten, kjaerlighetens; hjerte_: hjerte, hjcrtc, hjcrte, hjente, hjertes, hjentes, hjcrtcs, hjcrtes; sand_: sand, sant, sann, sandt, saud, sard, sardt, sart, sannheden, sandheden, sannhed, sandhed, sandhedens, sannhedens, sandhcd, sandhcdcn, sandhcdcns; (…)

Men selv etter forskjellige stavevarianter var lagt til i “sekkene” for hvert temaord, fikk jeg resultater som viste at OCR-feil opptrer langt utover hva jeg var i stand til å resonnere meg frem til ved hjelp av de tidligere resultatene jeg hadde fått. Det å inkludere søkeord ut fra erfaringer med utbredte OCR-feil, tar oss et stykke på vei når det gjelder å unngå at potensielt relevante søkeresultater går oss hus forbi, men det er ikke alltid tilstrekkelig.

Wildcard search

Ønsker man en oversikt over varianter av ordet man er interessert i, men som ikke baserer seg på antakelser, trenger man innsyn i de faktiske variantene som forekommer i Bokhylla av gitte ord. Dette er mulig å få (langt på vei i det minste) med verktøyet wildcard search, eller jokersøk som gir oss mulighet til å søke direkte i Bokhylla etter ords forskjellige stavemåter. Mange vil være kjent med at man kan søke med en joker eller asterisk (*): Søker man i en database med for eksempel “demokrat*”, vil man få treff også på ord som “demokrati”, “demokratisk”, “demokratifremmende” osv. Med algoritmen wildcard search har vi imidlertid muligheten til å sette inn flere jokere. Vi kan erstatte de bokstavene i søkeordet som vi antar det er sannsynlig at kan være feil-lest, med jokere, og dermed får vi som resultat en liste med ord som gir oss oversikt over faktiske stavelsevarianter av søkeordet vårt i Bokhylla og den totale forekomsten for hver av dem.

Vi ser av eksemplet med ordet kjærlighed et relativt stort antall forskjellige stavelsevarianter og for flere av dem et høyt nok antall forekomster til at det blir betydningsfullt å inkludere dem i temaenes “ordsekker”. Innstillingen “factor” bestemmer opptil hvor mange flere tegn enn antall tegn i søkeordet som et ord i Bokhylla kan inneholde og likevel gjennomgås av algoritmen. Vi så at bokstaven æ ofte leses som “ce”, det vil dermed være nødvendig å sette “factor” til 1 for at ord med slike feilstavinger skal fanges opp. Kanskje ønsker man også at andre bøyningsformer av ordet gås gjennom, for eksempel ikke bare ubestemt form entall av et substantiv, men også bestemt form entall, samt flertallsformene, da må man øke “factor” tilsvarende. Setter man den til en relativt høy verdi, vil man gjerne også få med sammensatte ord.

Kanskje skal man undersøke om enkelte av de bokstavene man vurderer som lite sårbare for OCR-feil (og derfor ikke har erstattet med jokere), også kan ha blitt feil-lest. Men desto flere bokstaver i ordet man erstatter med jokere, desto lenger tid vil algoritmen bruke. Dessuten, jo flere tegn man erstatter med jokere, jo flere ord vil være kompatible med søkeordet, og man risikerer dermed å få “støy” i resultatene. Man må derfor prøve seg frem og gjøre flere forskjellige søk for hvert av ordene. Hvor lenge man holder på med wildcard search-algoritmen for hvert av ordene, avhenger av lengden på ordet og hvor tålmodig man er.

Ved søk i eldre tekster i Bokhylla (opptil ca år 1900) kommer man et godt stykke på vei med å ta høyde for typiske OCR-feil som beskrevet i boksen. Vil man dermed gå enda grundigere til verks når man søker i eldre tekster, trykt med gotisk skrift, er wildcard search-algoritmen et utmerket verktøy.

Digital humaniora gir unike muligheter

Nå er det viktig ikke å la seg skremme verken av tekniske termer eller mulige feilkilder. Er du interessert i å søke i tekster forfattet senere enn ca. 1890 er OCR-feil lite utbredt, og fra tidlig på 1900-tallet er ikke dette lenger noe nevneverdig problem. Da har man én ting mindre å holde styr på om man vil bruke sub-corpus topic modeling, et datautvinningsverktøy som åpner for nye muligheter til å studere utbredelse av intellektuelle strømninger. Kanskje finner du ved hjelp av sub-corpus topic modeling for eksempel ut at det ble snakket positivt, på en helt spesifikk måte som du er interessert i, om norsk medlemskap i EF i så langt ukjente sammenhenger og teksttyper. Eller la oss si at du er interessert i å få tak på positiv/negativ omtale av en minoritet, uten å begrense deg til kun å se på ett spesifikt ordvalg, da kan du fylle på i de nevnte ordsekkene med beslektede ord eller ord du vet ofte har en beslektet funksjon. Det kan gi treff i et bredere spekter av fora og bli nyttige data om du ønsker å undersøke mer overordnede funksjoner av for eksempel å snakke positivt eller negativt om noe eller noen. Mulighetene for å oppdage tekster du ikke ante fantes og som viser seg å være relevante kilder for det du ønsker å undersøke, er mange.

Digital humaniora er et ungt forskningsfelt. Hittil har en del resultater støttet opp under allerede etablerte teorier. Fjernlesning av store datamengder som forskjellige datautvinningsverktøy muliggjør, har altså pekt i samme retning som resultater oppnådd tidligere med mer tradisjonelle metoder innen humaniora. Men det er også viktig i forskningen! Dessuten er digital humaniora i rask utvikling og søkeverktøyene blir stadig flere og mer sofistikerte. Sub-corpus topic modeling er ett av dem. Det kan også tenkes at det vil være andre digitale verktøy som vil være midt i blinken for ditt prosjekt. Ta kontakt med Nasjonalbiblioteket hvis du vil prøve deg. Mulighetene er mange og vil bare bli flere.

Emneord: Metode, Disipliner Av Heidi Karlsen
Publisert 4. mars 2019 14:03 - Sist endret 5. des. 2019 13:39