In [1]:
# https://spacy.io/usage/linguistic-features

In [1]:
import spacy

nlp = spacy.load('de')

Tokenizing


In [36]:
text = 'Apple erwägt ein Startup in UK für zehn Millarden Dollar zu kaufen.'

In [37]:
doc = nlp(text)

In [38]:
type(doc)


Out[38]:
spacy.tokens.doc.Doc

In [39]:
# https://spacy.io/usage/linguistic-features
# all attributes: https://spacy.io/api/token#attributes
    
for token in doc:
     print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,
          token.shape_, token.is_alpha, token.is_stop)


Apple Apple PROPN NE sb Xxxxx True False
erwägt erwägen VERB VVFIN ROOT xxxx True False
ein einen DET ART nk xxx True True
Startup Startup NOUN NN oa Xxxxx True False
in in ADP APPR mnr xx True True
UK UK PROPN NE nk XX True False
für für ADP APPR mo xxx True True
zehn zehn NUM CARD nk xxxx True True
Millarden Millarden NOUN NN nk Xxxxx True False
Dollar Dollar NOUN NN nk Xxxxx True False
zu zu PART PTKZU pm xx True True
kaufen kaufen VERB VVINF oc xxxx True False
. . PUNCT $. punct . False False

In [40]:
spacy.explain('ADP')


Out[40]:
'adposition'

Similarities based on word embeddings


In [41]:
# https://spacy.io/models/de#de_core_news_sm
# https://spacy.io/usage/spacy-101#vectors-similarity
    
for token in doc:
    for token2 in doc:
        if token2.pos_ == 'NOUN':
            print(token.text, token2.text, token.similarity(token2))


Apple Startup 0.21753632
Apple Millarden 0.17782658
Apple Dollar 0.20857131
erwägt Startup -0.3139481
erwägt Millarden -0.2393598
erwägt Dollar -0.2254691
ein Startup -0.119868085
ein Millarden -0.029241133
ein Dollar -0.22046603
Startup Startup 1.0
Startup Millarden 0.68341655
Startup Dollar 0.6969279
in Startup -0.11848015
in Millarden -0.18328923
in Dollar -0.07783993
UK Startup 0.471483
UK Millarden 0.4422868
UK Dollar 0.4250665
für Startup -0.11925332
für Millarden -0.088414334
für Dollar -0.12173488
zehn Startup 0.15906656
zehn Millarden 0.22360793
zehn Dollar 0.08684433
Millarden Startup 0.68341655
Millarden Millarden 1.0
Millarden Dollar 0.6533814
Dollar Startup 0.6969279
Dollar Millarden 0.6533814
Dollar Dollar 1.0
zu Startup -0.04532661
zu Millarden -0.050354898
zu Dollar 0.13051654
kaufen Startup -0.16948126
kaufen Millarden -0.07965049
kaufen Dollar 0.07107155
. Startup -0.0020657452
. Millarden -0.2289421
. Dollar -0.13976406

Part of Speech Tagging (POS)


In [42]:
from spacy import displacy

# https://spacy.io/usage/visualizers

In [43]:
displacy.render(doc, style='dep', jupyter=True)
# displacy.serve(doc, style='dep')


Apple PROPN erwägt VERB ein DET Startup NOUN in ADP UK PROPN für ADP zehn NUM Millarden NOUN Dollar NOUN zu PART kaufen. VERB sb nk oa mnr nk mo nk nk nk pm oc

In [44]:
spacy.explain('sb')


Out[44]:
'subject'

In [45]:
spacy.explain('oc')


Out[45]:
'clausal object'

In [26]:
spacy.explain('oa')


Out[26]:
'accusative object'

In [27]:
spacy.explain('nk')


Out[27]:
'noun kernel element'

In [28]:
spacy.explain('mnr')


Out[28]:
'postnominal modifier'

In [46]:
spacy.explain('pm')


Out[46]:
'morphological particle'

In [47]:
spacy.explain('mo')


Out[47]:
'modifier'

In [48]:
spacy.explain('PROPN')


Out[48]:
'proper noun'

In [49]:
spacy.explain('ADP')


Out[49]:
'adposition'

In [50]:
spacy.explain('PART')


Out[50]:
'particle'

Dependencies / Tokens actually form a tree


In [51]:
for chunk in doc.noun_chunks:
    print(chunk.text, chunk.root.text, chunk.root.dep_,
          chunk.root.head.text)


Apple Apple sb erwägt
ein Startup Startup oa erwägt
UK UK nk in
zehn Millarden Dollar Millarden nk für

In [52]:
for token in doc:
    print(token.text, token.dep_, token.head.text, token.head.pos_,
          [child for child in token.children])


Apple sb erwägt VERB []
erwägt ROOT erwägt VERB [Apple, Startup, kaufen, .]
ein nk Startup NOUN []
Startup oa erwägt VERB [ein, in]
in mnr Startup NOUN [UK]
UK nk in ADP []
für mo kaufen VERB [Millarden]
zehn nk Millarden NOUN []
Millarden nk für ADP [zehn, Dollar]
Dollar nk Millarden NOUN []
zu pm kaufen VERB []
kaufen oc erwägt VERB [für, zu]
. punct erwägt VERB []

Entities


In [53]:
displacy.render(doc, style='ent', jupyter=True)


Apple ORG erwägt ein Startup in UK LOC für zehn Millarden Dollar zu kaufen.

In [ ]: