-
Notifications
You must be signed in to change notification settings - Fork 2
Paradigms
https://svn.spraakbanken.gu.se/repos/sblex/sal/trunk
Men det kan även finnas lite av intresse här: https://svn.spraakbanken.gu.se/repos/sblex/pub
Saldo på Språkbankens hemsida: https://spraakbanken.gu.se/swe/resurs/saldo
Nuvarande service för böjning av ord: https://spraakbanken.gu.se/ws/saldo-ws/gen/json/nn_6n_bord/bad
Eller här för att göra det grafiskt: https://spraakbanken.gu.se/ws/saldo-ws/para/html/
Idag använder vi oss av FM för SALDO: https://spraakbanken.gu.se/eng/research/swefn/fm-sblex
Från ’saldo.txt’ skapar vi ’saldo.dict’, som FM sväljer och spottar ut fullformlexikonet (i ett antal olika format). Böjningsmaskineriet i FM är definierat i Haskell, där varje paradigm i SALDO associeras med en funktion och ett exempelord. FM underhålls inte längre (av mig), och vi vill nu få till ett teknikskifte till paradigminduktion. En viktig anledning bakom detta skifte är att ta bort flaskhalsen, vilket är jag i detta fall, som idag behöver ändra i FM och kompilera om för att en modifiering ska slå igenom. En annan anledning är att sträva efter att språkbeskrivning inte ska kräva programmering/formella språk, så en språkvetare kan jobba obehindrat med beskrivningen.
https://spraakbanken.gu.se/morfologilabbet
Som jag förstår det så sparas paradigmen i LMF. I det här anropet som visar ett paradigm kan man kolla på TransformSet
: https://ws.spraakbanken.gu.se/ws/morfologilabbet/paradigminfo/p1_%C3%B6verfart..nn.1?lexicon=saldomp&short=true
Min (Maria) gissning är att vi vill delvis kunna ta en grundform och en paradigmidentifierare och få ut en böjningstabell som sparas i ingångarna som ett helt virtuellt fält, likt barnen i Saldo nu, som är data som inte ingår i ingångarna, men ändå är sökningsbar och går att visa upp. Anropet i nuvarande Morfologilabbet för att göra det ser ut såhär:
I nuvarande versionen av Saldo i Morfologilabbet så finns ett fält som heter fmparadigms
och det är nog det gamla paradigment som användes i gamla Saldo. Men som jag förstår det så blir det helt nya paradigm, men kanske en mappning behövs mellan namnen, eller att paradigmextract
kan modifieras så att det använder samma namn i den mån det går.
Jag tror att man måste kombinera gamla böjningstabeller med informationen som finns i saldo30.txt
och initiera pextract
med befintliga paradigm (men ta bort vissa saker, som sammansättningsformerna och particip i verb, se nedan).
paradigmextract
vill ha paradigmerna i som en lista av tupler/en dict som ser ut såhär:
{
"sg indef nom": "1",
"sg indef gen": "1+s",
"sg def nom": "1+en",
"sg def gen": "1+ens",
"pl indef nom": "1+er",
...
}
Min tanke är också att vårt paradigmplugin får ha egna tabeller och eventuellt indexar. Pluginet får ett namespace för databasen som den får arbeta med?
Jag har också en en tanke på en separat config-fil för varje lexikon som använder sig av paradigmmodulen, se: https://github.com/spraakbanken/karp-tng-backend-sb/blob/master/saldo/pextract/saldom.json.
Som med alla teknikskiften, så är det inte helt oproblematiskt. Några stötestenar:
- Vad paradigminduktionen anser vara ett paradigm stämmer inte nödvändigtvis med FMs bild. Det har att göra med att att vissa av FMs funktioner har en del ”smarthet” i sig. Malin gjorde en körning och jämförde. Det mesta matchade, tack och lov, men för vissa inducerade paradigm har vi ett många-till-ett. Två vägar framåt här: (1) Göra paradigminduktionen smartare, genom att introducera ett antal väl valda operatorer (typ som ger stöd för omljud och dylikt); (2) Anpassa SALDOs paradigm. Förmodligen vill vi börja med (2), samtidigt som vi funderar på (1).
- FM är idag inte anpassat för SALDO v3.0, så i den meningen finns inte de aktuella paradigmen. MEN, ändringarna i SALDO v3.0, mig veterligen, handlar om att ta bort/flytta ut typinformation/taggar (sammansättningsformerna är inte längre en del av paradigmet; participen är inte längre en del av verbböjningen, utan blir adjektiv), så det är inte säkert att vi behöver gå via en ny FM-implementation, utan vi borde kunna jobba direkt på paradigmdatan (för verben handlar exempelvis inte om mycket mer än att ta bort de fält som innehåller ”part”).
Hur man får ut variabeln i paradigmdefinitionerna. Longest match, t.ex.:
x + "a"
x + "or"
match("flicka", "(.+)a") => "flick"
Sedan kan man initiera tabellen med "flick".
Fältet sist på varje rad i saldo.txt. Just nu står det bara ":" där, men sen kommer det att finnas information om särdrag, typ: "särdrag:värde|särdräg:värde".
Rörande paradigminduktion/-prediktion: http://school.grammaticalframework.org/2017/slides/Markus-Lexicon_Building.pdf
Totalt antal paradigm som nämns i saldo30.txt
: 1377
Total antal paradigm som finns i paradigm.txt
: 1460
Antal paradigm som finns i saldo30.txt
, men inte i paradigm.txt
: 95
Antal paradigm som finns i paradigm.txt
, men inte i saldo30.txt
: 178