My goal is to write a program capable of extracting tone, personality, and intent from human language inquiries (e.g. I type: How are you doing today? And the AI system responds with something like: Fine. How are you?)
I'm aware this is a non-trivial problem, so what deep-learning topics should I start becoming familiar with and what Python modules are most useful? I've already started looking at NLTK. Thanks.
The canonical AI book would be Stuart Russell and Peter Norvig's Artifical Intelligence and the accompanying course: https://www.udacity.com/course/intro-to-artificial-intelligence--cs271
Machine Learning (ML)
A good starting point for theoretical for machine learning (ML) which will be useful for more popular Natural Language Processing (NLP) task would be Andrew Ng's machine learning course.
And a good practical application of machine learning and the inner workings would be University of Washington's ML course with Emily Fox and Carlos Guestrin
Natural Language Processing (NLP)
As for NLP, a popular introduction book would be Jurafsky and Martin's Speech and Language Processing
As for a more statistical perspective to NLP, Manning and Schutze's Statistical NLP book/course
For a more practical approach to NLP, the NLTK book is a good starting point:
For a good overview of NLP technologies across the years, the ACL anthology keeps an archive of most of the notable NLP papers published.
And another good resource would be to go through conference proceedings of NLP/ML/AI, Joel Tetreaul keeps an updated list of related conferences and their submission dates: http://www.cs.rochester.edu/~tetreaul/conferences.html
Other resources
There're tonnes of AI, ML, NLP resources online and more recently neural nets. A good forum that you can ask anything (unlike Stackoverflow that might be restrictive) is https://www.reddit.com/r/MachineLearning/ and possibly a more appropriate stackexchange would be datascience.stackexchange.com
Awesome Lists
You can easily find resources for AI/ML/NLP easily by Googling for awesome
lists on github, e.g.:
- https://www.google.com/search?q=awesome+github+machine+learning
- https://www.google.com/search?q=awesome+github+natural+language+processing
- https://www.google.com/search?q=awesome+github+neural+net
- https://www.google.com/search?q=awesome+github+artificial+intelligence
- https://www.google.com/search?q=awesome+github+deep+learning
excellent suggestions by @alvas
for deep learning, take a look at Google's Word2Vec algorithm. It is especially suited for NLP problems. Here is an introductory use case
http://multithreaded.stitchfix.com/blog/2015/03/11/word-is-worth-a-thousand-vectors/
Google also recently released a python library called Tensorflow
for Machine Learning and Word2Vec is a part of that too
https://www.tensorflow.org/
lastly, the best place to get your hands dirty is Kaggle competetions. Try reading through the introductory use cases to get an idea of what NLP and Machine Learning can do
https://www.kaggle.com/competitions
most of the competitions might seem quite challenging but Kaggle has a very nice set of tutorial/introductory competitions that can get you started. Once you know how to set up for the basic NLP/ML tasks, then you can wokr on the use case of your liking.
happy learning :)
happy learning