• No results found

Undersökande studie inom Information Extraction

N/A
N/A
Protected

Academic year: 2021

Share "Undersökande studie inom Information Extraction"

Copied!
84
0
0

Loading.... (view fulltext now)

Full text

(1)

INOM

EXAMENSARBETE TEKNIK, GRUNDNIVÅ, 15 HP

,

STOCKHOLM SVERIGE 2016

Undersökande studie inom

Information Extraction

Konsten att klassificera

ERIK TORSTENSSON

FREDRIK CARLS

(2)

Kandidatexamensarbete

Industriell Ekonomi

Datateknik och Kommunikation

***

Unders¨

okande studie inom

Information Extraction

Konsten att Klassificera

Erik Torstensson, 890213-0536; eriktors@kth.se

Fredrik Carls, 940411-0034; frcarls@kth.se

(3)

Abstract

This paper is an investigatory report about Information Extraction. The main purpose is to create and evaluate methods within Information Extrac-tion and see how they can help improve the scientific result in classificaExtrac-tion of text elements. A subtask is to evaluate the existing market for Information Extraction in Sweden.

For this task a two-part computer program has been created. The first part is just a baseline with a simple method and the second one is more advanced with tools used in the field Information Extraction. The field we investigate is how often men and women are mentioned in seven different newspapers in Sweden. The result compares these two methods and evaluates them using scientific measurements of information retrieval performance.

The results of the study show similar occurrences of men and women between the baseline and the more advanced method. The exception being that the more advanced method has a higher scientific value. The market for Informa-tion ExtracInforma-tion in Sweden is dominated by large corporaInforma-tions owned by the media, which also provide the data for these kinds of companies to analyze. This makes it hard to compete without having a new innovative idea.

Keywords:

(4)

Sammanfattning

Denna uppsats ¨ar en unders¨okande studie inom Information Extraction. Hu-vudsyftet ¨ar att skapa och utv¨ardera metoder inom Information Extraction och unders¨oka hur de kan hj¨alpa till att f¨orb¨attra det vetenskapliga resultatet av klassificering av textelement. En deluppgift ¨ar att utv¨ardera den befintliga marknaden f¨or Information Extraction i Sverige.

F¨or att g¨ora detta har vi skapat ett program best˚aende av tv˚a delar. Den f¨orsta delen utg¨ors av ett basfall som ¨ar en enkel metod och den andra ¨ar mer avancerad och anv¨ander sig av olika tekniker inom omr˚adet Information Extraction. F¨altet vi unders¨oker ¨ar hur ofta m¨an och kvinnor n¨amns i sju olika nyhetsk¨allor i Sverige. Resultatet j¨amf¨or dessa tv˚a metoder och utv¨arderar dem med vetenskapliga prestationsm˚att inom Information Extraction. Studiens resultat visar p˚a liknande f¨orekomster av m¨an och kvinnor mel-lan basfallet och den mer avancerade metoden. Undantaget ¨ar att den mer avancerade metoden har ett h¨ogre vetenskapligt v¨arde. Marknaden f¨or In-formation Extraction i Sverige ¨ar dominerad av stora medie¨agda bolag, d¨ar media dessutom f¨orser dessa f¨oretag med data att analysera. Detta g¨or att det blir sv˚art att konkurrera utan en ny innovativ id´e.

Nyckelord:

(5)

Inneh˚

all

Inneh˚all 1 1 Inledning 4 1.1 Uppdragsbeskrivning . . . 4 1.2 Begrepp . . . 4 1.3 Fr˚agest¨allning . . . 5 1.4 Syfte . . . 5 1.5 Hypotes . . . 6 1.6 Begr¨ansningar . . . 6 2 Bakgrund 8 2.1 Bakgrund . . . 8 2.2 Uppdragsgivarens intresse . . . 8 2.3 Teorier . . . 9 2.3.1 Inledning . . . 9 2.3.2 Information Extraction . . . 9

2.3.3 Named Entity Recognition . . . 10

2.3.4 Precision, t¨ackning och F-measure . . . 10

2.3.5 SWOT . . . 12 2.3.6 Porters femkraftsmodell . . . 12 3 Metod 14 3.1 Inledning . . . 14 3.1.1 Basfallet . . . 14 3.1.2 NER Implementationen . . . 14

3.1.3 Gold Standard och studie . . . 15

(6)

6 Diskussion 24

6.1 Inledning av diskussion . . . 24

6.2 Diskussion av metodens resultat . . . 24

6.3 Diskussion av studiens resultat . . . 27

7 Marknadsanalys 29 7.1 Nul¨aget . . . 29

7.2 Sverige som marknad . . . 30

7.2.1 Retriever AB . . . 30

7.2.2 Gavagai AB . . . 30

7.2.3 Bisnode AB . . . 31

7.2.4 Recorded Future AB . . . 32

7.3 Uppskattning av marknadens v¨arde och tillv¨axt . . . 33

7.4 Diskussion . . . 33

7.4.1 SWOT . . . 33

7.4.2 Porters femkraftsmodell . . . 35

7.4.3 Marknadsanalys . . . 36

8 Slutsats 38 8.1 Besvarande av fr˚agest¨allningar . . . 38

8.2 Slutsatser och rekommendationer . . . 38

9 Vidare studier 40 Referenser 41 Appendix 44 A Resultat 44 A.1 Metodens resultat . . . 44

A.1.1 Aftonbladet . . . 44

A.1.2 Dagens Industri . . . 45

A.1.3 Dagens Nyheter . . . 46

A.1.4 Expressen . . . 47

A.1.5 G¨oteborgs-Posten . . . 48

A.1.6 Metro . . . 49

A.1.7 Svenska Dagbladet . . . 50

A.2 Studiens resultat . . . 51

A.2.1 Aftonbladet . . . 51

A.2.2 Dagens Industri . . . 52

A.2.3 Dagens Nyheter . . . 53

(7)

A.2.5 G¨oteborgs-Posten . . . 55

A.2.6 Metro . . . 56

A.2.7 Svenska Dagbladet . . . 57

(8)

1

Inledning

1.1

Uppdragsbeskrivning

Arbetet g˚ar ut p˚a att utforska omr˚adet Information Extraction (IE) som f¨orenklat handlar om att extrahera information fr˚an skriven text. Vi kommer ¨

aven in p˚a omr˚adet Named Entity Recognition (NER) som ¨ar ett delomr˚ade inom IE som g˚ar ut p˚a att lokalisera och klassificera element i texter. Exem-pel p˚a omr˚aden d¨ar detta kan vara anv¨andbart ¨ar inom aktieanalys d¨ar posi-tivt laddade nyckelord som exempelvis ”stark ordering˚ang” eller ”bra kassa-fl¨ode” etc. kan anv¨andas f¨or att bed¨oma om ett f¨oretags rapport ¨ar positiv eller negativ och d¨armed f¨oranleda en aktieaff¨ar [1]. Det anv¨ands ocks˚a in-om bioteknik-branschen d¨ar stora m¨angder medicinska rapporter analyseras utifr˚an nyckelord som specifika gen- och proteinnamn f¨or att hitta relevanta studier som kanske annars hade kommit bort i den stora m¨angd som produce-ras varje ˚ar [2]. F¨or att unders¨oka omr˚adet IE s˚a har vi en implementationsdel d¨ar vi kommer att skapa ett data-program som analyserar svenska nyhetstid-ningar. Programmet kommer att l¨asa in nyhetsartiklar, analysera dem och r¨akna f¨orekomsterna av m¨an, kvinnor och k¨onsneutrala personer. Detta f¨or att unders¨oka nyhetsk¨allornas f¨ordelning av k¨onsben¨amningar. Vi kommer att ha ett basfall d¨ar vi analyserar texterna p˚a enklast m¨ojliga s¨att, genom att r¨akna f¨orekomsten av k¨onspecifika pronomen (ex. han, hon). D¨arefter kommer vi att implementera metoder som ofta anv¨ands inom detta omr˚ade, ordlistor av namn och mer en avancerad analys av meningsuppbyggnaden. Detta f¨or att se hur metodens resultat f¨orb¨attras med hj¨alp av IE tekni-ker.

D¨arefter kommer vi att diskutera resultaten och vilka funktioner som var v¨arda att anv¨anda. Det kan vara s˚a att vissa f¨orb¨attringar ¨ar sv˚ara att im-plementera och samtidigt ger en v¨aldigt liten eller ingen f¨orb¨attring alls. Diskussionen kommer ¨aven att inneh˚alla en ekonomisk- och marknadsana-lysdel d¨ar vi diskuterar potentiella aff¨arsomr˚aden d¨ar den h¨ar tekniken kan anv¨andas.

1.2

Begrepp

(9)

Named Entity Recognition (NER) - Omr˚ade inom IE. Identifierar och klas-sificerar element i text.

Gold standard - Det av oss manuellt r¨attade resultatet av antalet k¨onsben¨amningar. Anv¨ands som facit f¨or att att avg¨ora hur bra programmet presterar.

Basfallet - Den enklaste implementationen vi skapat. R¨aknar k¨onsspecfika pronomen i texten.

NER implementationen - Den mer avancerade implementationen vi skapat. F¨orutom k¨onsspecifika pronomen tar den ¨aven h¨ansyn till k¨onsben¨amningar i form av namn.

Studiens resultat - Syftar p˚a utf¨orandet av den framtagna metoden. Allts˚a den faktiska k¨onsuppdelningen f¨or de olika nyhetsk¨allorna.

Metodens resultat - Syftar p˚a prestationsm˚atten av metoden. Allts˚a preci-sionen, t¨ackningen och F-measure av studiens resultat i f¨orh˚allande till gold standard. Det vi unders¨oker i v˚ar fr˚agest¨allning.

1.3

Fr˚

agest¨

allning

• Kan vi med hj¨alp av Information Extraction f¨orb¨attra metodens re-sultat, d.v.s. i st¨orre utstr¨ackning f˚a den att efterlikna gold standard i j¨amf¨orelse mot basfallet?

• Hur ser marknaden ut f¨or Information Extraction i Sverige och skulle det finnas aff¨arsm¨ojligheter f¨or program likt det vi skapat?

1.4

Syfte

Arbetets syfte ¨ar att unders¨oka omr˚adet Information Extraction. Hur kan det anv¨andas i praktiken f¨or att f¨orb¨attra en automatiserad inl¨asning av data? Finns det potentiella aff¨arrsm¨assiga m¨ojligheter f¨or teknologin?

M˚alet ¨ar att ta fram en vetenskaplig metod som i enlighet med ¨ovriga veten-skapliga uppsatser ska kunna g¨oras om och j¨amf¨oras med framtagna resultat. Det ¨ar ¨aven intressant att j¨amf¨ora studiens resultat mot data framtaget av befintliga liknande program.

