[텍스트 분석] 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))
<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))
<IPython.core.display.SVG object>