Folkets Synonymlexikon



Relevanta dokument
Lathund, procent med bråk, åk 8

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Vi skall skriva uppsats

Skriva B gammalt nationellt prov

Lathund till Annonsportalen

Individuellt Mjukvaruutvecklingsprojekt

Varför är det så viktigt hur vi bedömer?! Christian Lundahl!

Välkommen till Arbetsförmedlingen! Information till dig som är arbetssökande

Lisa besöker pappa i fängelset.

Hävarmen. Peter Kock

Energi & Miljötema Inrikting So - Kravmärkt

Kvalitetsrapport Så här går det

Sammanfattning på lättläst svenska

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Rapport uppdrag. Advisory board

Att se med Guds ögon!

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

Rapport Agilityverksamhetens framtid

SANNOLIKHET. Sannolikhet är: Hur stor chans (eller risk) att något inträffar.

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Systematiskt kvalitetsarbete

Kulturmöten. Det var vi som gjorde det.

Intervjumall. Datum: Intervjuare: Kandidatens namn: Kandidatens uppgifter: Växel: (5)

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Timeline dropbox för lärare och elever

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

Vad är en webbläsare?

Projekt benböj på olika belastningar med olika lång vila

Visualisering av golfboende

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Ett arbete som inte blev riktigt som Ann tänkt sig!

Invisible Friend Senast uppdaterad

Systematiskt kvalitetsarbete

Träning i bevisföring

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Fristående förskolor totalt Antal svar samtliga fristående förskolor: 360 (57 %)

Pesach Laksman är lärarutbildare i matematik och matematikdidaktik vid Malmö högskola.

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

GRUNDERNA I SJÄLVLEDARSKAP

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Till dig som vill bli medlem i SEKO

7. SAMHÄLLSORIENTERING ÅK 5

Få jobb förmedlas av Arbetsförmedlingen MALIN SAHLÉN OCH MARIA EKLÖF JANUARI 2013

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Stella Nova förskola

Två konstiga klockor

Abstrakt. Resultat. Sammanfattning.

Idag. Hur vet vi att vår databas är tillräckligt bra?

När jag har arbetat klart med det här området ska jag:

Klassen kom tillsammans fram till vilka punkter som vi skulle ta hänsyn till. Dessa var:

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Mötesnoteringar från PTS arbetsgruppmöte om 90-serien

Brevutskick till väntande patienter

Översikt. Rapport från skolverket. Förändring av matematikprestationerna Grundtankar bakom Pixel

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

Har vi lösningen för en bättre hemtjänst? Självklart.

Dina tänder är viktiga. Du behöver dem varje dag.

SOLCELLSBELYSNING. En praktisk guide. Råd & Tips SOLENERGI LADDA MED. Praktiska SÅ TAR DU BÄST HAND OM DIN SOLCELLSPRODUKT

Får nyanlända samma chans i den svenska skolan?

Programmera en NXT Robot

Muskötens förskolas. Kvalitetsredovisning. För år 2009/2010. Ansvarig Förskolechef Magnus Strömbäck

Fullför installation av ELIQ

MOTIONER TILL REPRESENTANTSKAP 2015

Kvinnor som driver företag pensionssparar mindre än män

Tränarguide del 1. Mattelek.

Svenska Du kan med flyt läsa texter som handlar om saker du känner till. Du använder metoder som fungerar. Du kan förstå vad du läser.

Föreläsning 5: Rekursion

Utveckla arbetsmiljö och verksamhet genom samverkan

Mål Blå kurs Röd kurs

De två första korten Tidig position

Hur skapar man formula r

Statsbidrag för läxhjälp till huvudmän 2016

Manual Gamla Akka-plattan

KUPOL en studie om skolmiljöns betydelse för ungdomars hälsa ENKÄT TILL ELEVER I ÅRSKURS 9

INTERVJU MED TOMI SÖDERSTRÖM, PRODUKTCHEF / MAT- & RESTAURANGSERVICE, SILJA LINE , HELSINGFORS

Långt ifrån Zlatan VAD HANDLAR BOKEN OM? LGR 11 CENTRALT INNEHÅLL SOM TRÄNAS FÖRMÅGOR SOM TRÄNAS LGRS 11 CENTRALT INNEHÅLL SOM TRÄNAS

Planera och framföra ett högtidstal

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

Min fråga är, när ni driftar HF-don bränner ni in rören i 100 timmar på 100% innan ni eller kunden börjar dimmra?

KOMMUNICERA. och nå dina mål. Lärandeförvaltningens kommunikationsstrategi

Så kan du arbeta med medarbetarenkäten. Guide för chefer i Göteborgs Stad

Manual för BPSD registret. Version 6 /

Tankar om elevtankar. HÖJMA-projektet

Idéer till rörelsepark på Svandammsskolan augusti 2013

Q1 Hur många undervisningstillfällen har du haft under september månad?

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Bedömning för lärande. Workshop för nyckelpersoner i Sundsvalls kommun

