Understanding the human language by machines is one of the important topics in computer science. There is a large range of tools and technologies for natural language processing that are used by many users in daily life: from the simplest cases such as spell checkers and grammar checkers to more complicated systems such as speech recognition, machine translation, question answering, email categorization, hand writing recognition, and search engines.
Processing natural language is divided into two main parts:
- end to end applications that are frequently used by many people,
- intermediate techniques that are the core part of different applications.
In this lecture, the main techniques and applications of natural language processing will be introduced. In addition we briefly describe language modeling and machine learning concepts that are required to deal with language processing techniques and applications.