(10)

av metoderna som anv¨ands. Den kommer f¨orhoppningsvis att uppskattas av andra som har liknande problem eller som ¨ar intresserade av omr˚adet i stort. V˚art program kommer klassificera k¨onsben¨amningar i skriven text. Uppgiften ¨

ar konkret och det vetenskapliga resultatet kommer kunna replikeras f¨or de som skulle vilja g¨ora det.

1.5

Hypotes

Den hypotes vi arbetar med ¨ar att NER implementationen kommer att f¨orb¨attra metodens resultat i f¨orh˚allande till basfallet. Slutprodukten ska bli b¨attre ¨an basfallet. Denna hypotes grundar sig p˚a den litteratur vi har l¨ast inom omr˚adet d¨ar v¨aldigt stora steg har tagits inom detta f¨alt [3]. Vi tror att inf¨orandet av en ordlista med vanliga manliga och kvinnliga namn i den avancerade versionen kommer f¨orb¨attra metodens resultat avsev¨art. Det ¨

ar n˚agot som vi ocks˚a har sett i andra program beskrivna i vetenskapliga artiklar [4].

Med tanke p˚a v˚ar konkreta uppgift kommer hypotesen att kunna testas re-lativt enkelt. Vi kommer att ta fram ett antal olika prestationsm˚att f¨or pro-grammets prestanda mot ett facit, s˚a kallad gold standard. Gold standard skapas genom att vi sj¨alva i egenskap av experter tar ut k¨onsben¨amningar ur ett axplock av texterna f¨or varje nyhetssida. Hypotesen testas sedan genom att j¨amf¨ora metodens resultat av basfallet och NER implementationen mot denna gold standard.

Ang˚aende v˚ar andra fr˚agest¨allning ¨ar hypotesen att det ¨ar en v¨axande mark-nad med stor potential f¨or program likt det vi skapat. I takt med att datorer och bandbredd f¨orb¨attras s˚a har vi sett hur omr˚aden som anv¨ander sig av big data utvecklas och omr˚adet Information Extraction verkar bli allt st¨orre [5]. Detta g¨or att vi tror att marknaden i Sverige ¨ar attraktiv f¨or denna typ av f¨oretag och v¨ard att investera i.

1.6

Begr¨

ansningar

(11)

behandla 500 artiklar per nyhetsk¨alla mellan 06/04-13/04 ˚ar 2016. Program-met r¨aknar k¨onspecifika pronomen och namn.

(12)

2

Bakgrund

2.1

Bakgrund

Eftersom arbetet g˚ar ut p˚a att konstruera ett program som ska analyse-ra texter och utvinna information s˚a kommer det breda omr˚adet att vara Spr˚akteknologi samt mer specifikt Information Extraction(IE). Spr˚akteknologi syftar till att behandla ett naturligt spr˚ak med hj¨alp av en dator. IE definieras ofta som processen att selektivt strukturera och kombinera explicit eller indi-kerad data f¨or att g¨ora den l¨attillg¨angligt f¨or informationss¨okningsuppgifter [10]. Exempelvis g¨allande v˚ar uppgift finns redan informationen tillg¨anglig i texten, det ¨ar endast en fr˚aga om att sortera bort resten av informationen som ges. Vidare finns det ett smalare omr˚ade inom IE som kallas f¨or Name Entity Recognition (NER). NER anv¨ands f¨or att lokalisera och klassificera element i en text till f¨ordefinierade kategorier s˚asom personnamn, organisatio-ner, platser osv. Med en s˚adan funktionalitet skulle metodens resultat i st¨orre utstr¨ackning likna det av expert utf¨orda tester. Skapandet av NER system har tv˚a olika angreppss¨att; lingvistisk grammatikregel baserad och statistisk maskininl¨arnings baserad [11]. Handgjorda regelbaserade system har oftast en h¨ogre precision (antalet identifierade r¨attklassificerade elementen ¨ar h¨og), till kostnaden av l¨agre t¨ackning (urvalet minskar) samt mycket manuellt ar-bete. Statistiska system kr¨aver en st¨orre m¨angd tr¨aningsdata [3].

Genom en state-of-the-art analys av omr˚adet ser vi att det finns m˚anga prak-tiska program som har liknelser till v˚ar f¨ormodade slutprodukt. IE ¨ar ett brett omr˚ade som har anv¨ants och utvecklats under flera ˚artionden [12]. Det finns bland annat f¨oretag vars syfte ¨ar att med hj¨alp av IE baserade program sor-tera fram nyhetsartiklar som ¨ar relevanta i ett visst sammanhang, t.ex. f¨or ett annat f¨oretag. Speciellt finns det ett program under namnet ”Genews” [13] vars uppgift ¨ar densamma som v˚ar. D¨aremot ges ingen information el-ler k¨allkod till hur programmet fungerar, vilka antaganden som gjorts eller begr¨ansningar som satts. Det var bland annat detta program som gav upp-hov till intresset f¨or arbetet. Efter konstruktion av programmet s˚a ligger det allts˚a n¨ara till hands att j¨amf¨ora studiens resultat mot det fr˚an Genews f¨or att dra slutsatser kring deras tr¨affs¨akerhet.

2.2

Uppdragsgivarens intresse

(13)

Jo-han Boye som var v˚ar l¨arare i den kursen och tillsammans kom vi fram till uppgiften vi har idag. I j¨amst¨alldhetsdebatten har det kommit fram en lik-nande tj¨anst som letar efter f¨orekomster av genusben¨amningar som heter Genews [13]. Genews tj¨anst visar att m¨an f¨orekommer i 60% av nyhetsar-tiklarna i Sverige men beskriver samtidigt inte alls hur de har kommit fram till den siffran. De beskriver vagt att de analyserar nyhetssidor och letar efter ”k¨onsspecifika ord” men inte s˚a mycket mer ¨an s˚a. Detta blev en in-tressant uppgift att unders¨oka, dels att faktiskt kontrollera sanningshalten i n˚agot som har anv¨ants i samh¨allsdebatten i Sverige men ocks˚a att f¨ordjupa sig inom ett f¨or oss intressant omr˚ade. Att kontrollera antalet k¨onsspecifika ben¨amningar i en text ¨ar bara ett exempel p˚a en anv¨andning inom hela omr˚adet Information Extraction och Named Entity Recognition. V˚ar imple-mentation i sig har f¨ormodligen ett begr¨ansat anv¨andningsomr˚ade utanf¨or sj¨alva samh¨allsdebatten men tillv¨agag˚angs¨attet kan appliceras inom intres-santa omr˚aden som medicin [2] och finansmarknaden [1].

2.3

Teorier

2.3.1 Inledning

I omr˚adesbeskrivningen presenterade vi kort de relevanta teorierna och me-toderna f¨or implementationsdelen av detta arbete. Dessa inkluderade Infor-mation Extraction (IE) och Named Entitiy Recognition (NER). IE definieras som uppgiften att automatiskt h¨amta ut strukturerad information fr˚an ett ostrukturerat eller semistrukturerat maskinl¨asbart dokument [12]. P˚a grund av sv˚arigheten i problemet begr¨ansar sig de flesta nuvarande implementatio-ner till en viss dom¨an [12]. NER ¨ar en deluppgift av IE som lokaliserar och klassificerar element i en text till f¨ordefinierade kategorier [12].

Inom den marknadsanalys och den tillh¨orande unders¨okningen av aff¨arsm¨ojligheter som vi genomf¨ort s˚a har vi anv¨ant oss av SWOT-analys [14] och Porters fem-kraftsmodell [15]. Detta f¨or att f˚a en bra bild ¨over hur marknaden ser ut, hur gynnsam den ¨ar och f¨or att kunna f¨orutse potentiella m¨ojligheter eller hinder vid en hypotetisk kommersialiseringsprocess.

2.3.2 Information Extraction

(14)

fr˚an sin traditionella karakt¨ar som ett forskningsf¨alt pr¨aglat av experiment och observationer till ett forskningsf¨alt inom information d˚a merparten av arbetet g˚ar ut p˚a att analysera stora m¨angder av data [16]. F¨oljaktligen ¨okar betydelsen av hur vi lagrar, hanterar och s¨oker efter information. Inom t.ex. enbart den medicinska branschen finns det fler ¨an 15 miljoner vetenskapli-ga artiklar publicerade och antalet ¨okar med omkring 40.000 stycken varje ˚ar [16]. Dessa publikationer inneh˚aller v¨ardefull information som kan f¨ora omr˚adet fram˚at, men utan en bra metod att ta tillvara p˚a denna information kommer mycket arbete f¨orbli ouppm¨arksammad och d¨armed i m˚anga fall upprepas. Genom att anv¨anda oss av Information Extraction kan informa-tionen klassificeras och struktureras f¨or snabbare och l¨attare ˚atkomst.

2.3.3 Named Entity Recognition

Implementationsdelen kommer framf¨orallt anv¨anda sig av Named Entity Re-cognition (NER) metodiken varf¨or vi ger en mer utf¨orlig beskrivning av den-na. F¨or att dra slutsatser av en text skriven i naturligt spr˚ak kr¨avs en analys. Ett exempel p˚a en s˚adan text kan vara “John Olofsson arbetade f¨or IBM 2006”. Med f¨orkunskaper p˚ast˚ar vi att John ¨ar en person, IBM ¨ar ett f¨oretag och att 2006 ¨ar en tidpunkt. Vi kan i enlighet dra slutsatsen att John var an-st¨alld hos IBM under ˚aret 2006. NER fungerar p˚a ett liknande s¨att. Genom att g˚a igenom meningen identifierar datorn olika satsdelar, och kategorise-rar dem [12]. [John Olofsson]person arbetade f¨or [IBM]f¨oretag [2006]tid. I en annan text kan vi hitta annan information om John. Genom att koppla ihop informationsk¨allorna f˚ar vi l¨att och snabbt en bra ¨overblick av John ist¨allet f¨or att beh¨ova s¨oka igenom massa olika text utspridda ¨over internet. Det kan tyckas vara en enkel uppgift men blir snabbt invecklat. Om vi utg˚ar fr˚an meningen “Paris Hilton kommer till Paris” inser vi att problem kan uppst˚a. Elementen m˚aste genomg˚a tester f¨or att f¨ors¨akra sig om att de blir r¨attklassificerade. F¨or att motverka att “Paris” taggas som en egen f¨orekomst anv¨ands chunking (uppdelning i satsdelar).

2.3.4 Precision, t¨ackning och F-measure

