ProsusAI/finBERT
Financial Sentiment Analysis with BERT
FinBERT – BERT를 활용한 금융 감성 분석
소개 – FinBERT는 뉴스 헤드라인, 실적 발표, 애널리스트 보고서와 같은 금융 텍스트의 감성(긍정, 중립, 부정)을 분류하는 사전 학습된 자연어 처리 모델입니다. 범용 BERT 모델에서 시작하여 금융 특화 말뭉치와 Financial PhraseBank 데이터셋으로 추가 학습되었습니다.
중요성 – 범용 감성 모델은 종종 금융 전문 용어(예: “bearish”, “bullish”)를 잘못 해석합니다. FinBERT는 이러한 미묘한 차이를 포착하여 다음 분야에 유용하게 활용될 수 있습니다:
- 퀀트 트레이딩 신호
- 리스크 모니터링
- 시장 조사 대시보드
주요 구성 요소
- 모델 가중치 – Hugging Face의
ProsusAI/finbert저장소에 호스팅되어 있습니다. 코드는AutoModelForSequenceClassification.from_pretrained('ProsusAI/finbert')를 사용하여 이를 로드합니다. - 학습 코드 – Financial PhraseBank에서
bert-base-uncased(또는 다른 체크포인트)를 파인튜닝하는 Jupyter 노트북(finbert_training.ipynb)입니다. 파괴적 망각(catastrophic forgetting)을 완화하기 위한 discriminate 및 gradual_unfreeze 옵션이 포함되어 있습니다. - 데이터 준비 –
scripts/datasets.py는 Financial PhraseBank의Sentences_50Agree.txt파일을data/sentiment_data/아래의train.csv,validation.csv,test.csv로 변환합니다. - 예측 스크립트 –
scripts/predict.py는 일반 텍스트 파일을 읽고 모델을 실행한 뒤, 문장별 소프트맥스 확률, 예측된 라벨, 감성 점수(prob(pos) - prob(neg))가 포함된 CSV를 작성합니다.
시작하기
# 1. environment.yml에 정의된 Conda 환경 생성
conda env create -f environment.yml
conda activate finbert
# 2. (선택 사항) Hugging Face에서 사전 학습된 가중치 다운로드
# 스크립트 실행 시 자동으로 가져옵니다.
# 3. 빠른 예측 실행
python scripts/predict.py --text_path test.txt --output_dir output/
자신만의 버전을 학습하려면 세 개의 CSV 파일을 data/sentiment_data/에 배치하고 finbert_training.ipynb 노트북을 실행하세요. 필요에 따라 Config 매개변수(에폭, 학습률, 배치 크기 등)를 조정하십시오.
라이선스 – 이 저장소의 코드는 Apache-2.0 하에 배포됩니다(MIH AI B.V. 라이선스). 이 라이선스는 사전 학습된 모델 가중치(Hugging Face 호스팅)나 Financial PhraseBank 데이터셋에는 적용되지 않으며, 사용자는 해당 자산에 대한 별도의 약관을 준수해야 합니다.
문의 – 질문이 있으시면 Dogu Araci(dogu.araci@prosus.com) 또는 Zulkuf Genc(zulkuf.genc@prosus.com)에게 연락하십시오.
FinBERT는 Prosus AI 팀의 인턴 연구 프로젝트이며, 공식 Prosus 제품이 아닙니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트