Skip to content

Latest commit

 

History

History
333 lines (302 loc) · 14.4 KB

ja.md

File metadata and controls

333 lines (302 loc) · 14.4 KB

deplacyを用いた日本語文法解析

spaCy-SynChaで解析

>>> import spacy_syncha
>>> nlp=spacy_syncha.load()
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       amod(用言による連体修飾語)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       CCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ ROOT()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

spaCy-ChaPASで解析

>>> import spacy_chapas
>>> nlp=spacy_chapas.load()
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       amod(用言による連体修飾語)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       CCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ ROOT()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

UniDic-COMBOで解析

>>> import unidic_combo
>>> nlp=unidic_combo.load()
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       acl(連体修飾節)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       CCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ ROOT()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

spaCyで解析

>>> import spacy
>>> nlp=spacy.load("ja_core_news_sm")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       acl(連体修飾節)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ ROOT()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

GiNZAで解析

>>> import spacy
>>> nlp=spacy.load("ja_ginza")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       acl(連体修飾節)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     NOUN  ═══╗═╗═══╝═╗ ROOT()
       AUX   ═╗<╝ ║     ║ cop(繫辞)
あっ     VERB  <╝   ║     ║ fixed(固着)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

UDPipe 2で解析

>>> def nlp(t):
...   import urllib.request,urllib.parse,json
...   with urllib.request.urlopen("https://lindat.mff.cuni.cz/services/udpipe/api/process?model=ja&tokenizer&tagger&parser&data="+urllib.parse.quote(t)) as r:
...     return json.loads(r.read())["result"]
...
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       acl(連体修飾節)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     PROPN ═╗═╗═╗═══╝═╗ root()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

Stanzaで解析

>>> import stanza
>>> nlp=stanza.Pipeline("ja")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       acl(連体修飾節)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     PROPN ═══╗═╗═══╝═╗ root()
       AUX   ═╗<╝ ║     ║ cop(繫辞)
あっ     VERB  <╝   ║     ║ fixed(固着)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

spaCy-jPTDPで解析

>>> import spacy_jptdp
>>> nlp=spacy_jptdp.load("ja_gsd")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<══╗       nmod(体言による連体修飾語)
       ADP   <╝   ║       case(格表示)
長い     ADJ   <══╗ ║       acl(連体修飾節)
トンネル NOUN  ═╗═╝═╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     ADJ   ═╗═╗═╗═══╝═╗ ROOT()
       AUX   <╝ ║ ║     ║ aux(動詞補助成分)
あっ     AUX   <══╝ ║     ║ fixed(固着)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

UniDic2UDで解析

>>> import unidic2ud
>>> nlp=unidic2ud.load("gendai")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<nsubj(主語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       CCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ root()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

SuPar-UniDicで解析

>>> import suparunidic
>>> nlp=suparunidic.load()
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<nsubj(主語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       CCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ ROOT()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

esuparで解析

>>> import espar
>>> nlp=esupar.load("ja")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<nsubj(主語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       CCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═╗═══╝═╗ root()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

NLP-Cubeで解析

>>> from cube.api import Cube
>>> nlp=Cube()
>>> nlp.load("ja")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<nsubj(主語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<acl(連体修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     PROPN ═╗═╗═╗═══╝═╗ root()
       AUX   <╝ ║ ║     ║ cop(繫辞)
あっ     AUX   <══╝ ║     ║ aux(動詞補助成分)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

Trankitで解析

>>> import trankit
>>> nlp=trankit.Pipeline("japanese")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<obl(斜格補語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       SCONJ <╝       ║   mark(標識)
雪国     NOUN  ═╗═╗═════╝═╗ root()
であっ   AUX   <╝ ║       ║ cop(繫辞)
       AUX   <══╝       ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

spacy-udpipeで解析

>>> import spacy_udpipe
>>> nlp=spacy_udpipe.load("ja")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<obl(斜格補語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       SCONJ <╝       ║   mark(標識)
       NOUN  <╗       ║   compound(複合)
       NOUN  ═╝═╗═╗═══╝═╗ ROOT()
であっ   AUX   <══╝ ║     ║ cop(繫辞)
       AUX   <════╝     ║ aux(動詞補助成分)
。       PUNCT <══════════╝ punct(句読点)

Camphr-KNPで解析

>>> import camphr
>>> nlp=camphr.load("knp")
>>> doc=nlp("国境の長いトンネルを抜けると雪国であった。")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
国境     NOUN  ═╗<nsubj(主語)
       ADP   <╝ ║         case(格表示)
長い     ADJ   ═══╝<acl(連体修飾節)
トンネル NOUN  ═╗═══╝<obj(目的語)
       ADP   <╝     ║     case(格表示)
抜ける   VERB  ═╗═════╝<advcl(連用修飾節)
       ADP   <╝       ║   mark(標識)
雪国     NOUN  ═╗═══════╝═╗ ROOT()
であった AUX   <╝         ║ cop(繫辞)
。       PUNCT <══════════╝ punct(句読点)