En del av projektet Svenskan i Finland – i dag och i går är ett korpusprojekt i vilket finlandssvenska texter läggs in i Språkbanken vid Göteborgs universitet. I Språkbanken är texterna tillgängliga för allmänheten och sökbara med Språkbankens korpusgränssnitt Korp. Gränssnittet och den finlandssvenska korpusen presenterades för läsarna i förra numret av Språkbruk. I den här artikeln ska jag berätta mer om det tekniska inom korpusprojektet och de finlandssvenska texterna jag har arbetat med. Hur får man in texterna i Korp? Vilka processer har de finlandssvenska materialen undergått innan de blir sökbara i gränssnittet och vilka verktyg används? 

Det finlandssvenska material som har lagts in i Korp har varit mycket heterogent. Merparten av det nytillkomna materialet, som mest består av skönlitterära texter och tidskrifter, har kommit in i PDF-format, medan de tidigare finlandssvenska korpusarna från CSC redan från början har varit i något mer strukturerat format, det vill säga XML eller TEI. XML är ett märkspråk med vilket man kan skilja dokumentets logiska struktur från innehållet. Om materialet från början är i XML är det relativt lätt att gå direkt till nästa fas i processen, eftersom man i alla fall bör ha texterna i XML för korpusen. PDF och andra textformat som inte innehåller någon strukturerad information, kräver mer arbete. PDF-filen måste först omvandlas till en vanlig textfil, och textfilen kan man sedan omvandla till XML. Före omvandlingen till XML måste texterna ibland hyfsas till lite, till exempel korrekturläsas, eftersom det kan uppstå fel i den automatiska omvandlingen.

Det enklaste sättet att skapa en XML-fil från ett textdokument är att lägga hela dokumentet mellan två XML-taggar, som kan se ut t.ex. så här:

<text author=”Ahlfors, Bengt” title=”På bio. Berättelser och bekännelser om levande bilder” publisher=”Söderströms förlag” år=”2008”>
… den egentliga texten…
</text>

I starttaggen finns det i detta fall information om textförfattaren, titeln, förlaget och utgivningsåret. Den här informationen kan variera lite enligt textgenren, till exempel för tidskrifterna och tidningarna innehåller den titeln, numret och årgången.

TEI-filerna är redan i ett strukturerat format som liknar XML, men också dessa filer måste processeras lite. TEI-taggarna bör stängas och några tecken bör också ändras, till exempel å, ä, ö och stora bokstäver orsakar fel:

 *f|r *riksradions vidkommande finns dispositionsplanerna till p}seende i *nya redaktionshusets sj{tte v}ning i aulan intill programchefens kansli . *n{rmare uppgifter erh}lles av*ingalill *stenstr|m.

 *visavi *radio *mellannyland handhar*stefan *backholmdispositionsplanen.

I det här avsnittet från ett TEI-dokument är paragraferna märkta med starttaggen <p>. För att göra dokumentet till XML måste de här taggarna stängas, alltså få en sluttagg </p> i slutet av varje paragraf. <emph>-taggarna i paragraferna var redan stängda. I exemplet ser man också hur skandinaviska tecken och stora bokstäver ser ut i de ursprungliga TEI-filerna.

Själva kodningen av XML-dokumenten sker på en server vid Göteborgs universitet via en distansförbindelse. Det första jag gör med dokumenten är automatisk meningssegmentering och tokenisering. Tokeniseringen betyder att texten uppdelas i ord så att det är lättare att processera dokumentet vidare.  Det följande steget är en ordklasstaggning, det vill säga att orden annoteras med en ordklass samt med information om till exempel böjning och bestämdhet. Därefter gör man också en grundformstaggning, alltså försöker ta fram grundformen för varje ord, och en sammansättningsanalys för sammansatta ord. Eftersom allt detta görs helt automatiskt kan det uppstå fel i processen med några mer sällsynta, mångtydiga eller felskrivna ord, men vanligtvis har tokeniseringen och ordklasstaggningen fungerat bra. Med hjälp av den syntaktiska parsern MaltParser gör man en syntaktisk analys för meningarna. Dessa annotationer sker automatiskt, men man kan också plocka med valfria annotationer, till exempel information om upphovsman/författare, utgivningsår osv.

Allt detta gör man genom att använda en mängd programscript som är gjorda i programmeringsspråket Python. Ett script är ett litet datorprogram som har gjorts för någon specifik uppgift och som tolkas under körningen. Några av programmen använder också andra program, till exempel de verktyg med vilka man gör ordklasstaggningen eller den syntaktiska parsningen. Filerna omvandlas till ett format som kallas ”verticalized text”, eller kort sagt vrt. Ett enkelt  exempel på formatet kan se ut så här:

Sparkrav NN NN.NEU.SIN.IND.NOM |sparkrav| |sparkrav..nn.1$
p PP PP |p| |p..pp.1| |p..1| | | $
120 RG RG.NOM | | | | | 03 04 $
miljoner NN NN.UTR.PLU.IND.NOM |miljon| |miljon..nn.1| $
euro NN NN.UTR.SIN.IND.NOM |euro| |euro..nn.1| |euro..1| $
r VB VB.PRS.AKT |vara| |vara..vb.1| |vara..1| | $
en DT DT.UTR.SIN.IND |en| |en..al.1| |den..1|en..2| | $
rfil NN NN.UTR.SIN.IND.NOM |rfil| |rfil..nn.1| |rfil$
t PP PP |t| |t..pp.1| |t..1| | | $
yrkeshgskolorna NN NN.UTR.PLU.DEF.NOM | | | $
. MAD MAD | | | | | 11 06 $


En rad innehåller ett ord och ordets alla annoteringar. I annoteringarna ingår ordklasstaggningen, grundformen och de strukturella annoteringar som inte gäller för ett ord utan för en större mängd, till exempel titeln på en bok. Dessa strukturella annoteringar är representerade som XML-taggar.

När korpusen är konverterad till vrt-format ska den slutligen läggas ut i Korps sökgränssnitt. Det här arbetet har gjorts av Martin Hammarstedt vid Göteborgs universitet. För att göra texterna sökbara i Korp använder man ett verktyg som heter Corpus Workbench. Corpus Workbench är en samling av öppna verktyg med vilka man kan arbeta med stora textkorpusar. Workbench omvandlar filerna ännu en gång, till ett eget binärt format, och sedan är de färdiga att läggas ut på servern. När man gör sökningar i Korp, kommunicerar Korp med Corpus Workbench på servern.