Skip to content

Paradigms

Maria Öhrman edited this page May 8, 2019 · 5 revisions

Paradigm braindump

Länkar till repon och dylikt för nuvarande Saldo

Repon

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

Länkar

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/

Hur det fungerar nu för Saldo (från Markus)

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.

Morfologilabbet

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

Framtiden, pextract?

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:

https://ws.spraakbanken.gu.se/ws/morfologilabbet/inflectclass?lexicon=saldomp&wordform=kofot&classname=paradigm&classval=p1_%C3%B6verfart..nn.1

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.

Från Markus

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”).

Paradigminduktion

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".

Om Saldo

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".

Våra repon

karp-tng-backend-pextract

paradigmextract

Läslista

Rörande paradigminduktion/-prediktion: http://school.grammaticalframework.org/2017/slides/Markus-Lexicon_Building.pdf

Jämförelse av saldo30.txt och paradigms.txt

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