spaCy로 배우는 자연어 처리
Azadeh Mobasher
Principal Data Scientist
import spacynlp = spacy.load("en_core_web_sm")doc = nlp("Here's my spaCy pipeline.")
spaCy 임포트spacy.load()로 Language 클래스를 반환하는 nlp 생성Language 객체는 텍스트 처리 파이프라인nlp()에 텍스트를 주어 Doc 컨테이너 생성
spaCy는 Language 클래스로 다음 단계를 수행합니다:
spaCy에는 텍스트를 표현하는 여러 자료구조가 있습니다:
| Name | Description |
|---|---|
Doc |
텍스트의 언어 주석에 접근하는 컨테이너 |
Span |
Doc의 슬라이스 |
Token |
개별 토큰(단어, 구두점, 공백 등) |
spaCy의 언어 처리 파이프라인은 로드한 모델과 기능에 따라 달라집니다.
| Component | Name | Description |
|---|---|---|
| Tokenizer | Tokenizer | 텍스트를 토큰으로 분할하고 Doc 생성 |
| Tagger | Tagger | 품사 태그 부여 |
| Lemmatizer | Lemmatizer | 단어를 원형으로 축약 |
| EntityRecognizer | NER | 개체명 인식 및 라벨 지정 |
각 컴포넌트는 텍스트 처리를 위한 고유 기능 보유
import spacy nlp = spacy.load("en_core_web_sm") doc = nlp("Tokenization splits a sentence into its tokens.")print([token.text for token in doc])
['Tokenization', 'splits', 'a', 'sentence', 'into', 'its', 'tokens', '.']
DependencyParser 컴포넌트의 일부import spacy nlp = spacy.load("en_core_web_sm") text = "We are learning NLP. This course introduces spaCy." doc = nlp(text)for sent in doc.sents: print(sent.text)
We are learning NLP.
This course introduces spaCy.
import spacy nlp = spacy.load("en_core_web_sm") doc = nlp("We are seeing her after one year.")print([(token.text, token.lemma_) for token in doc])
[('We', 'we'), ('are', 'be'), ('seeing', 'see'), ('her', 'she'),
('after', 'after'), ('one', 'one'), ('year', 'year'), ('.', '.')]
spaCy로 배우는 자연어 처리