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