I tried your algorithm at
https://bitmood.net/try, the sentiment worked well but your entity tagging seems a little off. When enabling Entity-Sentiment Analysis it didn't pick up the entity "Bitcoin', for example.
I've used Stanford Core NLP in the past for entity tagging, it's a pre-trained model built by Stanford research teams. Perhaps you'll find it useful as well:
https://stanfordnlp.github.io/CoreNLP/