Praktikum 14 Geograafiline tekstianalüüs (1)

Geograafiline tekstianalüüs on uurimissuund ja metodoloogia, mis ühendab kirjandusteaduste traditsioonilised tekstianalüüsi meetodid ruumianalüüsi ja arvutuslike tekstianalüüsi meetoditega.

Geograafilise tekstianalüüsi nimi on kitsamalt seotud Lancasteri ülikooliga ning nimedega nagu Ian Gregory, Christopher Donaldson, Patricia Murrieta-Flores jt. Ehkki Lancasteri ülikooli projekt Mapping the Lakes: A Literary GIS ei olnud kaugeltki mitte esimene projekt, mis kirjandusteoste kaardistamisega tegeles, oli see üks esimesi, mis süsteemselt tegeles sellega, et demonstreerida, kuidas digiteerimise ja GISi abil saab visualiseerida ja analüüsida (ajaloolisest) struktureerimata tekstist välja kooruvaid mustreid, kohtade eri kujutamisviise ning kohtadega seotud tundmusi, kujutlusi jms.

*Mapping the Lakes*: kahe poeedi reisikirjeldustes mainitud kohtade võrdlus [@Gregory&Cooper2009]

Joonis 14.1: Mapping the Lakes: kahe poeedi reisikirjeldustes mainitud kohtade võrdlus (Gregory et al. 2009)

