Skip to content

Latest commit

 

History

History
196 lines (177 loc) · 7.51 KB

ru.md

File metadata and controls

196 lines (177 loc) · 7.51 KB

deplacy для синтаксического анализа

>>> import stanza
>>> nlp=stanza.Pipeline("ru")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   iobj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ root
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ iobj
.      PUNCT <════════════╝ punct
>>> import trankit
>>> nlp=trankit.Pipeline("russian")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   iobj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ root
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ iobj
.      PUNCT <════════════╝ punct
>>> import spacy
>>> nlp=spacy.load("en_udify")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   iobj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ root
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ iobj
.      PUNCT <════════════╝ punct
>>> def nlp(t):
...   import urllib.request,urllib.parse,json
...   with urllib.request.urlopen("https://lindat.mff.cuni.cz/services/udpipe/api/process?model=ru&tokenizer&tagger&parser&data="+urllib.parse.quote(t)) as r:
...     return json.loads(r.read())["result"]
...
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   iobj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ root
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ obl
.      PUNCT <════════════╝ punct
>>> from cube.api import Cube
>>> nlp=Cube()
>>> nlp.load("ru")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   iobj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ root
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ obl
.      PUNCT <════════════╝ punct
>>> import spacy
>>> nlp=spacy.load("ru_core_news_md")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   iobj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ ROOT
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ obj
.      PUNCT <════════════╝ punct
>>> import spacy_udpipe
>>> nlp=spacy_udpipe.load("ru")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва NOUN  <════════════╗ nsubj
слезам NOUN  <══════════╗ ║ iobj
не     PART  <╗         ║ ║ advmod
верила VERB  ═╝═══════╗═╝═╝ root
,      PUNCT <════╗   ║     punct
а      CCONJ <══╗ ║   ║     cc
верила VERB  ═╗═╝═╝═╗<conj
любви  NOUN  <╝     ║       obj
.      PUNCT <══════╝       punct
>>> import spacy_jptdp
>>> nlp=spacy_jptdp.load("ru_syntagrus")
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва NOUN  <════════════╗ nsubj
слезам NOUN  <══════════╗ ║ iobj
не     PART  <╗         ║ ║ advmod
верила VERB  ═╝═══════╗═╝═╝ ROOT
,      PUNCT <════╗   ║     punct
а      CCONJ <══╗ ║   ║     cc
верила VERB  ═╗═╝═╝═╗<conj
любви  NOUN  <╝     ║       obl
.      PUNCT <══════╝       punct
>>> from natasha import Doc,Segmenter,NewsEmbedding,NewsMorphTagger,NewsSyntaxParser,MorphVocab
>>> tokenizer=Segmenter()
>>> embedding=NewsEmbedding()
>>> tagger=NewsMorphTagger(embedding)
>>> parser=NewsSyntaxParser(embedding)
>>> lemmatizer=MorphVocab()
>>> def nlp(t):
...   d=Doc(t)
...   d.segment(tokenizer)
...   d.tag_morph(tagger)
...   d.parse_syntax(parser)
...   u=""
...   for s in d.sents:
...     for t in s.tokens:
...       t.lemmatize(lemmatizer)
...       i=t.id.find("_")
...       f="_" if t.feats=={} else "|".join([k+"="+v for k,v in t.feats.items()])
...       u+="\t".join([t.id if i<0 else t.id[i+1:],t.text,t.lemma,t.pos,t.pos+("" if f=="_" else "|"+f),f,t.head_id if i<0 else t.head_id[i+1:],t.rel,"_","start_char="+str(t.start)+"|end_char="+str(t.stop)])+"\n"
...     u+="\n"
...   return u
...
>>> doc=nlp("Москва слезам не верила, а верила любви.")
>>> import deplacy
>>> deplacy.render(doc)
Москва PROPN <══════════╗   nsubj
слезам NOUN  <════════╗ ║   nsubj
не     PART  <╗       ║ ║   advmod
верила VERB  ═╝═════╗═╝═╝═╗ root
,      PUNCT <════╗ ║     ║ punct
а      CCONJ <══╗ ║ ║     ║ cc
верила VERB  ═╗═╝═╝<╝     ║ conj
любви  NOUN  <╝           ║ obj
.      PUNCT <════════════╝ punct