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>