
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]
/tmp/ipykernel_98975/3202258208.py:4: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
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)
/mnt/data/magbb/.virtualenvs/dhlab/lib/python3.12/site-packages/dhlab/api/dhlab_api.py:80: FutureWarning: Passing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.
return pd.read_json(resp.json())
result.ner
| token | ner | frekv | |
|---|---|---|---|
| 0 | Ask | PER | 18 |
| 9 | Embla | MISC | 10 |
| 40 | Sangen om den røde rubin | MISC | 5 |
| 29 | Mykle | PER | 4 |
| 77 | norsk | MISC | 3 |
| 36 | Pedagogisk opplegg | ORG | 3 |
| 24 | Kompetansemål | ORG | 2 |
| 23 | Kjærligheten | MISC | 2 |
| 81 | r | ORG | 2 |
| 10 | Finner | PER | 2 |
| 2 | Asks | PER | 2 |
| 54 | Vedlegg | PER | 1 |
| 71 | kua kjut | LOC | 1 |
| 70 | kristendommen | MISC | 1 |
| 69 | jSff | LOC | 1 |
| 68 | j < MJ | PER | 1 |
| 55 | aaatoaV.kaa aaakks | PER | 1 |
| 56 | ai tart air ha * | ORG | 1 |
| 57 | apa | ORG | 1 |
| 67 | j | PER | 1 |
| 66 | ilhiatttt4 | MISC | 1 |
| 59 | fe.l | MISC | 1 |
| 65 | il bjran nf ut | MISC | 1 |
| 64 | ijilatol | LOC | 1 |
| 72 | kunsters | MISC | 1 |
| 63 | hsHJt | PER | 1 |
| 62 | gjeldedne normene | LOC | 1 |
| 61 | fr. k | PER | 1 |
| 60 | fet | ORG | 1 |
| 52 | Ute | PER | 1 |
| 58 | av sentrale | LOC | 1 |
| 89 | tauuiM it | MISC | 1 |
| 95 | wm eaakt il tine a | PER | 1 |
| 94 | visuell | PER | 1 |
| 93 | vg 3 ) | MISC | 1 |
| 92 | vg 2 ) | MISC | 1 |
| 91 | verdt | MISC | 1 |
| 90 | vedlegg | PER | 1 |
| 88 | tat * lt | LOC | 1 |
| 87 | tart . | MISC | 1 |
| 86 | tanas | MISC | 1 |
| 53 | Uten en tråd | MISC | 1 |
| 84 | t | ORG | 1 |
| 83 | r s | PER | 1 |
| 82 | r d | ORG | 1 |
| 80 | pedagogisk | PER | 1 |
| 79 | norske | MISC | 1 |
| 78 | norsk Kompetansemål | ORG | 1 |
| 76 | n mi | ORG | 1 |
| 75 | mann | PER | 1 |
| 74 | makthavernes | ORG | 1 |
| 73 | las aadra | LOC | 1 |
| 85 | t lm Ul fe | MISC | 1 |
| 25 | Les romanen | MISC | 1 |
| 22 | Kjærlighet er noe ikke andre ikke vet om . | MISC | 1 |
| 21 | Karl Ove Knausgårds | PER | 1 |
| 20 | Jens Bjørneboe | PER | 1 |
| 19 | Jan | PER | 1 |
| 18 | J | PER | 1 |
| 17 | Ina | PER | 1 |
| 16 | Hl4.Ua kas fp | ORG | 1 |
| 15 | High eten | MISC | 1 |
| 14 | Hai | PER | 1 |
| 96 | Øystein Rottem | PER | 1 |
| 12 | Frankrike | LOC | 1 |
| 11 | Fordypningsoppgaver | PER | 1 |
| 1 | Ask Burlefot | PER | 1 |
| 8 | Dramaets | ORG | 1 |
| 7 | Den Økonomiske . | ORG | 1 |
| 6 | Den Økonomiske | LOC | 1 |
| 5 | Clsfatasj oat hias | ORG | 1 |
| 4 | Christian Krogh | PER | 1 |
| 3 | Bergen | LOC | 1 |
| 97 | ♦ t | MISC | 1 |
| 13 | Gjennomføre | MISC | 1 |
| 51 | Ut | PER | 1 |
| 50 | UntaM | LOC | 1 |
| 49 | Ulpk aSart fe | ORG | 1 |
| 48 | Ul | LOC | 1 |
| 47 | Studentlag | LOC | 1 |
| 46 | Sosialistisk | MISC | 1 |
| 45 | Sosialisme | PER | 1 |
| 44 | Snl | ORG | 1 |
| 43 | Skjønnlitterært | PER | 1 |
| 42 | Sangen om den røde rubin utleverte sine litterære | MISC | 1 |
| 26 | Mia | PER | 1 |
| 39 | Samfunnets | LOC | 1 |
| 38 | Sak UthtWn | PER | 1 |
| 37 | RIKSTEATRET | PER | 1 |
| 35 | Pedagogisk | PER | 1 |
| 34 | Parken | LOC | 1 |
| 33 | Norge | LOC | 1 |
| 32 | Nord-Norge | LOC | 1 |
| 31 | Nasjonalbiblioteket | PER | 1 |
| 30 | Mykles | PER | 1 |
| 28 | Mt w Iwnwtt | PER | 1 |
| 27 | Mr | ORG | 1 |
| 41 | Sangen om den røde rubin forbudt i | MISC | 1 |
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)
/tmp/ipykernel_98975/4208546902.py:1: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
res = POS(urn=urns[1], model=l.models[2], to_page=10000)
/mnt/data/magbb/.virtualenvs/dhlab/lib/python3.12/site-packages/dhlab/api/dhlab_api.py:100: FutureWarning: Passing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.
return pd.read_json(resp.json())
res.pos
| token | lemma | pos | dep | head | head_lemma | head_pos | head_head | head_head_lemma | head_head_pos | frekv | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 107 | , | , | PUNCT | punct | farlig | farlig | ADJ | rørende | rørende | ADJ | 4 |
| 2316 | » | » | PUNCT | punct | l | l | X | krl | krl | NOUN | 3 |
| 74 | * | * | SYM | punct | ■ | enti■eter | NOUN | # | # | PROPN | 3 |
| 111 | , | , | PUNCT | punct | ikke | ikke | ADV | klar | klar | ADJ | 3 |
| 2325 | » | » | PUNCT | punct | U | U | PROPN | aka | aka | ADV | 2 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 806 | både | både | ADV | advmod | kvinnefrigjøring | kvinnefrigjøring | NOUN | tanker | tanke | NOUN | 1 |
| 807 | bøkene | bøk | NOUN | nmod | av | av | X | Sangen | sang | NOUN | 1 |
| 808 | bør | burde | AUX | aux | være | være | VERB | oppfatninger | oppfatning | NOUN | 1 |
| 809 | bøyest | bøyest | ADV | advmod | setter | sette | VERB | setter | sette | VERB | 1 |
| 800 | bryllupet | bryllupet | NOUN | nmod | Embla | Embla | PROPN | holder | holde | VERB | 1 |
2369 rows × 11 columns