Victoria I want to understand what spaCy is in natural language processing. How does it compare with NLTK in terms of performance, features, and use cases? Can someone also explain when to choose one library over the other?