Aspects of Natural Language Processing