학습 자료

NLTK를 활용한 고급 자연어 처리 기법

이번 수업에서는 NLTK를 활용한 품사 태깅, 개체명 인식, 문법 구조 분석과 같은 고급 기능을 살펴보겠습니다.


1. 품사 태깅(Part-of-Speech Tagging)

품사(POS, Part-of-Speech)는 단어의 문법적 역할을 뜻합니다.

예를 들어 "I am a student."에서 I는 대명사, am은 동사, a는 관사, student는 명사입니다.

품사 태깅은 문장에서 동사, 명사 등 각 단어의 품사를 분석하는 과정입니다.

품사 태깅 예시
import nltk from nltk.tokenize import word_tokenize from nltk import pos_tag nltk.download('averaged_perceptron_tagger') text = "NLTK provides powerful NLP tools." tokens = word_tokenize(text) tagged = pos_tag(tokens) print(tagged)

위 코드에서 NNP(고유명사), VBZ(현재형 동사), JJ(형용사) 등 각 단어의 품사가 태깅됩니다.


2. 개체명 인식(Named Entity Recognition, NER)

개체명 인식(NER)은 텍스트에서 사람, 조직, 위치 등 특정 개체를 식별하는 작업입니다.

개체명 인식 예시
import numpy from nltk.chunk import ne_chunk nltk.download('maxent_ne_chunker') nltk.download('words') sentence = "I live in California." tokens = word_tokenize(sentence) tagged = pos_tag(tokens) ner_tree = ne_chunk(tagged) print(ner_tree)

출력 결과는 다음과 같이 나타납니다.

(S I/PRP live/VBP in/IN (GPE California/NNP) ./.)

여기서 GPE는 지명(Geopolitical Entity)을 나타내며, NNP는 고유명사를 의미합니다.


한국어 지원은 어떻게?

NLTK는 주로 영어 기반의 자연어 처리 라이브러리이므로 한국어 지원이 제한적입니다.

한국어 자연어 처리를 위해서는 KoNLPy, spaCy 등의 라이브러리를 함께 활용하는 것이 일반적입니다.

KoNLPy 예시
from konlpy.tag import Okt okt = Okt() text = "파이썬은 자연어 처리를 쉽게 해줍니다." print(okt.morphs(text)) # 형태소 분석 print(okt.nouns(text)) # 명사 추출 print(okt.pos(text)) # 품사 태깅

위 코드로 한국어 문장에서 형태소를 분리하고 품사를 태깅할 수 있습니다.

NLTK는 영어 기반의 자연어 처리에 적합하며, 한국어 처리를 위해서는 다른 라이브러리를 사용하는 것이 좋습니다.


참고 자료

Mission
0 / 1

다음 중 빈칸에 들어갈 가장 적절한 단어는 무엇인가요?

품사 태깅은 각 단어의 를 분석하는 과정입니다.
의미
문법적 역할
문장 구조
형태

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말