2019.08.06
출처 : https://spacy.io/
핵심키워드
- spaCy
What’s spaCy?
spaCy는 파이썬의 자연어처리를 위한 오픈 소스 기반 라이브러리다.
아직 한국어는 지원하지 않지만, 텍스트 전처리에서 좋은 성능을 보여주고 있기 때문에 내가 참가하는 스터디에서도 어느 정도 다룰 예정이라고 한다.
Features
spaCy에서 지원하는 기능들이다. Tokenization과 품사 태깅, 개체 인식 등 기본적인 전처리 기능을 지원하고 있다.
Linguistic Features
Part-of-speech tagging
spacy에서 문장을 tokenize한 뒤, token객체의 유용한 메서드들을 사용할 수 있다.
import spacy
(pip install spacy로 설치)nlp = spacy.load('en_core_web_sm')
doc = nlp(u'Apple is looking at buying U.K. startup for $1 billion')for token in doc:
print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_, token.shape_, token.is_alpha, token.is_stop)
각 메서드들의 기능은 다음을 의미한다.
- Text: The original word text.
- Lemma: The base form of the word.
- POS: The simple part-of-speech tag.
- Tag: The detailed part-of-speech tag.
- Dep: Syntactic dependency, i.e. the relation between tokens.
- Shape: The word shape — capitalization, punctuation, digits.
- is alpha: Is the token an alpha character?
- is stop: Is the token part of a stop list, i.e. the most common words of the language?
Visualization
spaCy는 또한 displaCy 라이브러리를 이용하여 문장 성분들간의 관계를 시각화해준다.
다음은 displaCy의 구문 분석 시각화 예제다.
import spacy
from spacy import displacydoc = nlp("She ate the pizza")displacy.serve(doc, style="dep")
또한, entity recognizer를 시각화해서 표현할 수도 있다.
import spacy
from spacy import displacy text = """But Google is starting from behind. The company made a late push into hardware, and Apple’s Siri, available on iPhones, and Amazon’s Alexa software, which runs on its Echo and Dot devices, have clear leads in consumer adoption.""" nlp = spacy.load("custom_ner_model")
doc = nlp(text)
displacy.serve(doc, style="ent")