LG DX DATA SCHOOL

01/27 NLP

getfeelingsfrom 2026. 1. 27. 15:58

자연어처리 NLP

텍스트마이닝 : 비정형 텍스트에서 의미 있는 정보를 추출

 

텍스트 분류 : 문서가 트정 분류 또는 카테고리에 속하는 것을 예측하는 기법 통칭

  • document term matrix ; 이 문서가 어떤 영역에 속하는지 , 각 단어의 개수( 출현빈도)가 뉴스의 종류를 판별하는데 중요한 역할을 하는지
  • 텍스트 분류에서는 카운트 수를 넣음
  • 전체에 영향 ? → 칼럼 수는 전체 여야
  • x가 y에 미치는 영향으로 분석 (내용 : 출현빈도)

 

감성 분석 : 텍스트에서 나타나는 감정/판단/믿음/의견/기분 등의 주관적인 요소를 분석하는 기법

  • 긍/부정 레이블을 달아서

 

텍스트 요약 : 텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법

텍스트 군집화와 유사도 측정 : 비슷한 유형의 문서에 대해 군집화를 수행하는 기법

 

 

 

텍스트 분석 프로세스 

  1. 텍스트 사전 준비 작업 (텍스트 전처리) : 텍스트를 피처로 만들기 전에 미리 클렌징, 대/소문자 변경, 특수 문자 삭제 등의 클렌징 작업, 단어 등의 토큰롸 작업, 의미 없는 단어 제거 작업, 어근 추출 등의 정규화 작업 수행
  2. 피처 벡터화/ 추출 : 사전 준비 작업으로 가공된 텍스트에서 피처를 추출하고 여기에 벡터 값 할당
  3. ML 모델 수립 및 학습/ 예측/ 평가 : 피처 벡터화된 데이터 세트에 ML모델을 적용해 학습/ 예측 및 평가 수행

 

1️⃣ 텍스트 사전 준비 작업 (Text Preprocessing)

텍스트를 피처(feature)로 만들기 전,

불필요한 노이즈를 제거하고 의미 있는 단위로 정제하는 단계다.

✔️ 주요 전처리 작업

① 클렌징(Cleansing)

  • 대문자 → 소문자 변환
  • 특수문자, 숫자, HTML 태그 제거
  • 불필요한 공백 정리
    => 같은 단어를 다른 단어로 인식하는 문제 방지

 

② 토큰화(Tokenization)

문장을 **의미 있는 최소 단위(token)**로 분리하는 작업

▫️ 문장 토큰화 (Sentence Tokenization)

  • 마침표(.), 개행 문자(\\n) 등을 기준으로 문장 분리
  • 정규표현식 기반 토큰화 가능
  • 대표 함수: sent_tokenize
  • 문장 단위 분석(감성 분석, 요약 등)에 필수

 

③ 스톱워드 제거(Stopword Removal)

  • 분석에 의미 없는 단어 제거
  • 예: the, is, and, 은, 는, 이, 가
    => 문서마다 너무 자주 등장해서 구분력을 떨어뜨리는 단어

④ 정규화(Normalization)


🔹 Stemming (어간 추출)

  • 단어를 기계적인 규칙으로 단순화
  • 일부 철자가 훼손될 수 있음
  • 예:
    • running → run
    • studies → studi

✔️ 빠르지만 의미 보존은 약함

🔹 Lemmatization (표제어 추출)

  • 의미론 기반으로 단어의 원형을 찾음
  • 품사 정보 활용
  • 예:
    • better → good
    • running → run

✔️ 정확하지만 연산 비용이 큼

 

 

2️⃣ 피처 벡터화 / 추출 (Feature Vectorization)

전처리된 텍스트를 숫자 벡터로 변환하는 단계

→ 이 단계부터 머신러닝 모델이 이해 가능


🧺 BOW (Bag of Words)

문맥과 순서를 무시하고 단어의 등장 여부/빈도만으로 문서를 표현하는 방식

  • 단어의 순서 X
  • 문서 = 단어들의 “가방”

🔹 BOW 기반 벡터화 방법

① Count 기반 벡터화

  • 단어가 몇 번 등장했는지 그대로 사용
  • 직관적
  • 자주 등장하는 단어에 지나치게 민감

② TF-IDF (Term Frequency – Inverse Document Frequency)

문서에는 중요하지만전체 문서에서는 흔하지 않은 단어에 가중치 부여

  • 희귀한 단어 → 값 ↑
  • 모든 문서에 자주 등장 → 값 ↓

=>  “차별화된 단어”를 강조하는 방식


BOW 기반 NLP의 한계

① 문맥 의미 반영 부족

  • I like you
  • You like I

➡️ BOW에서는 동일한 벡터


② 희소 행렬 문제 (Sparse Matrix)

  • 전체 단어 중 실제로 등장하는 단어는 극히 일부
  • 대부분 값이 0 → 메모리 비효율

희소 행렬 저장 방식

🔹 COO (Coordinate Format)

  • 0이 아닌 값만 저장
  • (행, 열, 값)을 각각 배열로 관리
  • 구조 단순
  • 연산 비효율

🔹 CSR (Compressed Sparse Row)

  • 행 기준으로 압축 저장
  • 각 행의 시작 위치만 별도 관리
  • 행 단위 연산 빠름
  • 머신러닝에서 가장 많이 사용

3️⃣ ML 모델 수립 / 학습 / 예측 / 평가

  • 벡터화된 텍스트 → 입력 데이터
  • 적용 모델 예시
    • Naive Bayes
    • Logistic Regression
    • SVM
    • Tree 기반 모델

=> 텍스트 분류, 감성 분석, 스팸 필터링 등에 활용

 

토픽 모델링 (Topic Modeling)

문서 집합에 숨어 있는 주제(Topic)를 자동으로 발견

  • 라벨이 없는 문서에서
  • 어떤 주제들이 존재하는지 추론

 

 LDA (Latent Dirichlet Allocation)

  • 문서는 하나의 주제가 아니라
  • 여러 주제의 혼합으로 구성됨
  • 주제는 직접 보이지 않고
  • 단어 분포 확률로만 드러남

LDA의 확률적 관점

  • 단어 등장 횟수 = 확률
  • 문서 → 주제 분포
  • 주제 → 단어 분포

✔️ LDA 활용 예

  • 뉴스 기사 주제 분류
  • 리뷰 데이터에서 관심사 파악
  • 대규모 문서 요약 및 탐색

'LG DX DATA SCHOOL' 카테고리의 다른 글

0130 인공신경망  (0) 2026.01.30
0129 목요일 추천시스템  (0) 2026.01.30
01/26 DBSCAN  (0) 2026.01.27
0123 군집분석  (0) 2026.01.23
0122 시계열 분석  (1) 2026.01.22