ahmedrachid's picture
Update README.md
8ac17ff
|
raw
history blame
2.38 kB
metadata
language: en
tags:
  - financial-sentiment-analysis
  - sentiment-analysis
datasets:
  - financial_phrasebank
widget:
  - text: >-
      Operating profit rose to EUR 13.1 mn from EUR 8.7 mn in the corresponding
      period in 2007 representing 7.7 % of net sales.
  - text: >-
      Bids or offers include at least 1,000 shares and the value of the shares
      must correspond to at least EUR 4,000.
  - text: >-
      Raute reported a loss per share of EUR 0.86 for the first half of 2009 ,
      against EPS of EUR 0.74 in the corresponding period of 2008.

FinancialBERT is a BERT model pre-trained on a large corpora of financial texts. The purpose is to enhance financial NLP research and practice in financial domain, we hope financial practitioners and researchers can benefit from our model without the necessity of the significant computational resources required to train the model.

We fine-tuned our model on Sentiment Analysis task using FinancialPhraseBank dataset, experiments show that our model outperforms the general BERT and other financial domain-specific models.

How to use

Our model can be used thanks to Transformers pipeline for sentiment analysis.

>>> from transformers import BertTokenizer, BertForSequenceClassification
>>> from transformers import pipeline

>>> model = BertForSequenceClassification.from_pretrained("ahmedrachid/FinancialBERT-Sentiment-Analysis",num_labels=3)
>>> tokenizer = BertTokenizer.from_pretrained("ahmedrachid/FinancialBERT-Sentiment-Analysis")

>>> nlp = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)

>>> sentences = ["Operating profit rose to EUR 13.1 mn from EUR 8.7 mn in the corresponding period in 2007 representing 7.7 % of net sales.",  
             "Bids or offers include at least 1,000 shares and the value of the shares must correspond to at least EUR 4,000.", 
             "Raute reported a loss per share of EUR 0.86 for the first half of 2009 , against EPS of EUR 0.74 in the corresponding period of 2008.", 
             ]
>>> results = nlp(sentences)
>>> print(results)

[{'label': 'positive', 'score': 0.9998133778572083},
 {'label': 'neutral', 'score': 0.9997822642326355},
 {'label': 'negative', 'score': 0.9877365231513977}]

#Training data FinancialBERT model was fine-tuned on Financial PhraseBank, a dataset consisting of 4840 Financial News categorised by sentiment (negative, neutral, positive).