금융 데이터 분석가/text-analysis

[NLP] FinBERT를 사용한 경제뉴스 sentiment analysis

리치즈 2023. 10. 23. 08:53
728x90

FinBERT는 금융 분석에 특화된 언어 모델입니다.

 

BERT (Bidirectional Encoder Representations from Transformers) 아키텍처를 기반으로 금융 데이터에 맞게 파인 튜닝된 버전입니다. 따라서 금융 용어, 문맥 및 정보에 특화된 지식을 갖추고 있습니다.

 

 


경제 뉴스 sentiment analysis

Hugging Face에서는 여러 종류의 파인 튜닝된 FinBERT를 제공하고 있습니다.

저는 ProsusAI의 finbert를 사용했습니다.

 

 

ProsusAI/finbert 모델과 토크나이저를 불러옵니다.

num_labels 매개변수는 출력 레이블의 수를 나타내는데, FinBERT는 3개의 레이블(긍정, 부정, 중립)을 사용하고 있습니다.

불러온 모델을 평가 모드로 전환합니다. 파라미터를 업데이트하지 않도록 하고, 메모리 사용을 최적화하여 추론을 빠르게 수행합니다.

# FinBERT 모델 및 토크나이저 불러오기
model_name = "ProsusAI/finbert"
tokenizer = AutoTokenizer.from_pretrained(model_name)
finbert_model = AutoModelForSequenceClassification.from_pretrained(model_name, cache_dir=None, num_labels=3)
finbert_model.eval()

 

분류할 텍스트를 준비합니다.

# 분류할 텍스트
text = "Apple Inc. reported better-than-expected earnings for the last quarter."

 

finbert github 저장소에서는 예측 결과를 출력하는 모듈을 제공하고 있습니다.

 

GitHub - ProsusAI/finBERT: Financial Sentiment Analysis with BERT

Financial Sentiment Analysis with BERT. Contribute to ProsusAI/finBERT development by creating an account on GitHub.

github.com

해당 코드를 로컬에 불러오는 방법은 아래 글을 참고하시길 바랍니다.

2023.10.23 - [금융 데이터 분석가/오류아카이빙] - [Github] 다른 저장소의 특정 폴더 가져오기

 

 

finbert.py 파일의 predict 모듈을 사용하여 예측 결과를 낼 수 있습니다.

from finbert.finbert.finbert import predict
predict(text, finbert_model)

 

출력된 결과입니다.

입력 문장, 로짓, 긍정/부정/중립 분류 결과, 스코어 결과를 보여줍니다.

 

예시 문장을 긍정으로 잘 분류한 것을 확인할 수 있습니다.

 

 

 


FinBERT는 경제 분야에 특화되어 있기 때문에 다양한 작업을 시도해볼 수 있습니다.

 

주가 예측

FinBERT를 사용하여 금융 뉴스와 이벤트를 분석하여 주가 움직임을 예측하는 모델을 구축할 수 있습니다. 긍정적인 또는 부정적인 뉴스 이벤트가 주가에 어떤 영향을 미칠지 예측하는 데 도움이 됩니다.

 

이벤트 감지

금융 시장에서 중요한 이벤트를 자동으로 감지하고 해당 이벤트에 대한 신속한 대응을 수행하는 데 사용될 수 있습니다. 예를 들어, CEO의 사임, 기업 인수, 분기 실적 발표 등과 같은 이벤트를 모니터링하고, 그에 대한 뉴스와 소셜 미디어의 반응을 추적할 수 있습니다.

 

투자 포트폴리오 최적화

FinBERT를 사용하여 금융 뉴스 및 리서치 리포트를 분석하여 투자 포트폴리오를 최적화하는 데 도움을 줄 수 있습니다.

어떤 주식이나 자산을 추가하거나 제거할지 결정할 때, 해당 자산에 대한 정보의 감정 및 중요도를 고려할 수 있습니다.

 

금융 문서 분류

금융 분야의 다양한 문서, 보고서 및 논문을 분류하는 데 사용될 수 있습니다.

예를 들어, 금융 보고서가 어떤 주제 또는 카테고리에 속하는지 분류하는 데 유용합니다.

 

금융 챗봇 및 가상 비서

FinBERT를 기반으로 한 챗봇 또는 가상 비서를 구축하여 투자자와 금융 전문가에게 질문에 답변하거나 투자 제안을 제공할 수 있습니다.


 

 

 

 

728x90
LIST