What is Natural Language Processing and its Use Cases?