(15)

˚asikt) till ett set av svar som agerar gold standard. F¨or att utv¨ardera meto-dens prestation j¨amf¨ors dess svar med gold standard.

Tv˚a prestationsm˚att som ofta anv¨ands inom IE ¨ar precision samt t¨ackning. Givet resultatet av ett experiment och en gold standard beskrivs precision som delm¨angden av fall som experimentets resultat taggade som positivt d¨ar ¨aven gold standard hade taggat positivt. T¨ackning definieras tv¨artom som delm¨angden av positiva fall i gold standard som ¨aven blivit taggade som positivt av experimentet [17]. F¨or en grafisk beskrivning av m˚atten se Figur 1. I sig sj¨alvt s¨ager m˚atten inte s¨arskilt mycket om prestandan hos experimentet, men om de kombineras i dess harmoniska medelv¨arde, kallat F-measure s˚a kan slutsatser dras kring denna. F-measure ¨ar ett vanligt prestationsm˚att f¨or att utv¨ardera NER implementationer [18].

F − measure = 2 ×T ¨ackning × P recision P recision + T ¨ackning

(16)

2.3.5 SWOT

SWOT ¨ar en f¨orkortning av de engelska orden ”Strengths” (styrkor), Weak-nesses (svagheter), Opportunities (m¨ojligheter) och “Threats” (hot). Det ¨ar ett strukturerat planeringsverktyg som anv¨ands inom f¨oretagsekonomin f¨or att bed¨oma framtida projekt eller verksamheter. SWOT:en kan g¨oras f¨or en person, industri, f¨oretag eller marknad och delar upp interna och externa faktorer i fyra underkategorier f¨or att se om projektet ¨ar genomf¨orbart eller inte. Det ¨ar oftast i det tidiga planeringsskedet som SWOT anv¨ands. Detta f¨or att tidigt kunna avg¨ora l¨onsamheten i projektet och om det inte finns, hitta andra v¨agar fram˚at [14].

2.3.6 Porters femkraftsmodell

(17)
(18)

3

Metod

3.1

Inledning

Programmet best˚ar av tv˚a delar, basfallet och en mer avancerad del som kommer implementera metoder inom omr˚adet Information Extraction (IE) f¨or att f¨orb¨attra metodens resultat. Den andra delen kallar vi f¨or Named Entity Recognition (NER) implementationen.

Gemensamt f¨or programmets olika delar ¨ar att de kommer l¨asa in artiklar fr˚an sju olika svenska nyhetssidor; Aftonbladet [19], Expressen [20], Dagens Nyheter (DN) [21], Dagens Industri (DI) [22], G¨oteborgs-Posten (GP)[23], Metro[24] samt Svenska Dagbladet (SvD) [25]. Dessa artiklar h¨amtas fr˚an retriever [6] som agerar oberoende databas f¨or samtliga svenska nyhetstid-ningar. Vi har valt att begr¨ansa oss till att h¨amta ut 500 artiklar per ny-hetsk¨alla mellan 06/04-13/04 ˚ar 2016. Tillkommande felk¨allor diskuteras i avsnittet Felk¨allor. Ur datam¨angden extraherar programmet sj¨alva artikel-texterna som sedan bearbetas av programmet.

3.1.1 Basfallet

Basfallet kommer vara en enkel implementation vars enda uppgift ¨ar att l¨asa in artikeltexten och sedan ord f¨or ord kontrollera samt ber¨akna f¨orekomsten av k¨onsspecifika pronomen.

3.1.2 NER Implementationen

NER implementationen kommer f¨orutom att utnyttja basfallets funktion ¨

(19)

av en mening f¨ormodligen inte ska tolkas som ett namn. S˚adana ord place-ras i separata listor f¨or att vidare unders¨oka deras rimlighet. Om de sedan visar sig vara korrekta och faktiskt syftar till en person s˚a ˚aterplaceras de i listan ¨over potentiella personnamn. En annan viktig metod ¨ar tolkningen av efternamn. Ofta presenteras personer i nyhetsartiklar med f¨or och efternamn f¨or att sedan omn¨amnas med n˚agon av dessa. Programmet l¨oser detta ge-nom att sammankoppla efternamnsben¨amningar med f¨orsta f¨orekomsten av personen i fr˚aga. Detta kan ses som att programmet “l¨ar” sig vilka personer som omn¨amns i texten f¨or att sedan kontrollera om personerna omn¨amns p˚a annat vis ¨an p˚a det de redan finns lagrade.

3.1.3 Gold Standard och studie

F¨or att utv¨ardera v˚ar metod s˚a var vi tvungna att ha n˚agot att j¨amf¨ora resultatet med, ett facit eller gold standard. Vi testade programmet med slumpm¨assigt valda artiklar ur den totala datam¨angden vars resultat vi se-dan genomg˚aende utv¨arderade. De slumpm¨assiga artiklarna h¨amtades genom att k¨ora en random number generator [27] med intervallet 1-500 tio g˚anger f¨or varje k¨alla f¨or att sedan s¨oka upp och plocka ut dessa artiklar fr˚an da-tam¨angderna. Utv¨arderingen av gold standard k¨orningen sker genom att vi analyserar de utvalda artiklarna genom att manuellt l¨asa artiklarna och mar-kera k¨onsben¨amningar. Med andra ord agerade vi spr˚akexperter. Metodens resultat j¨amf¨ordes mot det manuellt utr¨aknade f¨or att kunna dra slutsat-ser programmets prestationsf¨orm˚aga i form av precision, t¨ackning och F-measure. Dessa prestationsm˚att f¨orklaras mer utf¨orligt under rubrikenPrecision, t¨ackning och F-measure. Dessa nyckeltal tar vi fram framf¨orallt f¨or att kun-na utv¨ardera NER implementationens prestanda j¨amf¨ort mot basfallets men ocks˚a f¨or att skapa en robusthet och relevans f¨or utf¨orandet av den st¨orre unders¨okande studien p˚a samtliga artiklar av datam¨angden.

3.2

Metodval

(20)

Figur 3: Illustration av metodens trattutseende

3.3

Programmet

(21)

i Appendix samt p˚a github under profilen FredrikCarls i “Kandidatexamens-arbete” repot1.

3.3.1 Basfallet

Basfallet utg¨or den simpla implementationen som lagrar tre olika listor med k¨onsspecifika pronomen, en f¨or varje kategori; kvinnor, m¨an och k¨onsneutrala personer. D¨arefter g˚ar programmet igenom texten ord f¨or ord och om n˚agot av de k¨onsspecifika pronomenen identifieras s˚a ¨okar den f¨orekomsten f¨or den-na k¨onskategori i enlighet.

3.3.2 Ordlistan

Ordlistan tar emot versalOrdListan och l˚ater dess versalordskombinationer genomg˚a tester mot namnlistorna f¨or att sedan placera de f¨ormodliga perso-nerna som omn¨amns i personListan, vilket ¨ar en Hashtable som inneh˚aller textens personer samt antalet f¨orekomster av dessa i texten. D¨arefter ska-par vi MatchListorna, en f¨or varje k¨onskategori som inneh˚aller f¨ornamnen i personListan.

3.3.3 NER

NER klassen tar ¨aven den emot versalOrdListan. F¨orsta delen av program-met behandlar punktOrdListan. Vi j¨amf¨or punktOrdListan mot MatchLis-torna som vi skapade i “Ordlista.java” och skapar os¨akerhetsListor med de ord som matchas. De os¨akra orden tas bort fr˚an Matchlistorna f¨or att se-dan efter strikt kontroll antingen l¨aggas tillbaka eller f¨orbli borttagna. Med antagandet att personer oftast n¨amns en g˚ang i texten med f¨or och efter-namn ger vi os¨akerhetslistorna kriteriet att orden minst en g˚ang skall ha f¨orekommit med efternamn. Om detta ¨ar fallet s˚a tar programmet tillbaka dem till MatchListorna. Slutligen tar programmet bort alla personer ur per-sonListan som inte f¨orekommer i MatchListorna. N¨ar personListorna sen ¨ar f¨ardigst¨allda s˚a g˚ar programmet ¨an en g˚ang igenom versalOrdListan f¨or att identifiera ben¨amningar av enbart efternamn och ¨oka f¨orekomsterna av de p˚averkade personerna.

(22)

3.3.4 Flowchart

(23)

4

Resultat

Syftet med resultatet ¨ar att erh˚alla ett diskussionsunderlag f¨or utv¨ardering av metoden, ta reda p˚a f¨ordelningen av k¨onsben¨amningar hos nyhetssidorna samt att unders¨oka om detta resultat skiljer sig mellan basfallet och NER im-plementationen. Metodens resultat presenteras i form av precision, t¨ackning och F-measure medan studiens resultat presenteras i form av procentuell f¨orekomst av de olika k¨onspecifika ben¨amningarna.

4.1

Metodens genomsnittsresultat

(24)

Figur 6: Det av samtliga nyhetsk¨allor genomsnittliga resultatet f¨or metodens NER implementation.

4.2

Studiens genomsnittsresultat

(25)

Figur 8: Det av samtliga nyhetsk¨allor genomsnittliga resultatet f¨or studien med metodens NER implementation.

4.3

Sammanfattning av Resultat

Det centrala diskussionsunderlaget utg¨ors av genomsnittsresultaten av samt-liga nyhetsk¨allor i s˚av¨al metodens som i studiens resultat.

Vi ser under Metodens genomsnittsresultat (Figur 5) att basfallet i gold stan-dard k¨orningen uppn˚ar en v¨aldigt h¨og precision p˚a 96,6%, detta till kostnad av en l¨agre t¨ackning som endast uppn˚ar 28,7%. Detta ger oss ett F-measure p˚a 44,3% vilket ¨ar f¨orh˚allandevis l˚agt. Vidare ser vi att metodens resultat med NER implementationen (Figur 6) uppn˚ar en f¨orh˚allandevis h¨og preci-sion p˚a 92,8%, utan att dra ned p˚a t¨ackningen allt f¨or mycket som ligger p˚a 72,1%. Detta ger NER implementationen ett F-measure p˚a 81,1%, n¨astan dubbelt s˚a h¨ogt som basfallet.

(26)

5

Felk¨

allor

