logo

[텍스트 분석] spaCy

설치

!pip install spacy

영어 모델 설치

!python -m spacy download en_core_web_sm
 

품사 태깅

import spacy

nlp = spacy.load("en_core_web_sm")

text = "All work and no play makes Jack a dull boy."
doc = nlp(text)

for token in doc:
    print(token.text,
          token.lemma_,  # 표제어
          token.pos_,    # 단어의 품사
          token.tag_,    # 자세한 품사
          token.is_stop) # 불용어 여부
All all DET DT True
work work NOUN NN False
and and CCONJ CC True
no no DET DT True
play play NOUN NN False
makes make VERB VBZ False
Jack Jack PROPN NNP False
a a DET DT True
dull dull ADJ JJ False
boy boy NOUN NN False
. . PUNCT . False

용어 설명

spacy.explain('PROPN')
'proper noun'
 

문장 구조

from IPython.display import SVG
SVG(spacy.displacy.render(doc))
AllDETworkNOUNandCCONJnoDETplayNOUNmakesVERBJackPROPNaDETdullADJboy.NOUNdetnsubjccdetconjnsubjdetamodccomp
<IPython.core.display.SVG object>
for token in doc:
    print(token.text,
          token.dep_,   # 의존 관계
          token.head)   # 지배소
All det work
work nsubj makes
and cc work
no det play
play conj work
makes ROOT makes
Jack nsubj boy
a det boy
dull amod boy
boy ccomp makes
. punct makes

 

한국어 처리

한국어 모델 설치

!python -m spacy download ko_core_news_sm
nlp = spacy.load("ko_core_news_sm")

text = "일만 하고 놀지 않으면 바보가 된다."
doc = nlp(text)

for token in doc:
    print(token.text,
          token.lemma_,  # 표제어
          token.pos_,    # 단어의 품사
          token.tag_,    # 자세한 품사
          token.is_stop) # 불용어 여부
일만 일+만 ADV ncpa+jxc False
하고 하+고 CCONJ pvg+ecc False
놀지 놀+지 VERB pvg+ecx False
않으면 않+으면 SCONJ px+ecs False
바보가 바보+가 VERB pvg+ecx False
된다 되+ㄴ다 AUX px+ef False
. . PUNCT sf False

SVG(spacy.displacy.render(doc))
일만ADV하고CCONJ놀지VERB않으면SCONJ바보가VERB된다.AUXadvclccompccompauxaux
<IPython.core.display.SVG object>
Previous
공기어 네트워크
Next
kiwi