reference is a collection for Natural Language Processing(NLP) learning, which includs following topics:
The reason why dose this exist is that I have worked in NLP domain for several years. The Natrual Langulage Processing is really complicated, may be the hardest domain in Artificial Intelligence. One NLP issue may call for several technologies to solve it. Besides the theoretical knowledge, the NLP also need a string good programming ability to solve related problems. A good programming means solving a problem using pragmatic way. Personally, the pragmatic
way consists several important features for a programming.
maybe
right or some
right, the quality ensuring need automatical testing, need test cases, need good documentation.explicaity
and concise
. After practicing and trying over and over again, the explicity and concise would be the same thing. Because your programming is real
concise, not simply short
, your programming becomes explicity
. And because your programming is explicity, and do not make other persons confused, your programming becomes concise
eventually.And because the NLP is actually for Information Processing and some Reasoning Processing. A man who wants to be good at this domain, need some more knowledge out of purely 'classifical algorithm', such as sorting, search, graph algorthm, hash, greedy algorithm, dynamic programming, data structure. These techologies are very important for ** every ** computer programming. But besides these algorithm. One must be familiar with mathematics, automata and complier, machine learning and artificial intelligence programming technologies, and maybe some philosophy reasoning.
Machine Leanring is a subset of Artificial Intelligence. But in recent years, there are so many people regard machine learning
as merely AI
, or treat 'AI' as 'Machine Learning' equally. It's wrong totally. In my real experience, the machine learning
just could solve 2/5 problems for AI
problems.
Because the complexity of Artificial Intelligence related domain. I make a public libriary which consists the book I have read and think it valuable. These books, I want to share with you, if you want to learn more about algorithms, especially in natural language processing
Programming and Software Engineer |
---|
Hackers and Painters |
Programming-Pearls](./programming/Programming-Pearls.pdf |
Structure-and-Interpretation-of-Computer-Programmings |
The Practice of Programming |
The-Pragmatic-Programmer |
Hints-for-Computer-System-Design |
https://www.cs.fsu.edu/~engelen/courses/COP4610/hoare.pdf |
http://pu.inf.uni-tuebingen.de/users/klaeren/epigrams.html |
http://worrydream.com/refs/Brooks-NoSilverBullet.pdf |
Epigrams on Programming |
Code Complete |
Writing Solid Code |
Building Secure Software |
Go To |
NLP |
---|
Natural Language Processing |
Information Retrieval |
Math Concepts |
---|
How to Lie with Statistics |
Chances Are . . .: Adventures in Probability |
Innumeracy: Mathematical Illiteracy and Its Consequences |
Information Retrieve and Data Mining |
---|
[A Practical Introducation to Informaiton Retrieval and Text Mining](./information-retrieve/ChengXiang Zhai, Sean Massung-Text Data Management and Analysis_ A Practical Introduction to Information Retrieval and Text Mining-Morgan & Claypool (2016).pdf) |
[Introduction to Information Retrieval](./information-retrieve/Christopher D Manning_ Prabhakar Raghavan_ Hinrich Schutze-Introduction to information retrieval-Cambridge University Press (2008).pdf) |
Data Mining |
Computer Science Algorithms, Concepts |
---|
Introduction to Algorithm |
Algorithms-The Spirit of Computing.pdf |
Programming Pearls |
Artificial Intelligence and Machine Learning |
Automata and Complier |
Other References |
---|
Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems |
The Elements of Style |
I got the idea from the Peter Norvig pytudes, who is a very influential to me when I was learning to programming.
These books are no profit for everyone. If you have license issue, please contact me.