Vi h¨amtade samtliga artiklar fr˚an Retriever. En felk¨alla med Retriever ligger i att vissa nyhetssidor lagrades i webb format och vissa i tryckt format. Av de nyhetssidor vi anv¨ande i studien var de som lagrades i tryckt format Aftonbladet, DN, GP, samt SvD och de som lagrades i webb format DI, Expressen, GP, Metro, samt SvD. Det ¨ar sv˚art att dra slutsatser kring hur detta p˚averkar resultaten men vad vi sett ¨ar att artiklarna fr˚an det tryckta formatet har en s¨amre text-h¨amtare d˚a vissa artiklar ¨ar tomma och vissa saknar rubriker. Ytterligare ett problem med Retrievers text-h¨amtare ¨ar att den ibland inte l¨aser in punkt ordentligt. Detta kan f¨ors¨amra inl¨asningen av artikeln vilket i sin tur p˚averkar resultaten negativt. V¨arsta fallet uppst˚ar om ett versalord kommer direkt efter det oregistrerade punktordet. I det fallet kommer ett personnamn registreras med punktordet som f¨ornamn och det andra versalordet som efternamn. Detta leder till att programmet kommer sl¨appa igenom ¨ovriga f¨orekomster av punktordet samt l¨agga p˚a alla ensamma f¨orekomster av versalordet.

Ytterligare en felk¨alla ¨ar den begr¨ansade m¨angden data. Till studien har vi analyserat sju olika nyhetssidor ett tillf¨alle d¨ar vi h¨amtat ut de 500 senas-te artiklarna fr˚an sju dagar. F¨or att ˚atg¨arda felk¨allan kr¨avs det en st¨orre datam¨angd ¨over en l¨angre unders¨okningsperiod.

Vidare n¨amndes en felk¨alla under Metodens inledning. Unders¨okningsperioden sammanfaller med sportevenemang vilket kan p˚averka studiens resultat i manlig fav¨or. Dock p˚averkar inte denna tillf¨allighet rapporten avsev¨art med tanke p˚a att fokus snarare ligger p˚a metodens resultat ¨an studiens.

Vi beslutade oss f¨or att basera unders¨okningen p˚a namnlistor med person-namn med minst 50 f¨orekomster i Sverige. Detta medf¨or dock att vi missar flera ovanliga artistnamn som exempelvis Madonna som endast innehas av 22 personer i Sverige.

En annan aspekt vi bortsett ifr˚an ¨ar att personnamn kan skrivas som Alfa von Beta eller Alfa de Beta osv. Detta pga. den ¨okade komplexiteten och l˚aga frekvensen. Avv¨agningen vi gjorde, med avseende p˚a projektets omfattning, var att den ¨okade arbetsinsatsen f¨or att ta h¨ansyn en s˚adan marginell ¨okning av t¨ackningen inte var ber¨attigad.

(27)

l¨osning f˚ar ses som bortfall.

Tack vare v˚ara antaganden g¨allande vad som definieras som en k¨onsben¨amning och basfallets funktionalitet s˚a kommer basfallet att tagga fel p˚a vissa f¨orekomster av hans och hennes. Om det i texten st˚ar ex hans dotter s˚a syftar texten p˚a en kvinna. Basfallet kommer trots detta tagga f¨orekomsten som en mans-ben¨amning d˚a den rakt av l¨aser in hans.

En annan anomali i programmet uppst˚ar om en persons efternamn ocks˚a ¨

(28)

6

Diskussion

6.1

Inledning av diskussion

N¨ar analys sker av liknande program inom kategorin Information Extraction som exempelvis Genews ¨ar det l¨att att inbilla sig att uppgiften ¨ar enkel och objektiv med de illustrativa graferna p˚a dess hemsida. I verkligheten ¨ar det mycket sv˚art, subjektivt och i m˚anga fall “om¨ojligt” att dra slutsatser om genusben¨amningar i texterna. Exempelvis kan de referera till personerna i texterna med deras initialer eller ursprung (k¨opingkillen o.s.v.). En allm¨an v¨agledare till v¨alskrivna texter inkluderar att anv¨anda sig av synonymer f¨or att undvika upprepning. Om inte antaganden och begr¨ansningar presente-ras, vilket ett arbete med dessa omst¨andigheter kr¨aver, s˚a blir resultatet op˚alitligt.

6.2

Diskussion av metodens resultat

Metodens resultat f¨or basfallet ¨ar v¨antat (Figur 5). Den h¨oga precisionen f¨orklaras genom att implementationen ¨ar s˚a pass enkel. Den ska endast r¨akna f¨orekomster av k¨onsspecifika pronomen som exempelvis “han” eller “hon”. Vad kan g˚a fel? Trots detta resonemang uppn˚ar basfallet inte 100% preci-sion. Vad beror det p˚a? N¨ar vi framst¨allde v˚ar gold standard utgick vi ifr˚an antagandet att k¨onsspecifika pronomen kan kopplas till den som omn¨amns i texten. Om det exempelvis st˚ar hans dotter syftar texten p˚a en kvinna, varf¨or vi anser att det ¨ar en kvinnlig ben¨amning. Basfallet kommer dock rakt av l¨asa in hans och i enlighet ¨oka den manliga f¨orekomsten i texten. Vi skulle lika g¨arna kunnat anta att vi med ”hans dotter” syftar till honom vil-ket skulle g¨ora att precisionen uppn˚ar 100%. Vi valde dock det f¨orstn¨amnda. Eftersom NER implementationen ocks˚a anv¨ander sig av basfallet s˚a kom-mer ¨aven dess precision att minska tack vare detta antagande. Basfallets l˚aga t¨ackning f¨orklaras p˚a liknande s¨att, implementationen ¨ar helt enkelt f¨or enkel. K¨onsben¨amningar kan h¨arledas till m˚anga fler element ¨an specifi-ka pronomen. Dessa element inkluderar bland annat personnamn(ex Patrik Jonsson), yrkesroller(sjuksk¨oterskan) och personliga egenskaper(20-˚aringen, k¨opingkillen, mannen etc.).

(29)

m˚anga s˚a kallade “falska alarm” som minskar precisionen. Det stod snabbt klart att s˚adant var fallet med en implementation som endast anv¨ander sig av namnlistor. Med en s˚adan lyckades vi extrahera samtliga personnamn ur texten (exklusive ensamma f¨orekomster av efternamn). Samtidigt erh¨oll vi olika falska alarm. Vi har slutat ¨overraskas av vad m¨anniskor faktiskt kan heta. Exempelvis f˚angade programmet ord som Kina, Hon, Han, Prinsen, London osv. och taggade dessa som personnamn trots en begr¨ansning av att f¨ornamnen ˚atminstone ska b¨aras av 50 personer i Sverige. Ibland kan det st¨amma men oftast handlade det om att orden var l¨ander, st¨ader eller att de hade hamnat i b¨orjan av en mening. Efter detta best¨amde vi oss f¨or att l¨agga fokus p˚a precisionen eftersom vi ans˚ag att det ¨ar viktigare att metodens resultat ¨ar korrekt ¨an att vi lyckas identifiera samtliga k¨onsben¨amningar i texten. Detta beslut genomsyrar NER implementationens utseende som en ”tratt” samt dess resultat, h¨og precision till kostnad av lite l¨agre t¨ackning. Men den l˚aga t¨ackningen beror inte endast p˚a fokus p˚a precision. Liksom bas-fallet t¨acker inte NER implementationen samtliga element. H¨ar tar vi h¨ansyn till personnamn men inte yrkesroller och personliga egenskaper. Anledning-en till varf¨or vi valde att inte g¨ora detta ¨ar komplexiteten som tillkommer samt l˚ag frekvens av f¨orekomster. F¨or att ta reda p˚a vem som avses med 20-˚aringen kr¨avs mer f¨orfinade metoder samt m¨ojligtvis externa databaser, om detta ens r¨acker till. En s˚adan l¨osning skulle allts˚a kr¨ava vidare forskning inom omr˚adet Information Extration ¨an Named Entity Recogition, d¨ar v˚art fokus med personnamnen nu har legat.

Som vi konstaterade under ”Sammanfattning av Resultat”har vi en h¨og kor-relation mellan Figur 5 och Figur 6. Avvikelsen f¨orklaras genom namnlistorna i NER implementationen. Eftersom listorna ¨ar s˚a pass stora delar de flertal namn som Janne, Lee, Robin, Daniel, Andrea, Hanna osv. Vissa av dessa ¨

(30)

namn d¨ar den hittar ett p˚af¨oljande pronomen.

Vidare har vi testat namnlistor av olika storlekar. Listorna ¨ar h¨amtade fr˚an SCB [26] i form av tilltalsnamn. Listorna vi anv¨ander ¨ar tilltalsnamn med minst 10, 50 och 100 b¨arare i Sverige. Ovanliga namn kommer f¨orsvinna i takt med att vi ¨okar kraven p˚a f¨orekomster i Sverige. Vi s˚ag att den kvinnolistan inte l¨angre hade Daniel som ett namn men vi f¨orlorade namn som Madonna vilket inte var lika bra. Det ¨ar alltid en avv¨agning om vilken lista som passar b¨ast. ˚Aterigen valde vi precision ist¨allet f¨or att ha med den enorma m¨angd namn som finns i Sverige.

Hur kommer det sig att studiens resultat (Figur 7 och Figur 8) ¨ar s˚a pass lika varandra trots en klar f¨orb¨attring av metoden? Detta beror p˚a att det finns ett starkt samband mellan antalet k¨onsspecifika pronomen och dess re-spektive k¨onsben¨amningar i form av personben¨amningar. Sj¨alvklart visste vi att det d¨ar fanns ett samband. Om en text exempelvis handlar om en kvin-na v¨axlar f¨orfattaren mellan k¨onsspecifika pronomen samt kvinnans namn om det finns tillg¨angligt d˚a texten blir upprepande om det inte g¨ors. Dock trodde vi inte att sambandet skulle vara s˚a pass starkt som det visade sig vara. Var det ens v¨art att g¨ora en NER implementation om det nu visar sig korrelera s˚a v¨al med basfallet? Ja och nej. Om studiens resultat ska anv¨andas i vetenskapliga sammanhang kr¨avs det dokumentation om metodens presta-tionsf¨orm˚aga f¨or att skapa en robusthet. Det g˚ar inte att anta att det alltid korrelerar s˚a pass v¨al som det nu gjorde. Ju st¨orre datam¨angd desto b¨attre kommer studiens resultat att korrelera. Om vi exempelvis ser till enstaka k¨allor korrelerar det s¨amre ¨an p˚a den totala m¨angden. Vi f˚ar en st¨orre sprid-ning. I G¨otebors-Posten skiljer sig de kvinnliga ben¨amningarna med 5.2% och de manliga med 3.2% mellan basfallet och NER implementationen. Om vi ser till metodens resultat s˚a ligger F-measure f¨or NER implementationen mellan 72.1% och 87.4% och har d¨arf¨or ett intervall p˚a 15.3% . F¨or basfallet ligger v¨ardet mellan 27,2% och 53,5% och har d¨arf¨or ett intervall p˚a 26.3%. Vi ser att variansen av metodens resultat ¨ar betydligt h¨ogre hos basfallet, vilket medf¨or att det blir os¨akrare. Om studien utf¨ors p˚a en mindre grundlig niv˚a d¨ar den vetenskapliga relevansen inte har lika stor betydelse s˚a verkar det duga med endast basfallet.

