Computational linguistics is the study of the computational processing, understanding, and generation of human languages. It is often regarded as a subfield of artificial intelligence, and includes work referred to as natural language processing (NLP). Research encompasses the scientific study of the computational properties of language and how human communication can be formalized as a computational system. Techniques from computational linguistics are used in NLP applications such as machine translation, speech recognition, information retrieval, intelligent web searching, intelligent spell checking, and human-computer communication.