Sentiment analysis does not handle neturals I'm writing some financial tools,  I've found highly performant models for question and answering but when it comes to sentiment analysis I haven't found anything that good.  I'm trying to use huggingface:
from transformers import pipeline
classifier = pipeline('sentiment-analysis')
print(classifier(&quot;i'm good&quot;))
print(classifier(&quot;i'm bad&quot;)) 
print(classifier(&quot;i'm neutral&quot;))
print(classifier(&quot;i'm okay&quot;)) 
print(classifier(&quot;i'm indifferent&quot;)) 

Which returns results

[{'label': 'POSITIVE', 'score': 0.999841034412384}]


[{'label': 'NEGATIVE', 'score': 0.9997877478599548}]


[{'label': 'NEGATIVE', 'score': 0.999396026134491}]


[{'label': 'POSITIVE', 'score': 0.9998164772987366}]


[{'label': 'NEGATIVE', 'score': 0.9997762441635132}]

The scores for all of the neutral words come up very high in a positive or negative direction,  I would of figured the model would put the score lower.
I've looked at some of the more fine-tuned models yet they seem to perform the same.
I would assume there would be some pretrained models which could handle these use cases.  If not, How can I find neutral sentiments?
Yes, there is. You can try Spacy. Here you go.
import spacy 
from spacytextblob.spacytextblob import SpacyTextBlob

nlp = spacy.load('en_core_web_sm') 
spacy_text_blob = SpacyTextBlob() 
nlp.add_pipe(spacy_text_blob)

text = &quot;i'm good&quot; 
doc = nlp(text) 
print(doc._.sentiment.polarity) # 0.7

text = &quot;i'm bad&quot;  
doc = nlp(text) 
print(doc._.sentiment.polarity) # -0.6999999999999998

text = &quot;i'm neutral&quot; 
doc = nlp(text) 
print(doc._.sentiment.polarity) # 0.0

text = &quot;i'm okay&quot;  
doc = nlp(text) 
print(doc._.sentiment.polarity) # 0.5

text = &quot;i'm indifferent&quot;  
doc = nlp(text) 
print(doc._.sentiment.polarity) # 0.0