Vad skiljer sig mellan nyhetsk¨allorna SvD och DI som g¨or att vi f˚ar s˚a pass olika resultat? En anledning ¨ar typen av inneh˚all. DI:s artiklar utg¨ors mest av ekonomiska notiser som handlar mer f¨oretag ¨an personer, vilket medf¨or att vi f˚ar mindre frekventa k¨onsben¨amningar. Oftast n¨amns personerna en-staka g˚anger i texterna i vilket fall de n¨amns med f¨or och efternamn, vilket ¨

(31)

l˚anga texter och behandlar ofta ¨amnen som kultur. I dessa sammanhang ten-derar texter att inneh˚alla mer frekventa k¨onsben¨amningar. Om en text ofta h¨anvisar till en och samma person s˚a ¨ar det vanligt att omn¨amna personen p˚a s˚a m˚anga olika s¨att som m¨ojligt f¨or att p˚a s˚a s¨att undvika upprepning i texten. Det ¨ar vid s˚adana ovanliga s¨att att ben¨amna personer som pro-grammet f˚ar det sv˚art. Ett annat scenario som programmet har sv˚art med ¨

ar anonyma texter. D¨ar refereras personerna med “mannen”, “kvinnan” eller “trafikledaren”.

6.3

Diskussion av studiens resultat

Eftersom studiens m˚al snarare ¨ar att unders¨oka metodens prestanda ¨an stu-diens resultat s˚a kommer d¨arf¨or fokus att ligga p˚a det f¨orstn¨amnda. Detta inneb¨ar att vi inte f¨ordjupar oss i en etisk diskussion hur resultatet p˚averkar samh¨allet i stort d˚a vi anser att det ligger utanf¨or scopet f¨or arbetet. Trots detta ¨ar det intressant att ¨aven analysera det faktiska utfallet. Nedan ge-nomf¨ors en kort analys av studiens resultat.

Resultatet (Figur 7 och Figur 8) visar att m¨an ¨ar ¨overrepresenterade vad g¨aller ben¨amningar. En m¨ojlig f¨orklaring till en viss del av denna ¨overrepresentation kan vara att analysperioden sammanfaller med en tid med m˚anga sporteve-nemang som slutspel i Hockey och Champions League. Under dessa tider skrivs mycket om dessa sportevenemang vilket kan ge ett ¨overskott av man-liga ben¨amningar j¨amf¨ort med en genomsnittsperiod. F¨orutom att det skrivs generellt fler artiklar om m¨an s˚a ¨ar sportartiklar speciella genom att de dess-utom ofta har v¨aldigt m˚anga ben¨amningar. En text om en hockeymatch kan t.ex. inneh˚alla m˚anga manliga ben¨amningar med folk som gjorde m˚al, avg¨orande passningar, utvisningar etc. Detta ¨ar dock ett antagande vi inte kan bekr¨afta. F¨or att dra vidare slutsatser om detta kr¨avs en studie under en l¨agre period med fler unders¨okningar under separerade tillf¨allen.

(32)
(33)

7

Marknadsanalys

7.1

Nul¨

aget

Information Extraction (IE) idag handlar mycket om analys av stora da-tam¨angder. Det ¨ar en relativt ny marknad som v¨axt fram i takt med att datorer och Internet blivit allt snabbare vilket m¨ojliggjort allt st¨orre da-tam¨angder [5]. Att den ¨ar ny kan vi ¨aven se p˚a de f¨oretag vi har valt att analysera. Samtliga har skapats fr˚an b¨orjan av 2000-talet och senare.

Det finns olika s¨att att anv¨anda IE i kommersiella syften. Gemensamt f¨or de analyserade f¨oretagen ¨ar att de oftast bygger p˚a n˚agon sorts analysverksam-het kopplat till insamlandet av all data. Ett s¨att ¨ar att analysera nyhetsfl¨odet genom att g˚a igenom de stora tidningarnas hemsidor. Genom att g¨ora det-ta kan f¨oretaget samla all relevant information p˚a ett st¨alle och g¨ora den s¨okbar f¨or kunden p˚a ett strukturerat s¨att. Detta underl¨attar f¨or kunder som snabbt vill g˚a igenom relevanta nyheter eller p˚a n˚agot s¨att bygga upp databaser.

N¨ar det finns tillg˚ang till stora datam¨angder s˚a kan en djupare analys ske. Ett exempel kan vara att ett f¨oretag vill veta hur lyckad en kampanj ¨ar genom att se dess genomslag i media, att se hur starkt ens varum¨arke ¨ar, vilket intresse som finns f¨or f¨oretagets produkter, identifiera m˚algrupper f¨or en ny produkt eller hur stor dragningskraft de har p˚a sociala medier. Dessa exempel anv¨ander IE f¨or att identifiera nyckelord med positiv eller negativ klang och sedan se i hur stor utstr¨ackning dessa finns i samband med f¨oretaget som best¨aller tj¨ansten. Om f¨oretaget f¨orekommer i positiva nyheter med m˚anga positivt laddade v¨ardeord i en stor m¨angd data s˚a kan slutsatsen dras att den allm¨anna uppfattningen om f¨oretaget ¨ar positiv. Om resultatet visar sig var negativt kan f¨oretaget beh¨ova se ¨over hur de syns utifr˚an och hur de marknadsf¨or sig sj¨alva. Eventuella f¨orb¨attringar identifieras genom att k¨ora samma test igen och analysera utfallet.

(34)

7.2

Sverige som marknad

Den svenska marknaden f¨or Information Extraction best˚ar till stor del av de fyra f¨oretag vi har valt att fokusera p˚a, Retriever AB [6], Gavagai AB [7], Bisnode AB [8] och Recorded Future AB [9].

7.2.1 Retriever AB VD: Rober S¨oderling

¨

Agarstruktur: 66% TT [28], 34% norska NTB. Dessa ¨ags i sin tur av de svenska och norska mediehusen.

Beskrivning: “Vi ¨ar Nordens ledande leverant¨or av mediebevakning, verktyg f¨or redaktionell research, medieanalys och f¨oretagsinformation. Vi ger dig snabb tillg˚ang till all relevant information fr˚an tidningar, magasin, radio, tv, web och sociala medier. “

Figur 9: Bokslut och Nyckeltal f¨or Retriever AB ˚ar 2012-2014.

7.2.2 Gavagai AB

VD: Lars Olof Fredrik Hamberg ¨

Agarstruktur: Privat svenskt utan koncern

(35)

industry. One of the problems we have solved is fully automated and extremely scalable text summarization in all languages. There are numerous application areas for text summarization. Another problem we have solved is that we can gauge any type of sentiment in any language in vast text streams. We aim to establish our proprietary technology as the global standard of a semantic base layer, which will be an integral and fundamental part of all emerging te-chnologies and solutions dealing with large amounts of unstructured language data.”

Figur 10: Bokslut och Nyckeltal f¨or Gavagai AB ˚ar 2012-2014.

7.2.3 Bisnode AB VD: Magnus Silfverberg

¨

Agarstruktur: 70% Ratos [29], 30% Bonnier [30]

(36)

Figur 11: Bokslut och Nyckeltal f¨or Bisnode AB ˚ar 2012-2014.

7.2.4 Recorded Future AB VD: Christopher Ahlberg

¨

Agarstruktur: Grundare, Google Ventures, Atlas Venture, In-Q-Tel

(37)

Figur 12: Bokslut och Nyckeltal f¨or Recorded Future AB ˚ar 2012-2014.

7.3

Uppskattning av marknadens v¨

arde och tillv¨

axt

Den riktiga giganten p˚a marknaden ¨ar Retriever AB med en oms¨attning p˚a 282Mkr vilket ¨ar fem g˚anger st¨orre ¨an de andra tre kombinerat som vi kan se i Figur 9. ¨Overhuvudtaget verkar marknaden f¨or Information Extraction (IE) i Sverige vara v¨ard runt 330Mkr. Detta kan st¨allas i relation till IT-branschen i stort som 2014 omsatte 422Gkr [31]. IE oms¨atter d¨armed 0,08% av hela branschen.

Antalet anst¨allda dras ˚aterigen upp av Retriever AB med 150st anst¨alla. Totalt har de fyra unders¨okta f¨oretagen runt 200 anst¨allda. I relation till IT-branschen i stort som 2014 sysselsatte 198600 personer [31] ¨ar detta runt 1%. Tillv¨axten f¨or IE i genomsnitt f¨or de uppr¨aknade bolagen ¨ar runt 9% vilket kan ses i j¨amf¨orelse med IT-branschen som har en genomsnittlig tillv¨axt p˚a 4% [31].

7.4

Diskussion

7.4.1 SWOT

(38)

Figur 13: SWOT-analys f¨or marknaden.

(39)

ocks˚a vara goda i takt med att det stora omr˚adet big-data v¨axer allt mer [5]. I framtiden kan ocks˚a mediernas betydelse minska. Det blir allt sv˚arare f¨or de stora nyhetstj¨ansterna att sl˚a igenom i en v¨arld d¨ar sociala medier f˚ar allt st¨orre utrymme [32]. Om detta leder till en v¨arld d¨ar information ¨ar ¨annu mer tillg¨anglig s˚a kommer det ¨oppnas upp m¨ojligheter f¨or tj¨anster som inte ¨

ar knutna till de gamla nyhetsbolagen. Eftersom omr˚adet behandlar big-data och f¨ors¨oker ge beslutsunderlag baserat p˚a analyserad text s˚a finns det risk att de stora internetgiganterna som Google och Facebook b¨orjar konkurrera. Dessa bolag ¨ar dessutom inte beroende av normala inkomstkanaler utan de kan f¨orlita sig p˚a reklam och anv¨andandet av deras tj¨anster. Nya innova-tiva bolag kan dessutom n¨ar som helst komma med nya tekniker som helt konkurrerar ut de befintliga bolagen p˚a marknaden. Gavagai AB har enligt egen utsago utvecklat en egen l¨osning som ska skilja sig fr˚an befintlig teknik [7].

7.4.2 Porters femkraftsmodell