Uppdragsbeskrivning. Digital Skyltning. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Hur du presenterar och marknadsför dig under själva intervjun är avgörande för att du ska bli en intressant kandidat.

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Repetitivt arbete ska minska

Systemövervakningstjänst

FIRST LEGO League. Göteborg 2012

FINLAND I EUROPA 2008

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

Välkommen till landslaget!

Stadsbyggnad, stadsutveckling och planering. Urban Integration HT12 Malmö högskola

Inställning motorskydd för gammal motor Postad av Johan Andersson - 16 maj :31

Transkript:

Folkets Synonymlexikon Bakgrund Folkets synonymlexikon 1 är ett projekt lett av Viggo Kann på Kungliga Tekniska Högskolan som påbörjades 2005. Syftet med projektet var att skapa ett fritt online-synonymlexikon som styrs av användarna (folket). Metoden som används av Folkets synonymlexikon är att besökare får se slumpvist genererade förslag på synonympar, som de får ge en röst på skalan 0-5. Över tid blir synonymlexikonet alltså bättre på att föreslå synonymer. En hel del av jobbet är dock hanterat automatiskt genom språkteknologiska metoder. De genererade förslagen är inte helt slumpvisa. Det första som gjordes, innan folk fick börja rösta, var att man använde olika lexikon mellan svenska och andra språk för att översätta ord fram och tillbaka. Två ord med samma översättning är kandidater till att vara synonyma med varandra. Över 600 000 synonymparskandidater genererades den vägen. Men på grund av att ord kan ha flera betydelser (det som är vårt mål att kartlägga), är många av dessa kandidater dåliga. Nästa steg, fortfarande innan folket fick möjlighet att rösta på förslag, var att automatiskt sålla bort uppenbart dåliga kandidater med hjälp av Random Indexing. Kortfattat använder man en stor träningsmängd med olika texter och ger varje kandidat till synonympar ett numeriskt värde på hurpass lika orden används i texterna. Sedan tog man bara bort de paren som hade ett för lågt värde, och kvar var drygt 200 000 kandidater. Sedan dess har folk fått rösta på paren. Vid ett antal tillfällen har par med väldigt låga graderingar raderats från listan, så att det inte längre dyker upp som förslag att rösta på. 2 Frågeställning Vi vill undersöka om man kan få ut hur många betydelser ett ord har utifrån synonymparen i folkets synonymlexikon. 1 http://folkets2.nada.kth.se/synlex.html 2 http://www.csc.kth.se/tcs/projects/infomat/rapporter/kannrosell05.pdf

Datamängder Från folkets synonymlexikon fick vi ut en lista av alla synonympar som graderats med 3 eller högre. Detta är naturligt att se som en graf där ord representerar hörn och viktade kanter representerar synonymgraderingen. Från originaldatamängden skapade vi även en till datamängd där vi filtrerade så att den bara innehöll all synonympar som graderats 4 eller högre. Originaldatamängden innehöll 18 984 synonympar och 16 047 ord, 60% av orden ligger i samma komponent och Figur 1 visar den komponenten. Den filtrerade innehöll 9 836 synonympar och 11 126 ord och kan ses i Figur 2. Figur 1. Den största komponenten med 60% av orden från originaldatamängden. Genererad m.h.a. Gephi 3. 3 Gephi, an open source graph visualization and manipulation software, https://gephi.org/

Figur 2. En graf av den filtrerade datamängden med gradering 4 eller mer. Genererad m.h.a. Gephi. Algoritm För att dela upp ord i dess betydelser implementerade vi en algoritm som delar upp grannorden till ett ord i olika grupper. Vi implementerade två olika varianter av denna algoritm som har lite olika krav på vad som krävs för att två grannord ska tillhöra samma grupp. Den ena varianten (djup-1) anser att två grannord tillhör samma grupp om de har en kant mellan varandra (en grupp består alltså av ord som hänger ihop internt). Den andra varianten (djup-2) anser även att grannord tillhör samma grupp om de har en gemensam granne utöver de ordet som man letar betydelser för.

Figur 3. Exempel på graf av ord som ger olika resultat beroende på vilken variant av algoritmen man använder. Om man skulle köra algoritmen på grafen i Figur 3 och letar efter betydelser till ordet A så skulle man med djup-1 få (G), (B), (C D E) som grupper medans med djup-2 så skulle resultat bli (G), (B C D E) då B och C båda är synonyma med ordet F. Implementation För att implementera grupperingen effektivt så används en variant av datastrukturen disjointset 4. Våran implementation skiljer sig dock lite då vi använder ordhörnens unika id som setidentifierare istället för att skapa det med MakeSet. Då våran graf är mycket gles så lämpade det sig att använda grannlistor för att representera grafen. Djup-1 Pseudo-kod: def find_meanings_d1(word_node): neighbor_set = HashSet(word_node.neighbors) disjoint_set = DisjointSet() for neighbor in word_node: for next_neighbor in neighbor.neighbors: if next_neighbor!= word_node && next_neighbor in neighbor_set: disjoint_set.union(neighbor, next_neighbor) return word_node.neighbors.group_by(disjoint_set.find) Djup-1 algoritmen implementeras genom att man har ett HashSet som säger vilka hörn i grafen som är direkta grannar till ordet man undersöker, denna används så att grupperna endast 4 http://en.wikipedia.org/wiki/disjoint-set_data_structure

