"Natural Language Processing" covers all the aspects of the area of linguistic analysis and the computational systems that have been developed to perform the language analysis. This book is primarily meant for post graduate and undergraduate technical courses. This book broadly deals with: the basic area of natural language processing, its significance and applications, its history, role of knowledge in language processing, practical language processing systems; various techniques of performing the syntactic analysis; phonological analysis, morphological analysis, word level analysis and other related topics; the concept of ambiguity and techniques to resolve the ambiguities in language processing; and, techniques used for understanding the meaning of the sentence, the grammatical formalisms that are developed to accommodate the word meaning and collective sentence meaning. It also deals with elementary and advanced parsing techniques, the augmented and feature grammars, the advanced grammar formalisms used for capturing meaning of the sentence; use of knowledge in language processing, the knowledge representation techniques, first order predicate calculus and different inference mechanisms that are used to draw conclusions from the sentences; concept of anaphora, pragmatic and discourse understanding theories; and, various issues of Natural Language generation. It gives sufficient number of elaborate examples and gives much emphasis on the related computational systems related to different aspects of Natural Language Processing. This book will be very useful for the B.Tech. and M.Tech students.