En bra startpunkt f¨or att bed¨oma graden av konkurrens inom ett omr˚ade och d¨arigenom kunna avg¨ora huruvida marknaden ¨ar l¨amplig att investera i ¨ar att anv¨anda sig att Porters femkraftsmodell [15]. Modellen anv¨ander sig av fem olika omr˚aden i sin analys f¨or att kunna bed¨oma marknaden. Dessa ¨ar kundernas och leverant¨orers f¨orhandlingsstyrka, substitut f¨or tj¨ansten, kon-kurrens fr˚an befintliga och hot fr˚an nya akt¨orer. Denna finns ¨aven beskriven i teoridelen under rubriken Porters femkraftsmodell och i Figur 2.

Kundernas f¨orhandlingsstyrka f˚ar anses vara h¨og. Kunderna kan sj¨alva v¨alja vilket f¨oretag som de ska k¨opa sina tj¨anster ifr˚an men det finns troligen en kvalitetsskillnad p˚a tj¨ansten de levererar vilket avg¨or valet. Bland de f¨oretag vi har analyserat s˚a har tre stycken en relativt likartad tj¨anst vilket skapar valfrihet.

(40)

Substitut f¨or tj¨ansten ¨ar sv˚ardefinierat. Eftersom tj¨ansten bygger p˚a big-data s˚a kan traditionella s¨att att f˚a beslutsunderlag konkurrera. Det skulle vara f¨oretag som erbjuder tj¨anster f¨or unders¨okningar via web-enk¨ater eller telefon. Detta hot anses vara l˚agt d˚a denna typ av tj¨anst ¨ar av en specifik typ som ¨ar sv˚ar att ers¨atta.

Konkurrensen fr˚an befintliga akt¨orer ¨ar medel. Detta eftersom tj¨ansten he-la tiden utveckhe-las och blir mer avancerad. De befintliga akt¨orerna m˚aste komma p˚a b¨attre l¨osningar f¨or sina kunder och f¨orb¨attra relevansen i sina re-sultat. Nya mjukvarul¨osningar kan potentiellt f¨orb¨attra marknadspositionen avsev¨art. Dock s˚a v¨axer marknaden med runt 9% vilket ¨ar ganska mycket, enligt v˚ar tidigare uppskattning s˚a det beh¨over inte r˚ada n˚agon prispress som skulle kunna pressa ner marginalerna f¨or de befintliga f¨oretagen.

Hot fr˚an nya akt¨orer bed¨oms vara h¨og. Det senaste exemplet ¨ar Gavagai AB som enligt egen utsago har en ny revolutionerande teknik avknoppat fr˚an Swedish ICT [7]. Detta skulle d˚a potentiellt kunna utmana de stora akt¨orerna p˚a marknaden idag och vi ser att Gavagai AB har en v¨aldigt h¨og tillv¨axt 2014. Enligt Porters femkraftsmodell s˚a ¨ar hoten h¨oga och l¨onsamheten pressas. Det ¨ar d¨arf¨or inte gynnsamt att g˚a in p˚a marknaden.

7.4.3 Marknadsanalys

Om vi tittar p˚a den svenska marknaden och de nyckeltal som f¨oretagen pre-senterar i sina ˚arsrapporter s˚a kan vi se att det egentligen bara finns en akt¨or p˚a marknaden som g˚ar bra. Retriever AB (Figur 9) ¨ar fem g˚anger st¨orre ¨an de andra f¨oretagen kombinerat och de har stabila finanser med en stadigt ¨

okande tillv¨axt ˚ar till ˚ar samtidigt som de beh˚aller en stabil vinstmarginal p˚a runt 10%.

Dess konkurrent Bisnode AB (Figur 11) har en minst sagt hackig tillv¨axt samtidigt som de presenterar en v¨aldigt negativ vinstmarginal. Gavagai AB (Figur 10) har visserligen en stark tillv¨axt men de m˚aste visa att de kan g˚a fr˚an detta till att faktiskt producera en vinst. Med en kassalikviditet p˚a 291% f¨or 2014 s˚a ¨ar de dock gott rustade inf¨or framtiden och kan mycket v¨al bli en stark utmanare p˚a marknaden f¨orutsatt att de lyckas beh˚alla sin explosiva tillv¨axt.

(41)

av detta. ¨Aven om tillv¨axten och vinstmarginalen har avstannat n˚agot s˚a ¨ar det ¨and˚a ett stabilt f¨oretag.

(42)

8

Slutsats

8.1

Besvarande av fr˚

agest¨

allningar

Den f¨orsta fr˚agest¨allningen var: “Kan vi med hj¨alp av Information Extraction f¨orb¨attra metodens resultat, d.v.s. i st¨orre utstr¨ackning f˚a den att efterlikna gold standard i j¨amf¨orelse mot basfallet?”. Vi besvarar den genom att meto-dens resultat klart f¨orb¨attrades med NER implementationen.

Den andra fr˚agest¨allningen var “Hur ser marknaden ut f¨or Information Ex-traction i Sverige och skulle det finnas aff¨arsm¨ojligheter f¨or program likt det vi skapat?”. Marknaden styrs av stora etablerade medief¨oretag som samtidigt ¨

ager tillg˚angen till datan som analyseras. Detta inneb¨ar att ett program likt v˚art har begr¨ansade m¨ojligheter att konkurrera. Det finns dock m¨ojligheter om en tillr¨ackligt innovativ id´e kan skapas.

8.2

Slutsatser och rekommendationer

I utv¨ardering av programmet ser vi att F-measure (Figur 5 och Figur 6) n¨astan f¨ordubblades i och med f¨orb¨attringen av programmet. Dock ser vi att utfallet av studien (Figur 7 och Figur 8) inte p˚averkas p˚atagligt av ut-vecklingen. Detta beror p˚a en stark korrelation mellan antalet k¨onsspecifika pronomen och totala antalet k¨onsben¨amningar i texter. Vi uppn˚ar allts˚a en bra approximation med enbart basfallet men erh˚aller ett mer robust resultat av studien med h¨ogre relevans i vetenskapliga sammanhang med NER imple-mentationen. Men hur l˚angt ¨ar det v¨art att utveckla? Varje procent b¨attre resultat av metoden i form av F-measure blir sv˚arare att implementera. F¨or att n¨arma sig 100% kr¨avs enormt mycket arbete och resurser. ¨Ar det v¨art eller ska vi n¨oja oss vid en viss procentsats och p˚ast˚a att det ger en nog bra approximation? Vart ska vi stanna, vad ¨ar tillfredst¨allande?

Rekommendationen ¨ar att endast g¨ora basfall f¨or mer ¨overt¨ackande studier d˚a det finns en stark korrelation mellan antalet k¨onsspecifika pronomen och antalet personer av k¨onet ifr˚aga. Om en vetenskaplig bas efterfr˚agas b¨or men mer f¨orfinad metod implementeras med bevis i form av prestationsm˚att att metoden faktisk fungerar.

(43)

akt¨orerna inom deras eget omr˚ade bed¨oms vara sv˚art p˚a grund av deras finansiella styrka och de mediebolag som backar upp dem. Det finns dock en m¨angd m¨ojligheter som en v¨axande marknad och en sp¨annande framtid. Men de tycks h¨anga p˚a att f¨oretaget lyckas skapa en unik nisch.

Marknaden f¨or Information Extraction i Sverige ¨ar relativt liten och ¨aven om den uppvisar en god tillv¨axt s˚a visar porters femkraftsmodell att l¨onsamheten f¨ormodligen kommer att bli l˚ag. Den domineras av ett stort f¨oretag som dess-utom ¨ar ¨agt av de stora mediehusen som tillhandah˚aller mycket av den in-formation som ska analyseras. Detta g¨or att ett program i det omr˚ade vi har unders¨okt inom ramen f¨or denna studie har begr¨ansade aff¨arsm¨ojligheter. Att skapa ett program som g˚ar igenom nyhetssidor f¨or att kunna presentera analyser av dessa finns redan och eftersom ¨agarna av dessa tj¨anster ocks˚a kontrollerar tillg˚angen till data s˚a blir det ¨annu sv˚arare (vi anv¨ande till ex-empel Retrievers tj¨anst f¨or att kunna f˚a tillg˚ang till artiklar eftersom m˚anga ligger bakom betalv¨aggar).

(44)

9

Vidare studier

Programmets utseende har under flertal tillf¨allen genomg˚att stora f¨or¨andringar som har lett till ett litet f¨orb¨attrat resultat av metoden. N¨ar vi n˚adde h¨ogre t¨ackning s˚a blev det sv˚arare att utveckla programmet. Vad vi vill s¨aga ¨ar att det inte finns n˚agon begr¨ansning p˚a hur mycket arbete som kan l¨aggas p˚a dess funktionalitet. Men med tanke p˚a att denna unders¨okningsstudie ¨ar av mindre omfattning s˚a har vi inte nog med tid f¨or att vidareutveckla det. Ponera att vi hade mer tid s˚a finns det ett par ¨andringar vi skulle f¨ors¨oka ge-nomf¨ora. Dessa justeringar h¨anvisar vi allts˚a till vidare forskning av omr˚adet och utveckling av programmet f¨or framtida bruk.

En del av programmet som f¨or tillf¨allet befinner sig i ett tidigt stadium ¨ar kontext-hanteraren. Eftersom vi f¨or tillf¨allet taggar m˚anga personer som hen inkorrekt finns det stor potential f¨or f¨orb¨attring i denna del av programmet. Oftast g˚ar det genom att l¨asa texter dra slutsatser om k¨onen hos dessa per-soner. Detta kr¨aver en genomg˚aende analys f¨or hur vi tolkar detta och en programlogik som kan l¨osa det.

N¨asta steg i utvecklingen ¨ar att se till yrkesroller och personliga egenskaper. En s˚adan implementation ¨ar troligen v¨aldigt invecklad men ocks˚a vad som kr¨avs om h¨ogra prestationsm˚att ska uppn˚as. En l¨osning skulle kunna vara att f¨ors¨oka hitta ytterligare information om de matchade personerna p˚a Internet f¨or att kunna dra slutsatser om ben¨amningen ¨ar korrekt eller inte.

(45)

Referenser

[1] Alexander Hogenboom, Frederik Hogenboom, Flavius Frasincar, Kim Schouten, and Otto van der Meer. Semantics-based information extrac-tion for detecting economic events. Multimedia Tools and Applicaextrac-tions, 64(1):27–52, 2013. ISSN 1573-7721. doi: 10.1007/s11042-012-1122-0. URL http://dx.doi.org/10.1007/s11042-012-1122-0.

[2] David PA Corney, Bernard F Buxton, William B Langdon, and David T Jones. Biorat: extracting biological information from full-length papers. Bioinformatics, 20(17):3206–3213, 2004.