sätts samman av kanter som går mellan synonymer till ordet man undersöker. Man skulle kunna implementera en snabbare variant som inte tittar på orelaterad kanter om man hade en kantmatris istället för grannlista. Djup-2 Pseudo-kod: def find_meanings_d2(word_node): disjoint_set = DisjointSet() for neighbor in word_node: for next_neighbor in neighbor.neighbors: if next_neighbor!= word_node: disjoint_set.union(neighbor, next_neighbor) return word_node.neighbors.group_by(disjoint_set.find) Djup-2 implementeras nästan på samma sätt som Djup-1 förutom att man inte längre behöver undvika att göra Union på hörn som inte är grannar till ordet man undersöker. Om man tar Figur 3 som exempel så kommer B och C tillhöra samma grupp då de båda kallar Union på F och på så sätt blir i samma grupp. Resultat Några exempel med djup-2 bar - 3 betydelser: bardisk kal, naken, näck, skallig pub hjärta - 2 betydelser: blodpump kärnpunkt liv - 7 betydelser: leva leverne midja oljud, stoj rabalder, tumult, ståhej rörelse väsnas ringa - 6 betydelser:

slå en signal, telefonera modest, anspråkslös få nätt, betydelselös, futtig, bagatellartad, små, liten, skral, obetydlig, smått, svag, späd, föga, knapphändig, otillräcklig, oansenlig vagt lindrig, mild, måttlig ringa (filter < 4.0) - 9 betydelser: otillräcklig slå en signal, telefonera få svag, späd obetydlig, smått, föga vagt oansenlig knapphändig lindrig försiktig - 9 betydelser aktsam diskret, återhållsam eftertänksam lätt reserverad vaksam varsam varsamt Analys Resultaten ovan är ordnade efter hur bra vi tycker att de är. bar får en uppdelning av sina synonymer som precis matchar den vi själva hade gjort för hand. liv klarar av att slå ihop vissa av betydelserna, men oljud, stoj, rabalder, tumult, ståhej och kanske också rörelse borde kanske ha hamnat under samma betydelse. Dessutom är leva och väsnas verb som nog inte borde anses vara synonymer alls. försiktig fick i princip varje synonym som en unik betydelse. Det är så klart långt ifrån ett optimalt resultat när man tittar på vilka ord det handlar om. Över lag anser vi att programmet egentligen aldrig slår ihop flera ord i en betydelse i onödan, men tyvärr ofta låter ett ord anta lite för många olika betydelser. Och det är när vi använder djup-2. Djup-1 gav givetvis ett ännu mer partitionerade resultat, även om skillnaden oftast inte var stor. Vi provade också med att filtrera bort synonymer med gradering under 4.0 istället för

3.0. Det gav tyvärr, likt djup-1, också generellt sett sämre resultat. Som exempel kan man titta på ringa ovan. Antalet synonymer går från 24 till 13 och på samma gång går antalet betydelser från 6 till 9. Vi hade snarare velat se antalet betydelser minska. Samtidigt kan resultat i stil med det vi såg för försiktig, där antalet betydelser blir många och antalet synonymer inte är mycket större, ge goda indikationer på ord som kan vara synonymer. Inbördes bör klart fler av försiktig s synonymer också inbördes vara synonyma. Så kanske sådana resultat kan användas för att generera dessa synonymförslag oftare för röstning. Som mått på antalet betydelser hos ett ord, gör vårt program inte så mycket nytta. Det säger att ordet med flest olika betydelser är hej med 15 betydelser, följt (ironiskt nog) av synonym med 14 betydelser. Men själva uppdelningen som görs kan ändå vara ganska användbar att titta på. Förbättringar I och med att vi tycker att grupperingarna i princip bara blev för lösa, skulle man kunna tänka sig att söka djupare, för att se om man förstärker grupperingarna på ett bra sätt. Risken är att man med djup-3 och högre börjar få ordkedjor där betydelsen drastiskt ändras på vägen, och har man otur kan två synonymer till det ursprunglga ordet ha en annan gemensam synonym längre bort även om de inte alls är synonyma med varandra. Man skulle också kunna använda sig av synonymparens graderingar på ett mer sofistikerat sätt i algoritmen. Kanske skulle man till exempel kunna titta på direkta synonymer utan filter, och synonymer med djup två med ett starkare filter och sedan djup 3 med ännu starkare filter. Men frågan är om det hjälper så mycket med tanke på att två synonymer som tillhör samma faktiska betydelse antagligen borde vara synonyma. Om man hade ett perfekt synonymlexikon, skulle det säkert vara den bäst förbättringen man kan tänka sig.