I am a programmer and I am interested in Natural Language Processing. I studied it a bit in college, but it was years ago and anyway it wasn't enough for a good knowledge of the field. I'm particularly interested in Markov chains and n-grams, mostly to build something that would let me analyzes and collect data from texts of various kind.

I am aware of software libraries that do exactly this, but I wish to really understand the theory and the basics. So what I am really asking is for a book (or more than one) to study natural language processing. I know that there is a lot of probability theory involved, so I would also like to study probability from scratch, if you have something to suggest.

  • 1
    I would start with taking an online class on theoretical NLP. I guess, all online universities have such, for example, Coursera. Just google for "study nlp online". Schools usually provide with book references, both electronic and printed. Commented Apr 16, 2014 at 18:35

1 Answer 1


"Foundations of Statistical Natural Language Processing" by Christopher D. Manning and Hinrich Schütze is a great book to start with. It contains an introduction to both basic linguistic concepts and probability theory. The chapters about Markov chains and n-gram models really helped me to understand the subject.

Another classic textbook is "Speech and Language Processing" by Daniel Jurafsky and James H. Martin.

There are also two courses on Coursera: one by Daniel Jurafsky and Christopher Manning and one by Michael Collins. All three instructors are very well-known specialists in the field and both courses have great syllabus and cover topics you refer to.

Not the answer you're looking for? Browse other questions tagged or ask your own question.