서비스 기획자의 성장기록

[ML/텍스트분석] 5. 텍스트 분류 실습: 20 뉴스그룹 분류 본문

머신러닝 (ML)/텍스트 분석

[ML/텍스트분석] 5. 텍스트 분류 실습: 20 뉴스그룹 분류

Jenny Noh 2024. 2. 11. 12:28

📌 20newsgroups

사이킷런에서는 20개의 토픽으로 분류된 뉴스기사 데이터셋을 제공한다. sklearn.datasets 패키지의 fetch_20newsgroups로 불러올 수 있다. 이 데이터 셋은 뉴스기사 텍스트 데이터 (.data), 데이터가 저장된 파일경로 (.filenames),  토픽의 이름(.target_names)과 토픽이름의 인덱스(.target), 그리고 데이터셋에 대한 설명 (.DESCR)을 인스턴스로 가지고 있다. 

 

 

 1️⃣ 데이터셋 불러오기

0번째 기사 샘플 확인
정답 (target) 종류 확인

 

 

2️⃣ 기사 본문 내용만 불러오기

: 기사의 headers, footers, quotes 제거

 

 

3️⃣ 학습/평가 데이터 분리

 

 

4️⃣ 모델 학습/예측/평가

(1) CounterVectorizer 사용

 

 

(2) TfidfVectorizer 사용

 

 

(3) TfidfVectorizer + ngram_range, max_df 파라미터

 

 

결론:

예측력이 가장 높은 것은 TfidfVectorizer에 ngram_range와 max_df 파라미터를 사용하여 벡터화한 모델이다.

어근추출(stemming or lemmatization)과 GridSearchCV로 하이퍼파라미터 튜닝을 수행하면 예측력을 더 높일 수 있다.