An Introduction to Natural Language Processing NLP