Mastering NLP: Reading List I've searched the web and there are hundreds of recommendations on what to read. The time moves on and new better quality techniques are published, so I would like to know what is relevant in 2018?

My background is 4 years of BSc in Maths &amp; Stats (top uni) + 1 year of role in Data Science (building predictive models, no NLP).

If possible, please separate it into sections/readings, e.g.


Background (History, e.g. philosophical)
Theoretical (Mathematics)
Practical (Using Tensorflow and other NLP libraries to build algorithms)




I have a few side projects that I would like to do:

Build an algorithm which answers multiple choice questions

E.g. given a question:

Which is not a fruit?
1) Apple 2) Cucumber

I would like NLP to understand negation, and find that the topic of the question is fruit. Then I'd probably incorporate Google Search API or something.



Categorise a list of 'keyword' searches into categories.

Let's take google which probably has something like this, it categorises every keyword and gives recommendations. Given a list of 10,000 searches, I would like to categorise them into N categories, based on similarity (not just how similar the words are, but including synonyms).
I would suggest instead of trying to get many sources, get one source that goes through concepts first (fairly robustly), then seek out sources to refine or deepen your knowledge. One source comes from Stanford's NLP group, and is Introduction to Information Retrieval.  The only thing I don't like about this books is that it tends to orient documents as columns (where data science has more or less agreed that they are rows), but that's a pretty trivial concern (as long as you can take a matrix transpose).  Aside from that, this book has excellent explanations, and the proper depth and breadth to be considered an exhaustive base for NLP.