Verktyg från SpråkteknologigruppenHär finns diverse verktyg utvecklade av Språkteknologigruppen på KTH CSC. De flesta verktygen går att ladda ned och köra på din egen dator. Många av verktygen finns också tillgängliga online, så att du kan köra dem i din webbläsare utan att behöva ladda ned någonting. Onlineversionerna kan också användas av andra program, om du t.ex. skriver ett eget program som behöver utföra något som verktygen nedan kan göra. SnabblänkarVerktyg att ladda nedFöljande verktyg finns tillgängliga för nedladdning:
Verktyg onlineFöljande verktyg finns tillgängliga att använda online:
För en utförlig lista på de tjänster som finns online, se Granska API. Artiklar om och referenser till verktygenOm du vill läsa mer om något verktyg, referera till ett verktyg, m.m. finns det artiklar skrivna om följande verktyg:
Se även hemsidan med dokumentation till Språkteknologigruppens verktyg. VerktygenGranskaGranska är ett grammatikgranskningsprogram för svensk text. Granska innehåller även många andra funktioner som går att använda separat, till exempel tokenisering, ordklasstaggning, ordböjning, parsning, rättstavning, och lemmatisering. Ladda nedKällkoden till Granska finns tillgänglig under GNU General Public License. Källkoden är skriven i C och C++. Granska använder biblioteket Xerces som du också behöver installera om du inte redan har det. Xerces är också fritt tillgängligt. För att Granska ska kunna köra behöver man också lexikonfiler och regelfiler. Här finns två regelfiler: en med regler för grammatikgranskning och en med regler för parsning. OnlineGranska finns tillgänglig i flera varianter online: DokumentationVill du referera till Granska i en forskningsartikel kan du använda:
@inproceedings{granska,
author = {Richard Domeij and Ola
Knutsson and Johan Carlberger and
Viggo Kann}, title = {Granska -- an
efficient hybrid system for {Swedish}
grammar checking}, booktitle =
"Proceedings of Nodalida '99", pages =
{49--56}, address = "Trondheim,
Norway", year = "2000"}
Vill du veta mer om Granskas regelspråk finns det en PDF med beskrivning av just detta. Granskas ordböjareInflector, Granskas ordböjare, är inbyggd i Granska men det går även att skapa ett fristående program som bara tillhandahåller ordböjningen. Ladda nedKällkoden till Inflector är skriven i C och C++. Du kan ladda ned Inflector här (senast publicerad 2005-12-30). Inflector behöver delar av Granskas taggare och behöver även taggarens lexikonfiler. Det går även att be Granska göra allt som Inflector kan göra, så det kan eventuellt vara enklare att installera Granska istället. Eller att använda onlineversionen nedan. OnlineInflector kan också köras online, via REST och via sockets. Granskas taggareGranskas taggare är inbyggd i Granska, men det går även att skapa ett fristående program som bara tillhandahåller ordklasstaggning. Granskas taggare är en HMM-taggare (Hidden Markov Model), så den använder statstik över taggföljder i en referenstext för att ange taggar i ny text. Taggaren är tränad på SUC-korpusen och använder en tagguppsättning som är en något modifierad variant av SUCs tagguppsättning. Det följer med ett verktyg som gör det möjligt att träna om taggaren på en annan korpus, så det går att få taggaren att använda ett annat taggset eller att fungera på ett annat språk än svenska. Ladda nedKällkoden till Granskas taggare finns här (senast publicerad 2009-03-10). Det finns även en version för amd64 (2010-11-05, tack till Robert Östling). Det finns också en version av Granskas taggare skriven i Java, skapad av Pierre Nugues. LexikonFör att taggaren ska fungera behöver den lexikonfiler. Man kan skapa egna lexikonfiler genom att träna taggaren på en redan taggad korpus. Det finns färdiga lexikonfiler (från att träna taggaren på SUC-korpusen) att ladda ned. OnlineGranskas taggare kan köras online, dels via taggarens ursprungliga hemsida, och dels via REST och sockets. DokumentationVill du referera till Granskas taggare kan du använda:
GTA, Granskas parserGTA är Granskas parser. Den anger frasstruktur och satsgränser i svensk text, men ger inte ett helt parseträd för hela meningen. GTA bygger på regler skrivna i Granskas regelspråk och GTA körs genom att man kör Granska med dessa regler. Ladda nedFör att ladda ned GTA behöver du ladda ned Granska ovan, kompilera Granska med en speciell flagga satt, starta Granska med några speciella parametrar, och ange en regelfil med regler för parsning. När du kompilerar Granska behöver du
ange flaggan
När du kör Granska, skicka med
följande parametrar: OnlineGTA finns tillgängligt online, via REST och via sockets. Det finns även två alternativa REST-tjänster, en som ger bara frasstruktur och en som ger bara satsgränser. DokumentationVill du referera till GTA kan du använda:
Vill du veta mer om Granskas regelspråk finns det en PDF med beskrivning av just detta. Probgranska, en statistisk grammatikgranskareProbgranska är ett verktyg som hittar skrivfel i text. "Prob" i Probgranska står för probabilistisk och Probgranska skiljer sig från många andra grammatikgranskningsverktyg genom att ingen har skrivit regler för hur korrekt eller inkorrekt svenska ser ut. Istället har Probgranska gått igenom stora mängder (förhoppningsvis) korrekt text och räknat hur ofta olika ordklasser och böjningsformer följer varandra. När Probgranska hittar en ordföljd som är väldigt ovanlig i referenstexterna varnar den om att det ser misstänkt ut. Ett exemepl är t.ex. verb som inte står i infinitivform efter ordet "att", eftersom Probgranska har noterat att det är väldigt ovanligt. Ladda nedFör att köra Probgranska så gör man samma sak som för att köra GTA ovan. För att ladda ned Probgranska behöver du ladda ned Granska ovan, kompilera Granska med en speciell flagga satt, starta Granska med några speciella parametrar, och ange en regelfil med regler för parsning. När du kompilerar Granska behöver du
ange flaggan
När du kör Granska, skicka med
följande parametrar: OnlineProbgranska finns tillgängligt online, via REST och via sockets. DokumentationVill du referera till Probgranska (engelska: ProbCheck) kan du använda:
Vill du veta mer om Granskas regelspråk finns det en PDF med beskrivning av just detta. StavaStava är ett rättstavningsprogram för svenska. För att få bra rättstavning på svenska behöver man hantera sammansatta ord på ett vettigt sätt, och det gör Stava genom regler för hur svenska sammansättningar kan och inte kan skapas. Ladda nedStavas källkod (senast publicerad 2016-07-25) är skriven i C. Stava behöver också så kallade Bloomfilter (de motsvarar ordlistan Stava använder) för att fungera. Det finns ett paket med Bloomfilter till Stava och listor på vanliga namn o.dyl. tillgängligt. Det finns också en version av Stava med tillägg för sockets. Det är samma kod som ovan, med små tillägg i två filer och en ny fil för hantering av kommunikation över sockets. Denna version behöver också ordlistorna ovan. OnlineStava kan också köras online. Stavas webbsida har ett interface där du kan ange många olika parametrar till Stava. Du kan också anropa Stava via REST och via sockets. DokumentationDet finns en Manual för Stava online. Vill du referera till Stava kan du använda:
TaggstavaTaggstava är en variant av Stava som använder Stavas analys av böjningsformer för att ange ordklasstagg för ord utan att behöva titta på ordens kontext. Ladda nedTaggstava följer med när du laddar ned Stava ovan. Du behöver ange några speciella parametrar när du kompilerar Stava för att skapa Taggstava. OnlineDet finns en hemsida för Taggstava där man kan pröva olika parametrar. Taggstava finns även tillgängligt via REST och via sockets. DokumentationVill du referera till Taggstava kan du använda:
SärstavaSärstava analyserar sammansatta ord och kan föreslå vilken tolkning som är mest sannolik om ett sammansatt ord kan analyseras på mer än ett sätt (t.ex. "glasskål" som kan vara "glass-skål", "glas-skål", eller "glass-kål"). Särstava använder Stava för att hitta de olika sätt ett sammansatt ord kan delas upp, och använder statistik och en del heuristik för att gissa vilken tolknings som är mest sannolik. Särstava kan mata ut antingen alla möjliga tolkningar eller bara den mest sannolika tolkningen. Ladda nedSärstava är skrivet i C och C++: Särstavas källkod (senast publicerad 2022-04-14). För att Särstava ska fungera behövs även lexikonfiler till Stava. OnlineSärstava finns tillgängligt online, via REST och via sockets. DokumentationVill du referera till kan du använda:
JavaSDMJavaSDM är ett verktyg för Random Indexing (en vektorrymdsmodell för lexikal semantik), skrivet i Java. JavaSDM innehåller även en stemmer (ett program för trunkering, återföra böjda ord till ordets rot) byggd på Porters algoritm. Det finns också Javaklasser för att prata med onlineversionerna av Granska, Särstava, m.m. Ladda nedDet finns två paket att välja på för JavaSDM: JavaSDM med data och JavaSDM, endast kod och dokumentation (senast publicerade 2006-12-13). Det går även att ladda ned äldre versioner av JavaSDM. Det finns också ett relaterat paket som innehåller diverse likhetsmått (senast publicerat 2006-11-16) för vektorer och matriser, också skrivet i Java. DokumentationPaketen att ladda ned innehåller även all dokumentation för JavaSDM. Dokumentationen till JavaSDM för de klasser m.m. som ingår finns också online som JavaDoc. Det finns en beskrivning av hur man kör JavaSDM för Random Indexing och en beskrivning av hur man använder de andra verktygen i JavaSDM (dess stemmer, hur man kontaktar Granska, m.m.). Dokumentation till likhetsmåtten (JavaDoc) finns också online. StompStomp är en ordklasstaggare. Den är relativt oberoende av vilket språks som ska taggas, men den behöver en taggad referenskorpus på samma språk som de texter som ska taggas. Stomp är skapad för att göra fel på andra sätt än vad de vanliga metoderna för ordklasstaggning gör. Stomp gör fler fel än de vanliga metoderna, men gör rätt på en del ord som är svåra för andra metoder. Om du bara behöver en ordklasstaggare är det nog bättre att använda Granskas taggare ovan. Stomp använder inte n-gram av taggar (vilket är det vanliga sättet att tagga ord) utan letar efter den längsta sekvensen av ord som är desamma i referenstexterna och i den aktuella texten och väljer samma tagg som i referenstexten där. Det faktum att Stomp gör andra typer av fel än andra taggare gör att Stomp är användbar om man har en ensemble av taggare (flera taggare som tillsammans får rösta om vilken tagg som ska användas). En egenhet i den här versionen av Stomp är att alla numeriska värden förutsätts ha ersatts med "4711" i texterna. Det är inte så praktiskt, men är det ett problem bör det vara rättframt att ändra koden så att den fungerar bättre för numeriska värden. Ladda nedKällkoden till Stomp (senast publicerad 2005-11-22) är skriven i C++. DokumentationVill du referera till Stomp kan du
använda:
AutoEvalAutoEval är ett verktyg för att automatisera utvärdering av språkteknologiska system. Ladda nedKällkoden till AutoEval (senast publicerad 2020-08-17) är skriven i C++. AutoEval behöver även biblioteken Xerces, Boost, och zlib för att fungera. DokumentationVill du referera till AutoEval kan du använda:
MissplelMissplel är ett verktyg för att införa realistiska stavfel i svensk text. Det går att välja olika sorters fel, t.ex. "sound alike"-fel (fel där skribenten känner till ett ord men inte vet hur det stavas) eller fel där skribenten råkat trycka på en närliggande tangent på tangentbordet. Ladda nedKällkoden till Missplel (senast publicerad 2022-04-05) är skriven i C++. Missplel behöver även biblioteken Xerces, Boost, och zlib för att fungera. Missplel behöver en lexikonfil med ordfrekvens, ord, ordklasstagg, och lemmaform för generering av vissa typer av fel. Om du inte har en egen sådan finns det en stor sådan fil bland lexikonfilerna till Granskas taggare (filen "cwtl"). OnlineMissplel finns tillgängligt online, via REST och via sockets. DokumentationVill du referera till Missplel kan du använda:
InfomatInfomat är ett verktyg för att visualisera och utforska stora vektorrymder. Sådan dyker ofta upp inom informationssökning ("information retreival"). Infomat har en egen hemsida: Infomathemsidan där det finns källkod, dokumentation, exempel m.m. Ladda nedDu kan ladda ned flera versioner av Infomat från Infomathemsidan. Här är en snabblänk till senaste versionen av Infomat (publicerad 2010-03-05). DokumentationInfomathemsidan har diverse dokumentation till Infomat. Infomat JavaDoc har information om koden. Hur man använder Infomat, en översikt Utförlig manual till Infomat (i PDF). Vill du referera till Infomat kan du
använda:
SnålgranskaSnålgranska är ett verktyg för grammatikgranskning. Det använder maskininlärning för att hitta tre sorters fel i svensk text. Snålgranska är tränad på felfri text med artificiella fel införda. Snålgranska är inte lika bra som Granska på att hitta fel, men det är mycket mindre arbete att skapa en ny Snålgranska (t.ex. för ett språk som inte har något verktyg för grammatikgranskning) än det är att skapa en ny Granska. Snålgranska hittar en del fel som inte Granska hittar (och tvärtom, förstås) så de kompletterar varandra i viss mån också. Ladda nedSnålgranskas källkod (senast publicerad 2022-04-14) är skriven i C++. Snålgranska förväntar sig att texten som kommer in är ordklasstaggad av Granskas taggare eller någon annan ordklasstaggare som använder samma tagguppsättning. För kongruensfel förväntas även taggarna ha delats upp i mindre beståndsdelar enligt denna fil med taggmappning för Snålgranska. Allt detta gör att det är lite bökigt att köra Snålgranska själv, och det är förmodligen enklare att använda online-versionen nedan. Den tar vanlig text och gör allt som behövs med texten för att kunna anropa Snålgranska. OnlineSnålgranska finns tillgängligt online, via REST och via sockets. DokumentationVill du referera till kan du använda:
|