Kohtadega seotud emotsioonid poeedi reisikirjelduses ([Mapping the Lakes](https://www.lancaster.ac.uk/mappingthelakes/Exploratory%20Maps.htm))Kohtadega seotud emotsioonid poeedi reisikirjelduses ([Mapping the Lakes](https://www.lancaster.ac.uk/mappingthelakes/Exploratory%20Maps.htm))

Joonis 14.2: Kohtadega seotud emotsioonid poeedi reisikirjelduses (Mapping the Lakes)

Inglismaa Lake District ehk "järvemaa" piirkond (© User:Nilfanion / Wikimedia Commons / CC-BY-SA)

Joonis 14.3: Inglismaa Lake District ehk “järvemaa” piirkond (© User:Nilfanion / Wikimedia Commons / CC-BY-SA)

Inglismaa Lake District ehk "järvemaa" piirkond (© User:Diliff / Wikimedia Commons / CC-BY-SA)

Joonis 14.4: Inglismaa Lake District ehk “järvemaa” piirkond (© User:Diliff / Wikimedia Commons / CC-BY-SA)

Esimesele projektile Inglismaa Järvemaa piirkonnast järgnesid jätkuprojektid Spatial Humanities: Texts, GIS & Places ja Geospatial Innovation: A Deep Map of the Lake District. Kui esimeses projektis tehti kohtade ja nendega seotu tuvastamisel rohkem käsitööd, siis järgnevates kasutati juba enam tekstide ja keele automaattöötluse vahendeid. Samuti kasutati hilisemates projektides ka muid andmeid (nt rahvastikuandmeid).

Praegu võib geograafilise tekstianalüüsi keskmeks pidada niisiis korpuslingvistiliste meetodite kasutamist, ent laiemalt võib sellesse valdkonda lugeda mis tahes kohtadega seotud kirjandusliku või ajaloolise teksti analüüsi ja visualiseerimise, nn literary GIS või literary mapping.

Literary Mapping in the Digital Age [@Cooper&Donaldson&Murrieta-Flores2016] (vaata [sisukorda](https://books.google.ee/books?id=v_EyDAAAQBAJ&printsec=frontcover&hl=et#v=onepage&q&f=false))

Joonis 14.5: Literary Mapping in the Digital Age (Cooper et al. 2016) (vaata sisukorda)

Geograafilises tekstianalüüsis on prominentsel kohal tekstides mainitud kohanimed ja nendega seostuv:

  1. Mis kohtadest tekstides räägitakse?
  2. Kuidas tekstides nendest kohtadest räägitakse?
  3. Mida räägitakse tekstides nende kohtadega seotud objektide ja nähtuste kohta?

Geograafiline tekstianalüüs on seega üks tekstide kauglugemise (distant reading) tehnikatest, mille abil tuvastada tekstidest mustreid.

Humanitaarteadustes on meetodit kasutatud põhiliselt ajalooliste (st enne 20. sajandit kirjutatud) tekstide analüüsil, eeskätt ilmselt autoriõiguste tõttu, ent sellel on suur ühisosa ka tänapäevaste avalike (nt Twitteri) tekstide analüüsiga. Ajalooliste tekstide puhul lisandub analüüsi sageli teoste digiteerimise protsess (nt käsitsi sisestamine või tärktuvastus), mida võivad oluliselt komplitseerida aja jooksul toimunud muutused näiteks

  • kirjastamiskonventsioonides,
  • trükiformaatides,
  • keeles,
  • kirjaviisis.

14.1 Sammud

Geograafilises tekstianalüüsis on tüüpiliselt 3 põhisammu.

  1. Tekstis viidatud kohanimede tuvastamine.
    • Kohanimesid võib tuvastada mõistagi käsitsi, teksti lähilugemisel, aga üha enam kasutatakse tänapäevaseid loomuliku keele töötluse vahendeid (automaatne nimetuvastus, Named Entity Recognition). Üksikute tekstide puhul tagab käsitsi otsimine kindlasti parema kvaliteedi, ent suuremate tekstikorpuste puhul läheb see liiga aeganõudvaks ja ressursimahukaks.
    • Probleeme:
      • kohtadele ei ole alati viidatud konkreetsete kohanimedega (nt Anne sauna taga, kaks kilomeetrit Elvast läände, see küla, kust me läbi sõitsime); sageli seda aga ignoreeritakse põhjenduse toel, et konkreetsete kohanimedega tehakse veidi teisi asju kui ümberütlemistega: luuakse korraga tahtlikult narratiivset JA geograafilist ruumi.
      • probleemid metonüümiaga (nt saab kohanime märgendi hoopis organisatsioon mingi riigi valitsuse, meeskondade vmt puhul, Itaalia võttis vastu otsuse…, Eesti kaotas 1-8);
      • digiteerimise käigus tekib alati vigu, ükskõik kas tärktuvastuse või käsitsi sisestamisega;
      • ajaloolistes kohanimedes palju varieeruvust, seal esinevad kohanimed ei pruugi sisalduda ka andmetes, mille peal automaatse analüüsi vahendid on treenitud;
      • kui oskad veidi skripte kirjutada, saab nimetuvastust omakorda täiendada reeglitega (nt määra konstruktsioonid “X talu” alati kohanimedeks).
  2. Tuvastatud kohanimede ehk toponüümide sidumine koordinaatidega.
    • Enamasti kasutatakse selleks koordinaatidega varustatud kohanimeloendeid (gazetteer) või kohanimeandmebaase (nimeüksuste vastete leidmine ehk Named Entity Matching).
    • Probleeme:
      • ühe ja sama kohanimega võib viidata mitmele kohale, tuleks lahendada viitesuhted. Selleks võib alati valida näiteks kõige tõenäolisema viite, täpsustada piirkonda või ka käsitsi õige viite määrata;
      • kui oskad veidi skriptida, saab siingi kasutada samuti mingeid reegleid ja statistilisi tõenäosusi (nt Lisbon või Berlin viitavad üldiselt tõenäolisemalt Euroopa kohanimedele, aga Ameerika kirjanike puhul või USA idarannikust rääkides USA samanimelistele väikelinnadele).
  3. Mainitud kohtade ja nendega seotu analüüsimine, tõlgendamine ja visualiseerimine.
    • Identifitseeritud kohtade mainimissagedusi võib võrrelda näiteks rahvastikunäitajatega (kas tihedamini asustatud kohti mainitakse ka rohkem? kas kohtade sündimus- või suremusnäitajad korreleeruvad nende mainimiste sagedusega?), muude ajalooliste, etnograafiliste vm andmetega. Aga võib ka analüüsida seda, mis kontekstis kohanimesid on tekstides mainitud, näiteks mis emotsioonidega seoses, milliste omadussõnadega seoses jne.
    • Siin võib kasutada muu hulgas korpuslingvistilisi meetodeid (nt sagedasti koosesinevate sõnapaaride ehk kollokatsioonide tuvastamine), ühisloomet (nt lastakse inimestel mingeid kohtadega seotud tekstilõike mingil alusel hinnata või märgendada), aga loomulikult ka kvalitatiivset analüüsi.
    • Analüüsi käigus selgub ka, milliseid osi tekstikorpusest tuleb n-ö lähilugeda ja milliste osadega saab hakkama ka kauglugemise teel.
    • GISi võib kasutada selles etapis põhimõtteliselt ka lihtsalt visualiseerimiseks, aga on ka palju võimalusi põhjalikumaks analüüsiks.

Kaht esimest sammu ehk kohanimede tuvastamist ja eraldamist tekstist ning nende koordinaatidega sidumist nimetatakse kokkuvõtvalt ka geoparsimiseks (geoparsing). Geoparsimine on seega laiem mõiste kui asukohamärgistamine või geokodeerimine, kuna tegeleb ka kohanimede tuvastamisega tekstist ning samuti ebamäärasemate kohaviidete tuvastamise ning viitesuhete lahendamisega.

Geoparsimine ühendab kohanimede tuvastamise ja koordinaatidega sidumise [@Grittaetal2018]

Joonis 14.6: Geoparsimine ühendab kohanimede tuvastamise ja koordinaatidega sidumise (Gritta et al. 2017)

14.2 Näited

Mapping the Emotions of London in Fiction, 1700-1900: A Crowdsourcing Experiment
Londoni kujutamine kirjanduses [@Heuseretal2016]

Joonis 14.7: Londoni kujutamine kirjanduses (Heuser et al. 2016)

  • Uuritud, milliseid Londoni kohti mainiti 1700.-1900. aastate kirjandusteostes, kas neid kohti kujutati pigem positiivsete või negatiivsetena ning milliste faktoritega vastav hinnang korreleerus.
  • Kasutasid kohanimede tuvastamiseks automaatset nimetuvastust ja ka ajaloolisi kohanimeloendeid.
  • Lasid ühisloome käigus inimestel märgendada, kas mainitud kohas toimub sündmus või seda ainult mainitakse ning kas kohaga seostatakse hirmu või õnnelikkust.
Londoni kujutamine kirjanduses [@Heuseretal2016]

Joonis 14.8: Londoni kujutamine kirjanduses (Heuser et al. 2016)

  • Leiti, et kohtade mainimise arv ei korreleerunud Londoni elanike tegeliku jaotumisega ja Londoni üldise arenguga, vaid kirjandusteostes jäädi kuni 20. sajandini välja miskipärast ikkagi kinni Londoni 17. sajandi sotsiaalsesse geograafiasse.
  • Kohtade seostamine õnnelikkusega korreleerus mingite piirkondade moderniseerumise ning sellega kaasnevate hüvedega, samas kui hirm jällegi seostus pigem piirkondadega, kus asusid distsiplinaarasutused, aga ka näiteks turgudega.
  • Kirjanduslik perspektiiv pakub seega alternatiivse kaardi Londoni mõistmiseks (peab mingeid osi vähem oluliseks või mainimisväärseks). Kirjanduses rõhutatakse pigem mingite kohtade ajaloolist, avalikku ja kaubanduslikku tähtsust.



GIS and Literary History: Advancing Digital Humanities research through the Spatial Analysis of historical travel writing and topographical literature
  • Analüüsitud kolme 18. sajandi briti reisija - luuletaja Thomas Gray, loodusteadlase Thomas Pennanti ja põllumehe Arthur Youngi - kirjeldusi nende reisidest läbi Lake Districti, selleks et mõista, kuidas selle piirkonna looduslikud objektid ja maastik (orud, mäed jms) kujundasid seda, mis kohti rändajad külastasid, miks nad mingeid kohti teistele eelistasid ja miks mingeid kohti mainisid, ent ei külastanud.
  • Kohanimed tuvastatud käsitsi, koordinaadid määratud kohanimeloendi järgi.
  • Punktipõhisest esitusest rastermudeli juurde: reisikirjades kohad mitte kui diskreetsed objektid, vaid üleminekud.
Kohtadest kirjutamine ja maastikud [@Murrieta-Flores2017]

Joonis 14.9: Kohtadest kirjutamine ja maastikud (Murrieta-Flores et al. 2017)

  • Kasutatud levinud geoinfosüsteemipõhiseid analüüsimeetodeid (Cost-Surface Analysis, Least-Cost-Path Analysis, spatial proximity test, Line Density Analysis) selleks, et analüüsida, kuidas Lake Districti suhteline ligipääsetavus mõjutas reisijate valitud teekondi ja sellest tulenevalt nende kogemusi. Esmalt simuleerisid mudelitega n-ö looduslikud koridorid ning seejärel arvutasid, kas reisikirjades kujutatud kohad on nendele koridoridele lähemal kui puhta juhuse läbi võiks oodata. Vastavalt looduslikele koridoridele ning kohtadele, mida kirjutajad mainisid, modelleeriti ka nende tõenäolised liikumisteekonnad ning vaadati, kas mõned piirkonnad said kolme reisija peale kollektiivselt eriti palju tähelepanu.
Kohtadest kirjutamine ja maastikud [@Murrieta-Flores2017]

Joonis 14.10: Kohtadest kirjutamine ja maastikud (Murrieta-Flores et al. 2017)

  • Leiti, et reisijad tõepoolest liikusid mööda looduslikke koridore ning et liiguti põhiliselt kolme järve ümbruses, kuhu ehitati 18. sajandil ka paremaid teid.

14.3 Ressursid

Geoparsitud tekstikogusid ei ole väga palju. Seega tuleb huvipakkuvate tekstidega teha läbi kõik ülal nimetatud sammud ise. On mõned valmislahendused, kuhu lihtsustatult öeldes läheb tekst sisse ja välja tuleb geoparsitud fail, milles on eraldatud kohanimed ja määratud neile koordinaadid.

  • Näiteks võib kasutada Edinburgh Geoparserit (jookseb ainult Macil ja Linuxil, aga Linuxi virtuaalmasina abil ka Windowsis; juhend kasutamiseks siin), mis kasutab geoparsimisel kontekstilist infot, et leida tekstist kohanimed ning määrata neile õiged koordinaadid. On olemas ka online testversioon: http://jekyll.inf.ed.ac.uk/geoparser/. Edinburgh Geoparser kasutab muu hulgas GeoNamesi koordinaatide jm infoga varustatud üldist kohanimeloendit (sisaldab ka nt u 15 000 Eesti kohanime).
  • Geocode.xyz
  • CamCoder
  • CLAVIN: programmi peab enne ise kompileerima (nõuab, et Java ja selle tööriist Maven oleksid installitud)
  • DBpedia Spotlight
  • GEOLocate veebiparser on pigem geokodeerija (NB! failiformaat)

Eri geoparserite võrdlemiseks võib kasutada nt EUPEG Java-rakendust (demoversioon siin: https://geoai.geog.buffalo.edu/EUPEG/#).

14.3.1 Eesti keele geoparsimine

Nimetatud ressursse saab mingil määral kasutada ka eesti keele jaoks, ent eesti keele puhul raskendab kohanimede tuvastamist oluliselt erinevate käändevormide kasutamine. Proovi näiteks mõnes ülalnimetatud geoparseritest parsida esmalt lõik

Annely Peebo was born on November 16, 1971, in Võhma. She studied choir conducting and piano in Tallinn and singing in Vienna. In the second half of the 1990s, she moved from Estonia to Austria. She has starred in a French film and hosted the 2002 Eurovision Song Contest in Tallinn. She has also sung in Tartu.

ja seejärel vastav eestikeelne tekst

Annely Peebo sündis 16. novembril 1971 Võhmas. Ta on õppinud Tallinnas koorijuhtimist ja klaverimängu ning Viinis laulmist. 1990ndate teises pooles kolis ta Eestist Austriasse. Ta on mänginud ühes Prantsusmaa filmis ning juhtinud Tallinnas 2002. aastal toimunud Eurovisiooni. Ta on laulnud ka Tartus.

Eesti keele automaatanalüüsi tööriistade kõige terviklikum komplekt sisaldub Pythoni EstNLTK teegis, mille kaudu on võimalik kasutada nii nimetuvastajat kui ka morfoloogilist analüsaatorit. Nende kasutamiseks tuleb aga osata pisut Pythoni skripte kirjutada (baasasjad saab üpris lihtsa vaevaga omandada nt siit), nimetuvastuse kasutamise juhendi leiab siit.

EstNLTK nimetuvastaja eristab kolme tüüpi nimesid:

  • isikunimed (PER),
  • kohanimed (LOC),
  • organisatsiooninimed (ORG).

Samu tööriistu, mida EstNLTK teegis, kasutatakse ka nimetuvastuse demorakenduses (kuni 5000 tähemärgi pikkusele tekstile) https://ner.tartunlp.ai/. Ajalooliste tekstide nimetuvastuseks arendatud tööriistade prototüübid on kättesaadavad lehel https://github.com/soras/vk_ner_lrec_2022.

Tuvastatud kohanimede algvormid saab omakorda saata näiteks Maa-ameti geokodeerimise teenusesse, et siduda kohanimed koordinaatidega. Võib kasutada ka QGISi geokodeerimise tööriistu (nt Batch Nominatim geocoder’it või mõnd paljudest pistikprogrammidest).

Geoparsimiseks ongi lisaks valmislahendustele oluliselt laialdasemad võimalused erinevates programmeerimiskeeltes (nt Pythonis, Bashis, JavaScriptis). Pythonil on nt geoparsimise teegid Mordecai ja geoparsepy, mis võtavad sisendiks teksti ja väljastavad kohanimed koos koordinaatidega. Samuti kasutavad Pythonit suurem osa ülal nimetatud “valmis” geoparseritest.

14.4 Ülesanded

14.4.1 Geoparsimise katsetamine

Kasutame siin Lake Districti korpuse (Corpus of Lake District Writing) tekstikatkeid, et testida veebis kättesaadavate geoparserite võimekust.
Korpuses on kokku 80 teksti aastatest 1622-1900 ning need esindavad erinevaid žanre ja autoreid.
28 tekstis on käsitsi märgendatud kohanimed (u 250 000 sõna), mis moodustavad nn kuldstandardi, mille suhtes automaatse analüüsi vahendeid testida. Loe ka siit.

Võtame teksti gold_standard_txt/Gray_cqp_13.txt ja üritame saada sellest veebiparserite abil kätte kohanimed ja nende koordinaadid.

Hindame geoparsimise kvaliteeti. Kasutame võrdluseks käsitsi märgendatud kohanimede loendit (failis gold_standard_names/Grat_cqp_13.csv) ning leiame (ligilähedase) protsendi nimedest, mille parser suutis tuvastada, ning nimedest, mille parser valesti kohanimeks analüüsis.

14.4.2 Kohanimede tuvastamine

Katsetame tekstikatkenditel automaatset nimetuvastust näiteks Dandelioniga, displaCyga, TextAnalysisOnline vm tööriistaga, mis nimetuvastuse funktsioone sisaldab.

Proovime ka mõnd eestikeelset teksti.

14.4.3 Kohanimede geokodeerimine

Katsetame järgmiseks QGISi sisse-ehitatud geokodeerijat: Processing → Toolbox → Batch Nominatim geocoder. Geokodeerime faili gold_standard_names/Gray_cqp_13.csv, kus on kõik Gray tekstis esinenud kohanimed (käsitsi märgendatud).

Batch Nominatim geocoder

Joonis 14.11: Batch Nominatim geocoder

Hindame geokodeerimise kvaliteeti. Milliste nimedega oli raskusi? Võrlde saadud kaarti ka Mapping the Lakes projekti omaga aadressil https://www.lancaster.ac.uk/mappingthelakes/Gray%20Base%20Map%202.html.

Võime punkte visualiseerida ka nii, et näitame suuremalt korduvalt esinevaid nimesid. Selleks võime näiteks kasutada DB Manageri ja luua uue kihi.

Korduvate punktide kokkulugemine

Joonis 14.12: Korduvate punktide kokkulugemine

Sellisel juhul saame Symbology jaotises valida Marker → Size, vajutada paremas ääres oleval kastil ja valida Field type väärtuseks loodud tulp count.

Teine variant on kasutada punkti suuruse visualiseerimiseks kohe geokodeeritud kihi Symbology jaotises avaldist count("name", group_by:="name"), ilma uut kihti tekitamata. Selleks vali kastikesel klikkides Expression → Edit ja sisesta avaldis.

Korduvate punktide kokkulugemine ilma uut kihti tekitamata

Joonis 14.13: Korduvate punktide kokkulugemine ilma uut kihti tekitamata

14.5 Järgmisel korral

Eestikeelsete tekstide kohanimede tuvastamine, standardiseerimine, geokodeerimine ja nendega seotud teksti analüüs.