ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [3월 1주차-3/6(1)]🌍 자연어 처리 (Natural Language Processing, NLP)
    Why Not SW CAMP 5기/수업 기록 2025. 3. 6. 11:55

    자연어(Natural Language)란 우리가 일상생활에서 사용하는 언어를 의미합니다. 자연어 처리는 이러한 언어를 컴퓨터가 이해하고 분석할 수 있도록 돕는 기술입니다. 이 글에서는 자연어 처리를 위해 필요한 프레임워크 및 라이브러리, 데이터 분석 필수 패키지, 그리고 머신 러닝 워크플로우를 정리하겠습니다.


    필요 프레임워크와 라이브러리

    자연어 처리를 위해 다음과 같은 주요 프레임워크와 라이브러리를 설치해야 합니다:

    1. 텐서플로우(TensorFlow) - 딥러닝을 위한 프레임워크
      pip install tensorflow
      
    2. 케라스(Keras) - 딥러닝 모델을 쉽게 구축할 수 있는 라이브러리
      pip install keras
      
    3. 젠심(Gensim) - 토픽 모델링과 문서 유사도 분석을 위한 라이브러리
      pip install gensim
      
    4. 사이킷런(Scikit-learn) - 머신러닝 모델 구축 및 평가 라이브러리
      pip install scikit-learn
      
    5. 주피터 노트북(Jupyter Notebook) - 인터랙티브한 개발 환경
      pip install jupyter
      

    자연어 처리를 위한 NLTK 와 KoNLPy 설치

    1. NLTK (Natural Language Toolkit) - 자연어 처리를 위한 대표적인 파이썬 라이브러리
      pip install nltk
      
    2. 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()
    

    머신 러닝 워크플로우

    자연어 처리 및 머신 러닝 모델을 구축할 때 다음과 같은 단계가 필요합니다:

    1. 데이터 수집
      • 다양한 데이터 소스에서 텍스트 데이터를 수집합니다.
    2. 탐색적 데이터 분석(EDA)
      • 데이터의 특징을 파악하고, 정제해야 할 부분을 분석합니다.
    3. 데이터 전처리 및 정제
      • 텍스트 정규화, 토큰화, 불용어 제거 등의 과정이 포함됩니다.
    4. 모델링 및 훈련
      • 데이터를 훈련용과 테스트용으로 나누고 머신 러닝 모델을 학습시킵니다.
    5. 모델 평가
      • 테스트 데이터를 사용하여 모델의 성능을 평가합니다.
    6. 배포
      • 학습된 모델을 실제 서비스에 적용합니다.

    이 글에서는 자연어 처리를 위한 필수 라이브러리, 데이터 분석 필수 패키지, 그리고 머신 러닝 모델을 구축하는 과정에 대해 설명했습니다. 앞으로 자연어 처리 모델을 구축할 때 이 내용을 참고하면 도움이 될 것입니다!

Designed by Tistory.