resources/images/dhlab-logo-nb.png

1.10. NER og POS med Spacy#

Hent ut navn og steder fra en tekst i Nasjonalbibliotekets samling med NER.

Finn ordklasser med POS.

import dhlab as dh
from dhlab import Corpus
from dhlab.text.parse import NER, POS, Models

Hent ut en urn

# Bygg et korpus basert Agnar Mykle og hent ut urn-kolonnen som liste
urns = Corpus(doctype="digibok", author="mykle", title="røde").frame.urn
# Hent ut en urn
my_urn = urns[1]

Oversikt over modeller:
Dhlab støtter Per januar 2023 språkene norsk, dansk og engelsk. Tilgjengelige modeller finnes ved å bruke Models. Man kan lese mer om de enkelte modellene på Spacys hjemmesider.

nb_core_news_sm er et bra utgangspunkt for en norskspråklig bok eller avis.

l = Models()
l.models
['nb_core_news_lg',
 'da_core_news_lg',
 'nb_core_news_sm',
 'en_core_web_lg',
 'en_core_web_md',
 'da_core_news_trf']

1.10.1. NER#

NER (Named Entity Recognition) brukes for å finne navngitte entiteter, som personer, steder, osv. i teksten.

result = NER(urn=my_urn, model="nb_core_news_sm", start_page=0, to_page=1000000)
result.ner
token ner frekv
30 Ask PER 814
127 Daniel PER 115
269 Gud PER 82
1344 mann PER 82
1542 s ORG 75
... ... ... ...
767 Uganda LOC 1
764 Tyskeren MISC 1
763 Tysk MISC 1
762 Tusen PER 1
1988 übestikkelighet PER 1

1989 rows × 3 columns

1.10.2. POS – Ordklassetagging#

Finn ordklasser og dependens for en tekst med POS

res = POS(urn=urns[1], model=l.models[2], to_page=10000)
res.pos
token lemma pos dep head head_lemma head_pos head_head head_head_lemma head_head_pos frekv
3647 , , PUNCT punct skamme skamme VERB henne henne ADV 6
5017 , , PUNCT punct lagt lægge VERB lagt lægge VERB 4
106939 nu nu ADV advmod lukker lukke VERB sier sie VERB 4
7131 , , PUNCT punct dekket dekke VERB opp opp ADV 4
15776 . . PUNCT punct Ja ja INTJ Ja ja INTJ 4
... ... ... ... ... ... ... ... ... ... ... ...
52817 en en DET det idé idé NOUN fikk fikk VERB 1
52818 en en DET det altan altan NOUN vendte vende VERB 1
52819 en en DET det blomsterkasse blomsterkasse NOUN jevngod jevngod NOUN 1
52820 en en DET det blomsterpotte blomsterpot NOUN vendte vende VERB 1
156534 ADJ ROOT ADJ ADJ 1

156535 rows × 11 columns