허깅 페이스 모델을 활용한 텍스트 감정 분석
들어가며
허깅 페이스는 머신러닝 라이브러리를 제공하는 인공지능 플랫폼입니다. 자연어 처리 기술이 발전하며 '감정 분석'은 고객 리뷰 분석, SNS 모니터링 등 다양한 분야에서 활용이 가능합니다. 특히, 허깅 페이스의 사전 학습된 모델을 활용하면 모델 학습 과정 없이 간단한 코드만으로 감정 분석을 할 수 있습니다.
이 글에서는 허깅 페이스 파이프라인을 활용한 기본 감정 분석, 특정 모델을 활용한 감정 분석과 한국어 감정 분석 모델을 활용하는 방법에 대해 소개합니다.
필요한 패키지인 transformers와 torch를 설치합니다.
pip install transformers torch
- 허깅 페이스 파이프라인을 활용한 감정 분석
- 허깅 페이스의 특정 모델을 활용한 감정 분석
- 허깅페이스의 한국어 모델을 활용한 한국어 감정 분석
허깅 페이스 파이프라인을 활용한 감정 분석
허깅 페이스의 사전 학습된 모델을 활용하면 간단하게 텍스트 감정 분석을 할 수 있습니다.
파이프라인은 pipeline('sentiment-analysis')를 호출하면, 자동으로 가장 적절한 감정 분석 모델을 불러옵니다. 현재는 기본적으로 distilbert-base-uncased-finetuned-sst-2-english 모델을 사용합니다.
파이프라인을 활용한 "I love python" 문장의 감정 분석 결과는 다음과 같습니다. 감정 결과는 긍정/부정을 나타내는 label과 확률 점수인 score로 출력됩니다.
from transformers import pipeline
# 감정 분석 파이프라인 로드
classifier = pipeline("sentiment-analysis")
# 감정 분석 수행
text = "I love python"
result = classifier(text)
print(result)
감정 분석에 활용한 모델을 활용하는 방법은 다음과 같습니다. 해당 문장에 활용한 모델은 디폴트 모델인 distilbert-base-uncased-finetuned-sst-2-english입니다.
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
print(classifier.model.name_or_path)
허깅 페이스의 특정 모델을 활용한 감정 분석
파이프라인의 기본 모델이 아닌 특정 모델을 활용하는 방법은 다음과 같습니다. pipeline 내에 특정 모델을 지정하여 사용할 수 있습니다.
bert-base-multilingual-uncased-sentiment는 다국어 감정 분석을 위한 BERT 기반 모델로, 영어뿐만 아니라 한국어를 포함한 여러 언어의 텍스트 감정 분석이 가능합니다.
위와 동일한 문장에 대한 감정 분석 결과는 다음과 같습니다.
label은 감정을 별점 1~5로 분류하여 결과를 출력합니다. 즉, "I love python"의 감정 분석 결과는 5 stars로 '가장 긍정적인 감정'을 의미합니다. score는 모델이 해당 감정(5 starts)에 대해 얼마나 확신하는지를 확률로 나타냅니다. 결과는 0.85이므로 꽤 높은 확신을 가지고 있음을 뜻합니다.
from transformers import pipeline
classifier = pipeline(
"sentiment-analysis",
model="nlptown/bert-base-multilingual-uncased-sentiment")
result = classifier("I love python")
print(result)
"This is the worst experience ever."에 대한 감정 분석 결과는 다음과 같습니다. 1 star이므로 매우 부정적인 문장으로 판단했음을 나타냅니다.
from transformers import pipeline
classifier = pipeline(
"sentiment-analysis",
model="nlptown/bert-base-multilingual-uncased-sentiment")
result = classifier("This is the worst experience ever.")
print(result)
허깅페이스의 한국어 모델을 활용한 한국어 감정 분석
한국어 문장에 대한 감정 분석은 한국어 전용 모델을 사용해야 합니다. sangrimlee/bert-base-multilingual-cased-nsmc를 활용하는 방법은 다음과 같습니다.
sangrimlee/bert-base-multilingual-cased-nsmc 모델은 네이버 영화 리뷰 데이터셋(NSMC)을 활용하여 학습된 BERT 기반의 감정 분석 모델로, 한국어 텍스트의 긍정/부정을 분류합니다.
"이 영화는 정말 최고였어요!"에 대한 감정 분석 결과는 다음과 같습니다. label은 '긍정'으로 이에 대한 score는 99.44%입니다.
from transformers import pipeline
classifier = pipeline(
'sentiment-analysis',
model='sangrimlee/bert-base-multilingual-cased-nsmc'
)
result = classifier("이 영화는 정말 최고였어요!")
print(result)
"이 영화는 시간 낭비였어요."에 대한 감정 분석 결과는 다음과 같습니다. label은 '부정'으로 이에 대한 score는 99.58%입니다.
from transformers import pipeline
classifier = pipeline(
'sentiment-analysis',
model='sangrimlee/bert-base-multilingual-cased-nsmc'
)
result = classifier("이 영화는 시간 낭비였어요.")
print(result)
'Python' 카테고리의 다른 글
[파이썬] 내장함수 str - 슬라이싱, find, contains, strip (10) | 2025.03.21 |
---|---|
[파이썬] zip 파일 read, 압축/ 해제 - read_csv, compression, zipfile (0) | 2025.03.19 |
[파이썬] print문/출력문 로그 txt 저장 - open, file (0) | 2025.03.17 |
[파이썬] 터미널 출력문 글꼴, 음영 색상 변경 - colorama (2) | 2025.03.16 |
[파이썬] 공공데이터 API 활용 XML 파싱 - 기상청 시간 데이터 추출 (0) | 2025.03.16 |