자연어처리 NLP
텍스트마이닝 : 비정형 텍스트에서 의미 있는 정보를 추출
텍스트 분류 : 문서가 트정 분류 또는 카테고리에 속하는 것을 예측하는 기법 통칭

- document term matrix ; 이 문서가 어떤 영역에 속하는지 , 각 단어의 개수( 출현빈도)가 뉴스의 종류를 판별하는데 중요한 역할을 하는지
- 텍스트 분류에서는 카운트 수를 넣음
- 전체에 영향 ? → 칼럼 수는 전체 여야
- x가 y에 미치는 영향으로 분석 (내용 : 출현빈도)
감성 분석 : 텍스트에서 나타나는 감정/판단/믿음/의견/기분 등의 주관적인 요소를 분석하는 기법

- 긍/부정 레이블을 달아서
텍스트 요약 : 텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법
텍스트 군집화와 유사도 측정 : 비슷한 유형의 문서에 대해 군집화를 수행하는 기법
텍스트 분석 프로세스

- 텍스트 사전 준비 작업 (텍스트 전처리) : 텍스트를 피처로 만들기 전에 미리 클렌징, 대/소문자 변경, 특수 문자 삭제 등의 클렌징 작업, 단어 등의 토큰롸 작업, 의미 없는 단어 제거 작업, 어근 추출 등의 정규화 작업 수행
- 피처 벡터화/ 추출 : 사전 준비 작업으로 가공된 텍스트에서 피처를 추출하고 여기에 벡터 값 할당
- 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 |