일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- machine learning
- Reinforcement Learning
- MinHeap
- DP
- deep learning
- 머신러닝
- BFS
- Python
- 백준
- ubuntu
- 딥러닝
- LSTM
- eecs 498
- Mask Processing
- C++
- 강화학습
- dynamic programming
- One-Stage Detector
- 그래프 이론
- r-cnn
- CNN
- image processing
- dfs
- NLP
- YoLO
- AlexNet
- real-time object detection
- two-stage detector
- opencv
- MySQL
- Today
- Total
JINWOOJUNG
[ NLP ] 자연어 처리를 위한 NLTK, KoNLPy 본문
본 포스팅은 [딥 러닝을 이용한 자연어 처리 입문]을 기반으로 공부한 내용을 정리하는 포스팅입니다.
https://wikidocs.net/book/2155
자연어 처리를 위한 텍스트 데이터를 전처리 하기 위해서는 몇몇 자연어 패키지가 요구된다. 이번 포스팅은 NLTK, KoNLPy 패키지를 설치 해 보자. 개발환경은 다음과 같다.
- 개발환경
- OS : Ubuntu 20.04
- GPU : NVIDIA GeForce RTX 4070
NLTK
NLTK(Natural Language Tookit)은 자연어 처리를 쉽게 다룰 수 있는 라이브러리이다. Python 기반 라이브러리이기에 Python만 설치되어 있으면 설치하여 바로 사용이 가능하다.
pip3 install nltk
NLTK를 통해 데이터 전처리는 NLTK Tokenizer를 통해 진행된다. NLTK Tokenizer는 문장을 단어 또는 문장 등의 작은 단위(Token)으로 나누는 도구이다. 따라서 토크나이저를 활용하기 위해서는 몇몇 데이터를 받아야 하는데, word_tokenize, WordPunctTokenizer 등을 사용하기 위해서는 punkt Resource를 다운받아야 한다.
import nltk
nltk.download('punkt')
nltk.download('punkt_tab')
잘 설치했으면 다음과 같이 Tokenization이 된 것을 확인할 수 있다.
from nltk.tokenize import word_tokenize
text = "This is a test sentence!"
tokens = word_tokenize(text)
print("Tokens:", tokens)
# Result
# Tokens: ['This', 'is', 'a', 'test', 'sentence', '!']
KoNLPy
코엔엘파이(KoNLPy)는 한국어 자연어 처리를 위한 형태소 분석기 라이브러리이다. 한국어는 영어 등 다른 언어와 달라 띄어쓰기만으로 단어를 분리하기 어렵고, 조사·어미·접사 등이 붙어 있어서 문법 단위로 분석하는 게 핵심이기 때문이다.
KoNLPy를 사용하기 위해서는 Java를 설치해야 한다.
sudo apt update
sudo apt install default-jdk
pip3 install konlpy
pip3 install JPype1
잘 설치했으면 다음과 같이 잘 처리됨을 확인할 수 있다.
from konlpy.tag import Okt
okt = Okt()
text = "자연어 처리는 재밌어요!"
print("형태소 분석:", okt.pos(text))
print("명사 추출:", okt.nouns(text))
print("형태소만 추출:", okt.morphs(text))
# Result
# 형태소 분석: [('자연어', 'Noun'), ('처리', 'Noun'), ('는', 'Josa'), ('재밌어요', 'Adjective'), ('!', 'Punctuation')]
# 명사 추출: ['자연어', '처리']
# 형태소만 추출: ['자연어', '처리', '는', '재밌어요', '!']
'NLP, LLM, Multi-modal' 카테고리의 다른 글
[ VLM ] VLM Tasks와 Benchmarks..(1) (0) | 2025.04.15 |
---|---|
[ NLP ] 어간 추출(Stemming) & 표제어 추출(Lemmatization) (0) | 2025.04.14 |
[ NLP ] Cleaning & Normalization (0) | 2025.04.14 |
[ NLP ] Tokenization (0) | 2025.04.13 |