Natural Language Processing Explained