[3] GuoDong Zhou and Jian Su. Named entity recognition using an hmm-based chunk tagger. In proceedings of the 40th Annual Meeting on As-sociation for Computational Linguistics, pages 473–480. AsAs-sociation for Computational Linguistics, 2002.

[4] Khaled Shaalan and Hafsa Raza. Person name entity recognition for arabic. In Proceedings of the 2007 Workshop on Computational Ap-proaches to Semitic Languages: Common Issues and Resources, pages 17–24. Association for Computational Linguistics, 2007.

[5] James Manyika, Michael Chui, Brad Brown, Jacques Bughin, Richard Dobbs, Charles Roxburgh, and Angela H Byers. Big data: The next frontier for innovation, competition, and productivity. 2011.

[6] Retriever ab. http://www.retriever-info.com/sv/, H¨amtad: 2016-04-12.

[7] Gavagai ab. https://www.gavagai.se/, H¨amtad: 2016-04-12.

[8] Bisnode ab. https://www.bisnode.com/sverige/, H¨amtad: 2016-04-12.

[9] Recorded future ab. https://www.recordedfuture.com/, H¨amtad: 2016-04-12.

(46)

[11] Douglas E Appelt. Introduction to information extraction. Ai Commu-nications, 12(3):161–172, 1999.

[12] Marie-Francine Moens. Information extraction: algorithms and prospects in a retrieval context, volume 21. Springer Science & Business Media, 2006.

[13] Genews. http://genews.io/se, H¨amtad: 2016-03-15.

[14] Robert G Dyson. Strategic development and swot analysis at the uni-versity of warwick. European journal of operational research, 152(3): 631–640, 2004.

[15] Michael E Porter. The five competitive forces that shape strategy. 2008. [16] Ulf Leser and J¨org Hakenberg. What makes a gene name? named entity recognition in the biomedical literature. Briefings in bioinformatics, 6 (4):357–369, 2005.

[17] George Hripcsak and Adam S Rothschild. Agreement, the f-measure, and reliability in information retrieval. Journal of the American Medical Informatics Association, 12(3):296–298, 2005.

[18] Erik F Tjong Kim Sang and Fien De Meulder. Introduction to the conll-2003 shared task: Language-independent named entity recognition. In Proceedings of the seventh conference on Natural language learning at HLT-NAACL 2003-Volume 4, pages 142–147. Association for Computa-tional Linguistics, 2003.

[19] Aftonbladet. http://www.aftonbladet.se/, H¨amtad: 2016-04-12. [20] Expressen. http://www.expressen.se/, H¨amtad: 2016-04-12. [21] Dagens nyheter. http://www.dn.se/, H¨amtad: 2016-04-12. [22] Dagens industri. http://www.di.se/, H¨amtad: 2016-04-12. [23] G¨oteborgs-posten. http://www.gp.se/, H¨amtad: 2016-04-12. [24] Metro. http://www.metro.se/, H¨amtad: 2016-04-12.

[25] Svenska dagbladet. http://www.svd.se/, H¨amtad: 2016-04-12.

[26] Statistiska centralbyr˚ans databas. http://www. statistikdatabasen.scb.se/pxweb/sv/ssd/?rxid=

(47)

[28] Tt ab. https://tt.se/, H¨amtad: 2016-04-12. [29] Ratos ab. http://ratos.se/, H¨amtad: 2016-04-12.

[30] Bonnier ab. http://www.bonnier.se/, H¨amtad: 2016-04-12.

[31] Oms¨attning och tillv¨axt it-branschen. https://www. itotelekomforetagen.se/fakta-och-debatt/statistik/

statistik-omsattning-och-tillvaxt, H¨amtad: 2016-04-12.

[32] Robert McChesney and John Nichols. The death and life of American journalism: The media revolution that will begin the world again. Nation Books, 2011.

(48)

Appendix

A

Resultat

A.1

Metodens resultat

A.1.1 Aftonbladet

Figur 14: Metodens resultat f¨or basfallet av Aftonbladet.

(49)

A.1.2 Dagens Industri

Figur 16: Metodens resultat f¨or basfallet av DI.

(50)

A.1.3 Dagens Nyheter

Figur 18: Metodens resultat f¨or basfallet av DN.

(51)

A.1.4 Expressen

Figur 20: Metodens resultat f¨or basfallet av Expressen.

(52)

A.1.5 G¨oteborgs-Posten

Figur 22: Metodens resultat f¨or basfallet av GP.

(53)

A.1.6 Metro

Figur 24: Metodens resultat f¨or basfallet av Metro.

(54)

A.1.7 Svenska Dagbladet

Figur 26: Metodens resultat f¨or basfallet av SvD.

(55)

A.2

Studiens resultat

A.2.1 Aftonbladet

Figur 28: Studiens resultat f¨or metodens basfall av Aftonbladet.

(56)

A.2.2 Dagens Industri

Figur 30: Studiens resultat f¨or metodens basfall av DI.

(57)

A.2.3 Dagens Nyheter

Figur 32: Studiens resultat f¨or metodens basfall av DN.

(58)

A.2.4 Expressen

Figur 34: Studiens resultat f¨or metodens basfall av Expressen.

(59)

A.2.5 G¨oteborgs-Posten

Figur 36: Studiens resultat f¨or metodens basfall av GP.

(60)

A.2.6 Metro

Figur 38: Studiens resultat f¨or metodens basfall av Metro.

(61)

A.2.7 Svenska Dagbladet

Figur 40: Studiens resultat f¨or metodens basfall av SvD.

(62)

B

Kod

B.1

Genustaggaren

