In [2]:
import spacy
In [19]:
nlp = spacy.load("pl_core_news_lg")
In [20]:
doc = nlp("Czarny kot zjadł rybę spod stołu i poszedł spać!")
części mowy¶
In [21]:
for token in doc:
print('{:<15}{:<12}'.format(token.text, token.pos_))
Czarny ADJ kot NOUN zjadł VERB rybę NOUN spod ADP stołu NOUN i CCONJ poszedł VERB spać VERB ! PUNCT
- ADJ: adjective – przymiotnik
- ADP: adposition – przyimek
- ADV: adverb – przysłówek
- AUX: auxiliary verb – czasownik posiłkowy
- CONJ: coordinating conjunction – spójnik
- DET: determiner – określnik (the, a, an, this, my, much, some, one, all, every, what, quite, etc.)
- INTJ: interjection – wykrzyknik
- NOUN: noun – rzeczownik
- NUM: numeral – liczebnik
- PART: particle – partykuła (by, byś, byle, choć, jedynie, niech, oby, owszem, może, czy, ani, etc.)
- PRON: pronoun – zaimek (on, ktoś, ten, twój, tutaj, kiedy, tyle)
- PROPN: proper noun – nazwa własna
- PUNCT: punctuation – interpunkcja
- SCONJ: subordinating conjunction – spójnik porządkowy
- SYM: symbol – symbol
- VERB: verb – czasownik
- X: other – inne
Pętla w poniższym przykładzie wypisuje wszystkie nazwy własne, po których następuje czasownik.¶
In [33]:
doc = nlp("Warszawa jest stolicą polski. Kraków nie."); doc
Out[33]:
Warszawa jest stolicą polski. Kraków nie
In [35]:
# Iteruje po wszystkich tokenach
for token in doc:
# jeżeli token będzie: część mowy = rzeczownik
if token.pos_ == "NOUN":
# jeżeli następny token będzie: część mowy = czasownik
if doc[token.i + 1].pos_ == "VERB":
print("Rzeczownik po którym występuje czasownik:", token.text)
Rzeczownik po którym występuje czasownik: Warszawa
identyfikacja jednostek nazewniczych¶
In [13]:
doc = nlp("Microsoft inwestuje w Polsce.")
In [8]:
for ent in doc.ents:
print(ent.text, ent.label_)
Microsoft orgName Polsce placeName
wizualizacja¶
In [9]:
from spacy import displacy
displacy.render(doc, style="ent", jupyter=True)
Microsoft
orgName
inwestuje w
Polsce
placeName
.
sprawdź co oznacza wybrany skrót (en)¶
In [10]:
spacy.explain("ORG")
Out[10]:
'Companies, agencies, institutions, etc.'
In [11]:
for token in doc:
print(f'{token.text:<15}, {token.pos_:<15}, {token.dep_:<15}, {token.head.text:<15}')
Microsoft , NOUN , nsubj , inwestuje inwestuje , VERB , ROOT , inwestuje w , ADP , case , Polsce Polsce , NOUN , obl , inwestuje . , PUNCT , punct , inwestuje