-
[3월 1주차-3/6(1)]🌍 자연어 처리 (Natural Language Processing, NLP)Why Not SW CAMP 5기/수업 기록 2025. 3. 6. 11:55
자연어(Natural Language)란 우리가 일상생활에서 사용하는 언어를 의미합니다. 자연어 처리는 이러한 언어를 컴퓨터가 이해하고 분석할 수 있도록 돕는 기술입니다. 이 글에서는 자연어 처리를 위해 필요한 프레임워크 및 라이브러리, 데이터 분석 필수 패키지, 그리고 머신 러닝 워크플로우를 정리하겠습니다.
필요 프레임워크와 라이브러리
자연어 처리를 위해 다음과 같은 주요 프레임워크와 라이브러리를 설치해야 합니다:
- 텐서플로우(TensorFlow) - 딥러닝을 위한 프레임워크
pip install tensorflow - 케라스(Keras) - 딥러닝 모델을 쉽게 구축할 수 있는 라이브러리
pip install keras - 젠심(Gensim) - 토픽 모델링과 문서 유사도 분석을 위한 라이브러리
pip install gensim - 사이킷런(Scikit-learn) - 머신러닝 모델 구축 및 평가 라이브러리
pip install scikit-learn - 주피터 노트북(Jupyter Notebook) - 인터랙티브한 개발 환경
pip install jupyter
자연어 처리를 위한 NLTK 와 KoNLPy 설치
- NLTK (Natural Language Toolkit) - 자연어 처리를 위한 대표적인 파이썬 라이브러리
pip install nltk - KoNLPy - 한국어 형태소 분석 라이브러리
pip install konlpy
JDK 설치 및 환경 변수 설정
KoNLPy는 Java 기반으로 동작하기 때문에 JDK를 설치하고 환경 변수를 설정해야 합니다.
- JAVA_HOME 환경 변수 설정
- %JAVA_HOME%\bin 경로 추가
JPype 설치 (KoNLPy 사용을 위한 필수 패키지)
pip install JPype1
데이터 분석을 위한 필수 패키지
1. Pandas
Pandas는 데이터를 다루는 데 필수적인 라이브러리로, Series(1차원)와 DataFrame(2차원)의 구조를 제공합니다.
import pandas as pd sr = pd.Series([17000, 18000, 1000, 5000], index=['피자', '치킨', '콜라', '맥주']) print(sr.values) print(sr.index)DataFrame 생성 예제:
values=[[1,2,3],[4,5,6],[7,8,9]] index=['one','two','three'] columns=['A','B','C'] df=pd.DataFrame(values, index=index, columns=columns) df.index # Create as a list data = [ ['1000', 'steve', 90.72], ['1001', 'james', 78.09], ['1002', 'doyeon', 98.43], ] df = pd.DataFrame(data, columns=['std_num','name','score']) # Create as a dictionary data = { 'std_num': ['1000','1001','1002'], 'name': ['steve','james','doyeon'], 'score': [90.72, 78.99, 98.43] } df = pd.DataFrame(data)2. NumPy
NumPy는 수치 데이터를 다루는 패키지로 다차원 배열을 쉽게 처리할 수 있습니다.
# numpy import numpy as np # 1dim array vec = np.array([1,2,3,4,5]) # 2dim array mat = np.array([[10,20,30], [60,70,80]]) vec.ndim mat.shape zero_mat = np.zeros((2,3)) one_mat = np.ones((2,3)) same_value_mat = np.full((2,3),7) eye_mat = np.eye(3) random_mat= np.random.random((2,2)) range_vec = np.arange(10) step=2 range_n_step_vec = np.arange(1,10,step) # change the structure of the array reshape_mat = np.array(np.arange(30)).reshape((5,6)) # numpy slicing mat = np.array([[10,20,30], [60,70,80]]) slicing_first_row = mat[0,:] slicing_second_col= mat[:,1] # integer indexing mat = np.array([[1,2], [4,5], [7,8]]) mat[1,0] # 4 mat[[2,1],[0,1]] # array([7, 5])3. Matplotlib
Matplotlib은 데이터를 시각화하는 데 유용한 라이브러리입니다.
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [10, 20, 25, 30, 50] plt.plot(x, y) plt.show()
머신 러닝 워크플로우
자연어 처리 및 머신 러닝 모델을 구축할 때 다음과 같은 단계가 필요합니다:
- 데이터 수집
- 다양한 데이터 소스에서 텍스트 데이터를 수집합니다.
- 탐색적 데이터 분석(EDA)
- 데이터의 특징을 파악하고, 정제해야 할 부분을 분석합니다.
- 데이터 전처리 및 정제
- 텍스트 정규화, 토큰화, 불용어 제거 등의 과정이 포함됩니다.
- 모델링 및 훈련
- 데이터를 훈련용과 테스트용으로 나누고 머신 러닝 모델을 학습시킵니다.
- 모델 평가
- 테스트 데이터를 사용하여 모델의 성능을 평가합니다.
- 배포
- 학습된 모델을 실제 서비스에 적용합니다.
이 글에서는 자연어 처리를 위한 필수 라이브러리, 데이터 분석 필수 패키지, 그리고 머신 러닝 모델을 구축하는 과정에 대해 설명했습니다. 앞으로 자연어 처리 모델을 구축할 때 이 내용을 참고하면 도움이 될 것입니다!
'Why Not SW CAMP 5기 > 수업 기록' 카테고리의 다른 글
[3월 1주차-3/7(1)]텍스트 전처리2-정규 표현식 (0) 2025.03.07 [3월 1주차-3/6(2)]텍스트 전처리1-토큰화, 정제 및 정규화, 표제어 및 어간 추출, 불용어 제거 (6) 2025.03.06 [3월 1주차-3/5]파이썬과 MySQL을 활용한 주식 분석 시스템 구축하기 (1) 2025.03.05 [3월 1주차-3/4]SQL 프로그래밍 : 스토어드 프로시저, 함수, 인덱스, 뷰, 트리거 활용법 (0) 2025.03.04 [2월 4주차-2/28]항공 데이터 분석: 지연 패턴과 인사이트 도출💦 (0) 2025.02.28 - 텐서플로우(TensorFlow) - 딥러닝을 위한 프레임워크