i m p o r t j a v a . io . F i l e ; i m p o r t j a v a . io . F i l e N o t F o u n d E x c e p t i o n ; i m p o r t j a v a . t e x t . D e c i m a l F o r m a t ; i m p o r t j a v a . u t i l . A r r a y L i s t ; i m p o r t j a v a . u t i l . A r r a y s ; i m p o r t j a v a . u t i l . D i c t i o n a r y ; i m p o r t j a v a . u t i l . H a s h M a p ; i m p o r t j a v a . u t i l . H a s h t a b l e ; i m p o r t j a v a . u t i l . L i s t ; i m p o r t j a v a . u t i l . Map ; i m p o r t j a v a . u t i l . S c a n n e r ; p u b l i c c l a s s G e n u s t a g g a r e n { p u b l i c s t a t i c S t r i n g t e x t =" "; p u b l i c s t a t i c v o i d m a i n ( S t r i n g [] a r g s ) {

// A r r a y L i s t < String > k a l l o r = new A r r a y L i s t < String >( A r r a y s . a s L i s t (" A f t o n b l a d e t " , " DI " , " DN " , " E x p r e s s e n " , " GP " , " M e t r o " , " SVD ") ) ;

A r r a y L i s t < String > k a l l o r = new A r r a y L i s t < String >( A r r a y s . a s L i s t (" A f t o n b l a d e t ", " D I w e b ", " DN ", " E x p r e s s e n w e b ", " GP ", " G P w e b ", " M e t r o w e b ", " SVD " , " S V D w e b ") ) ; S t r i n g l i s t T y p e = " 50 "; for( S t r i n g k a l l a : k a l l o r ) { S y s t e m . out . p r i n t l n ( k a l l a +" \ n ") ; // for ( int i =1; i < 1 1 ; i ++) { // S y s t e m . out . p r i n t l n ( k a l l a + i + " : \ n ") ;

List < String > p u n k t O r d L i s t a = new A r r a y L i s t < String >() ;

List < String > v e r s a l O r d L i s t a = new A r r a y L i s t < String >() ;

Map < String , List < String > > k o n t e x t = new HashMap < String , List < String > >() ;

C o u n t e r c o u n t e r = new C o u n t e r () ; B a s f a l l b a s f a l l = new B a s f a l l () ;

(63)

S c a n n e r s c a n n e r = n u l l; S t r i n g g a m m a l t _ o r d = " "; try { // s c a n n e r = new S c a n n e r ( new F i l e ("/ h o m e / f / r / f r c a r l s / KEX / Gold - S t a n d a r d /"+ k a l l a + " / " + k a l l a + i +" x . txt ") ) ; // s c a n n e r = new S c a n n e r ( new F i l e (" C :/ U s e r s / F r e d r i k / D r o p b o x / E g n a m a p p e n / KTH / KEX / U b u n t o kex f o l d e r / KEX / Gold - S t a n d a r d /"+ k a l l a + " / " + k a l l a + i +" x . txt ") ) ; s c a n n e r = new S c a n n e r (new F i l e (" C :/ U s e r s / F r e d r i k / D r o p b o x / E g n a m a p p e n / KTH / KEX / U b u n t o kex f o l d e r / KEX / A r t i k l a r / 0 4 . 1 3 / "+ k a l l a +" . txt " ) ) ; } c a t c h ( F i l e N o t F o u n d E x c e p t i o n e ) { e . p r i n t S t a c k T r a c e () ; } s c a n n e r . u s e D e l i m i t e r (" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \ n \ n ") ;

List < String > v e r s a l K o m b o = new A r r a y L i s t < String >() ; w h i l e ( s c a n n e r . h a s N e x t () ) {

t e x t = f o r m a t ( s c a n n e r . n e x t () ) ;

List < String > t e x t L i s t a = new A r r a y L i s t < String >( A r r a y s . a s L i s t ( t e x t . r e p l a c e A l l (" (\\ r |\\ n ) ", "

") . s p l i t (" ") ) ) ;

for ( S t r i n g ord : t e x t L i s t a ) {

ord = ord . r e p l a c e A l l (" [ \ " | ( ) ] ", " ") ;

(64)

v e r s a l K o m b o . add ( ord . r e p l a c e A l l (" [ . ? ! : / , ; ] ", " ") ) ; } e l s e{ S t r i n g m u l t i p e l V e r s a l e r =" "; for (int j =0; j < v e r s a l K o m b o . s i z e () ; j ++) { if ( j == v e r s a l K o m b o . s i z e () -1) { m u l t i p e l V e r s a l e r += v e r s a l K o m b o . get ( j ) ; } e l s e{ m u l t i p e l V e r s a l e r += v e r s a l K o m b o . get ( j ) + " "; } } if (! m u l t i p e l V e r s a l e r . e q u a l s (" ") ) { v e r s a l O r d L i s t a . add ( m u l t i p e l V e r s a l e r ) ; v e r s a l K o m b o . c l e a r () ; } if ( i s V e r s a l O r d ( ord ) ) { v e r s a l K o m b o . add ( ord . r e p l a c e A l l (" [ . ? ! : / , ; ] ", " ") ) ; } } g a m m a l t _ o r d = ord ; } S t r i n g m u l t i p e l V e r s a l e r =" "; for (int j =0; j < v e r s a l K o m b o . s i z e () ; j ++) { if ( j == v e r s a l K o m b o . s i z e () -1) { m u l t i p e l V e r s a l e r += v e r s a l K o m b o . get ( j ) ; } e l s e{ m u l t i p e l V e r s a l e r += v e r s a l K o m b o . get ( j ) + " " ; } } if (! m u l t i p e l V e r s a l e r . e q u a l s (" ") ) { v e r s a l O r d L i s t a . add ( m u l t i p e l V e r s a l e r ) ; v e r s a l K o m b o . c l e a r () ; }

(65)
(66)
(67)

S y s t e m . out . p r i n t l n (" P r o c e n t n e u t r a l a k ¨o n s s p e c i f i k a p r o n o m e n : \ t " + df . f o r m a t ( 1 0 0 * c o u n t e r . g e t H e n () / sum ) +" % ") ; S y s t e m . out . p r i n t l n (" \ n ") ; } } // } p u b l i c s t a t i c b o o l e a n i s V e r s a l O r d ( S t r i n g g i v e n S t r i n g ) { if( g i v e n S t r i n g == n u l l | g i v e n S t r i n g . i s E m p t y () ) { r e t u r n f a l s e; } e l s e{ r e t u r n ( C h a r a c t e r . i s U p p e r C a s e ( g i v e n S t r i n g . c o d e P o i n t A t (0) ) ) ; } } p u b l i c s t a t i c b o o l e a n s t r i n g C o n t a i n s ( S t r i n g i n p u t S t r i n g , S t r i n g [] i t e m s ) { for(int i =0; i < i t e m s . l e n g t h ; i ++) { if( i n p u t S t r i n g . c o n t a i n s ( i t e m s [ i ]) ) { r e t u r n t r u e; } } r e t u r n f a l s e; } p u b l i c s t a t i c S t r i n g f o r m a t ( S t r i n g a r t i k e l ) { S t r i n g r e g e x = " P u b l i c e r a t i p r i n t . \ n \ n | P u b l i c e r a t p ˚a w e b b . \ n \ n "; S t r i n g t e x t = a r t i k e l . s p l i t (" - - - -\ n ") [ 1 ] ; t e x t = t e x t . s p l i t ( r e g e x ) [ 1 ] ; t e x t = t e x t . s p l i t ("cc") [ 0 ] ; r e t u r n t e x t ; } p u b l i c s t a t i c v o i d k o n t e x t ( O r d l i s t a o r d l i s t a , B a s f a l l b a s f a l l ) {

List < String > t e m p H e n = new A r r a y L i s t < String >() ; List < String > m e n i n g a r = new A r r a y L i s t < String >(

(68)

for( S t r i n g hen : o r d l i s t a . h e n M a t c h L i s t ) { for (int i =0; i < m e n i n g a r . s i z e () ; i ++) { S t r i n g m e n i n g = m e n i n g a r . get ( i ) ; if ( m e n i n g . c o n t a i n s ( hen ) ) { k o l l a _ p r o n o m ( mening , m e n i n g a r , i , hen , o r d l i s t a , basfall , tempHen , f o r s t a ) ; } } } for ( S t r i n g hen : t e m p H e n ) { o r d l i s t a . h e n M a t c h L i s t . r e m o v e ( hen ) ; } } p u b l i c s t a t i c v o i d k o l l a _ p r o n o m ( S t r i n g mening , List < String > m e n i n g a r , int i , S t r i n g hen , O r d l i s t a o r d l i s t a , B a s f a l l basfall , List < String > tempHen , b o o l e a n f o r s t a ) { int c o u n t e r =0; for ( S t r i n g p e r s o n : o r d l i s t a . p e r s o n L i s t ) { if ( m e n i n g . c o n t a i n s ( p e r s o n ) ) { c o u n t e r + = 1 ; } } if ( counter >0 && f o r s t a ==f a l s e | ( c o u n t e r >1) ) { r e t u r n; }e l s e{ f o r s t a =f a l s e;

(69)
(70)

B.2

Basfallet

i m p o r t j a v a . u t i l . H a s h M a p ; i m p o r t j a v a . u t i l . H a s h S e t ; i m p o r t j a v a . u t i l . L i s t ; i m p o r t j a v a . u t i l . A r r a y L i s t ; i m p o r t j a v a . u t i l . A r r a y s ; i m p o r t j a v a . u t i l . Map ; p u b l i c c l a s s B a s f a l l { p r i v a t e s t a t i c List < String > k v i n n o L i s t ; p r i v a t e s t a t i c List < String > m a n L i s t ; p r i v a t e s t a t i c A r r a y L i s t < String > h e n L i s t ; p u b l i c B a s f a l l () { k v i n n o L i s t = new A r r a y L i s t < String >( A r r a y s . a s L i s t (" hon ", " h e n n e ", " h e n n e s ") ) ;

m a n L i s t = new A r r a y L i s t < String >( A r r a y s . a s L i s t (" han ", " h o n o m ", " h a n s ") ) ;

h e n L i s t = new A r r a y L i s t < String >( A r r a y s . a s L i s t (" hen ", " h e n s ") ) ;

}

p u b l i c Map < String , Integer > b a s f a l l ( S t r i n g t e x t ) { Map < String , Integer > b e n a m n i n g a r = new HashMap <

String , Integer >() ; b e n a m n i n g a r . put (" k v i n n o r ", 0) ; b e n a m n i n g a r . put (" man ", 0) ; b e n a m n i n g a r . put (" hen ", 0) ; for ( S t r i n g ord : t e x t . r e p l a c e A l l (" (\\ r |\\ n ) ", " ") . s p l i t (" ") ) if( ord . e q u a l s (" ") ) { c o n t i n u e; }e l s e{ ord = ord . r e p l a c e A l l (" (\\ r |\\ n ) ", " ") ;

ord = ord . r e p l a c e A l l (" [\\ W & & [ ^ ˚a ¨a ¨o ˚A ¨A ¨O -]] ", " " ) . t o L o w e r C a s e () ;

if ( k v i n n o L i s t . c o n t a i n s ( ord ) )

b e n a m n i n g a r . put (" k v i n n o r ", b e n a m n i n g a r . get (" k v i n n o r ") +1) ;

e l s e if ( m a n L i s t . c o n t a i n s ( ord ) )

b e n a m n i n g a r . put (" man ", b e n a m n i n g a r . get (" man ") +1) ;

(71)
(72)

B.3

Ordlistan

i m p o r t j a v a . io . F i l e ; i m p o r t j a v a . io . F i l e N o t F o u n d E x c e p t i o n ; i m p o r t j a v a . u t i l . C o l l e c t i o n ; i m p o r t j a v a . u t i l . H a s h M a p ; i m p o r t j a v a . u t i l . H a s h t a b l e ; i m p o r t j a v a . u t i l . L i s t ; i m p o r t j a v a . u t i l . A r r a y L i s t ; i m p o r t j a v a . u t i l . A r r a y s ; i m p o r t j a v a . u t i l . Map ; i m p o r t j a v a . u t i l . S c a n n e r ; p u b l i c c l a s s O r d l i s t a { List < String > k v i n n o L i s t ; List < String > m a n L i s t ; List < String > h e n L i s t ; List < String > p e r s o n L i s t ; H a s h t a b l e < String , Integer > p e r s o n L i s t a ; List < String > k v i n n o M a t c h L i s t ; List < String > m a n M a t c h L i s t ; List < String > h e n M a t c h L i s t ; p u b l i c O r d l i s t a ( S t r i n g l i s t T y p e ) { k v i n n o L i s t = new A r r a y L i s t < String >() ; m a n L i s t = new A r r a y L i s t < String >() ; h e n L i s t = new A r r a y L i s t < String >() ; p e r s o n L i s t = new A r r a y L i s t < String >() ;

(73)

s c a n . c l o s e () ; s c a n = new S c a n n e r ( m a n f i l ) ; w h i l e ( s c a n . h a s N e x t L i n e () ) { m a n L i s t . add ( s c a n . n e x t L i n e () ) ; } s c a n . c l o s e () ; }c a t c h ( F i l e N o t F o u n d E x c e p t i o n e ) { e . p r i n t S t a c k T r a c e () ; } for ( S t r i n g man : m a n L i s t ) { for ( S t r i n g k v i n n a : k v i n n o L i s t ) { if ( man . e q u a l s ( k v i n n a ) ) { h e n L i s t . add ( man ) ; } } } for ( S t r i n g hen : h e n L i s t ) { m a n L i s t . r e m o v e ( hen ) ; k v i n n o L i s t . r e m o v e ( hen ) ; p e r s o n L i s t . add ( hen ) ; } for ( S t r i n g k v i n n a : k v i n n o L i s t ) { p e r s o n L i s t . add ( k v i n n a ) ; } for ( S t r i n g man : m a n L i s t ) { p e r s o n L i s t . add ( man ) ; } S y s t e m . out . p r i n t l n ( h e n L i s t ) ; } p u b l i c v o i d o r d l i s t a ( List < String > v e r s a l O r d L i s t a ) { for ( S t r i n g v e r s a l O r d : v e r s a l O r d L i s t a ) {

(74)

References

Outline

Related documents

L˚ at y(t) vara andelen av populationen som ¨ar smittad efter tiden t dygn, r¨aknad fr˚ an uppt¨ack- ten... Observera att ¨amnets koncentration ¨ar samma som m¨angden av

Komplex analys I, hemuppgifter till vecka

Man har tv˚a v˚agar, A och B, d¨ar man misst¨anker att v˚ag B har ett systematiskt fel s˚a att den ger f¨or h¨ogt utslag medan man vet att v˚ag A v¨ager r¨att i

Material i grupp II och III har ocks˚ a h¨ og kompressibilitet f¨ or att de har dels kovalent bindning, dels metallisk bindning, vilket leder till kovalenta kristaller som har ¨

[r]

Antalet kunder som bes¨ oker de tv˚ a aff¨ arerna en timme kan beskrivas med Poissonf¨ ordelningar.. Det genomsnittliga antalet kunder som bes¨ oker de tv˚ a aff¨ arerna ¨ ar

Vid bed¨ omningen av l¨ osningarna av uppgifterna i del 2 l¨ aggs stor vikt vid hur l¨ osningarna ¨ ar motiverade och redovisade. T¨ ank p˚ a att noga redovisa inf¨ orda

I en simbass¨ang finns ett halvcirkelformat f¨onster D med radie R och vars medelpunkt befinner sig p˚a djupet h, d¨ar h &gt; R, en-