What algorithm to use for a specific 'Named Entity Recognition'/'Information extraction' problem
Assuming your financial documents have a consistent structure and format and despite the algorithm kind of becoming "unfashionable" as of late due to the prevalence of deep learning, I would suggest that you try using Conditional Random Fields (CRF). 

CRFs offer very competative performance in this space and are often used for named entity recognition, part of speech tagging and variants thereof.

Another great thing about CRFs is that they takes into account the position of the current 'field' in a document and also the preceeding and succeeding fields in order to calculate what the current class should be so you don't have to spend too much time engineering structural features into your model. 

I have had a great deal of success with the library  crfsuite in particular which is written in C but had a python wrapper.