Vi har under året utvecklat följande plugin till Sparv, Språkbankens analysplattform, som använder olika modeller som KB-Labb skapat.
sparv-sbx-word-prediction-kb-bert
Detta plugin använder KBLab/bert-base-swedish-cased för att förutse de vanligaste orden för varje ord i en mening.
Om vi som exempel tar meningen Engelbert tar Volvon till Tele2 Arena och kör Sparv med sparv-sbx-word-prediction-kb-bert så får vi följande xml ut (utdrag):
<token word-prediction--kb-bert="|Jag:0.388|Vi:0.384|Han:0.082|De:0.031|Hon:0.022|">Engelbert</token>
<token word-prediction--kb-bert="|tar:0.541|tog:0.208|kör:0.157|körde:0.050|åker:0.004|">tar</token>
<token word-prediction--kb-bert="|tunnelbanan:0.275|oss:0.118|bussen:0.116|mig:0.100|bilen:0.099|">Volvon</token>
<token word-prediction--kb-bert="|till:0.897|från:0.038|mot:0.028|på:0.009|förbi:0.007|">till</token>
<token word-prediction--kb-bert="|Friends:0.584|Stockholm:0.136|Globen:0.037|Djurgården:0.034|Stockholms:0.027|">Tele2</token>
<token word-prediction--kb-bert="|arena:0.518|Arena:0.471|,:0.002|Globen:0.001|Stockholm:0.001|">Arena</token>
Värdena är sannolikheter (mellan 0 och 1). Här kan vi se att varje ord är annoterat med de sannolikaste orden på den platsen i samma mening.
Läs mer här: https://spraakbanken.gu.se/analyser/sbx-swe-word_prediction-kb_bert
sparv-sbx-sentiment-kb-sent
Detta plugin använder KBLab/robust-swedish-sentiment-multiclass för att analysera om en mening är positiv, neutral eller negativ.
Vi kan titta på tre exempel:
- "Han var glad."
- "Rihanna uppges gravid."
- "Jag har ätit sämre."
Om vi kör Sparv med sparv-sbx-sentiment-kb-sent så får vi följande xml:
<?xml version='1.0' encoding='utf-8'?>
<text>
<sentence sentiment--kb-sent="|POSITIVE:0.9|">
<token>Han</token>
<token>var</token>
<token>glad</token>
<token>.</token>
</sentence>
<sentence sentiment--kb-sent="|NEUTRAL:1.0|">
<token>Rihanna</token>
<token>uppges</token>
<token>gravid</token>
<token>.</token>
</sentence>
<sentence sentiment--kb-sent="|NEGATIVE:0.7|">
<token>Jag</token>
<token>har</token>
<token>ätit</token>
<token>sämre</token>
<token>.</token>
</sentence>
</text>
Värdena är normerade så att de ligger emellan 0 och 1, där 1 är starkast.
I detta exempel har varje mening fått ett värde, men en mening kan få flera sentiment kombinerade. Exempel: sentiment--kb-sent="|NEUTRAL:0.938|POSITIVE:0.798|NEGATIVE:0.759|
Antalet decimaler i annoteringen kan styras genom att lägga till följande i config.yaml för din korpus:
sbx_sentiment_kb_sent:
num_decimals: 5 # default is 3
Antalet decimaler styr också cut-off, det vill säga alla värden som avrundas till 0 med det antalet decimaler filtreras bort.
Läs mer här: https://spraakbanken.gu.se/analyser/sbx-swe-sentiment_sentence-transformers-kblab_robust_swedish_sentiment_multiclass
sparv-sbx-emotions-kb-emoclass
Detta plugin använder KBLab/emotional-classification för att analysera vilka känslor en mening ger uttryck för. De känslor som kan kännas igen är:
- absence of emotion (känsla saknas)
- happiness (glädje)
- love/empathy (kärlek/empati)
- fear/anxiety (oro/rädsla)
- sadness/disappointment (sorg/besvikelse)
- anger/hate (ilska/hat)
- hope/anticipation (hopp/förväntan)
Om vi analyserar samma meningar som för sparv-sbx-sentiment-kb-sent så får vi följande xml:
<?xml version='1.0' encoding='utf-8'?>
<text>
<sentence emotion--kb-emoclass="HAPPINESS">
<token>Han</token>
<token>var</token>
<token>glad</token>
<token>.</token>
</sentence>
<sentence emotion--kb-emoclass="ABSENCE OF EMOTION">
<token>Rihanna</token>
<token>uppges</token>
<token>gravid</token>
<token>.</token>
</sentence>
<sentence emotion--kb-emoclass="SADNESS/DISAPPOINTMENT">
<token>Jag</token>
<token>har</token>
<token>ätit</token>
<token>sämre</token>
<token>.</token>
</sentence>
</text>
Språket för annoteringarna kan ändras genom att lägga till dessa rader i din korpus config.yaml:
sbx_emotions_kb_emoclass:
# supported languages 'en' (default) and 'sv'
annotation_lang: sv
Läs mer här: https://spraakbanken.gu.se/analyser/sbx-swe-emotion_sentence-transformers-kblab_emotional_classification
Kontakta sb-info@svenska.gu.se om du har några frågor.