Spacy vs. Hugging face
I have lots of experience with both, and I use both together for different use cases. SpaCy fills the need of predictable/explainable pattern matching and NER - and is very fast and reasonably accurate on a CPU. Huggingface fills the need for task based prediction when you have a GPU.
Spacy seems to be higher level. Huggingface needs downstream training via Pytorch specific to a use case, as far as I can tell. Here's some jargon I don't understand: