# References **Repository Path**: tianyi_liu/References ## Basic Information - **Project Name**: References - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-01-07 - **Last Updated**: 2021-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NLP Reference *NLP reference* is a collection for Natural Language Processing(NLP) learning, which includs following topics: + Programming + Artificial Inteiilgence + Mathematical + Software Engineer + Algorithm + Machine Leanring + Automata and Complier The reason why dose this exist is that I have worked in NLP domain for several years. The Natrual Langulage Processing is **really** complicated, maybe is 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. + Correctness: A programming must be right, cannot be `maybe` right or `some` right, the quality ensuring need automatical testing, need test cases, need good documentation. + Explicity: A programming must be explicity, some programming works but it's hard to understand. Explicity and concise are often tradeoff. However, the target for a **serious** programmer should focue `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. + Efficient: A programming must be efficient, the bottleneck of a programming usually is because of a 'stupid' implementation usually. + Scalable: A programming must be modified or composited easily. 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* # Index of Books I collected in this repository |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](https://www.amazon.com/exec/obidos/ASIN/0735619670)| |[Writing Solid Code](https://www.amazon.com/dp/1570740550)| |[Building Secure Software](https://www.amazon.com/exec/obidos/ASIN/020172152X)| |[Go To](https://www.amazon.com/exec/obidos/ASIN/0465042252)| |NLP| |---| |Natural Language Processing| |Information Retrieval|| |Math Concepts| |---| |[How to Lie with Statistics](https://www.amazon.com/exec/obidos/ASIN/0393310728)| |[Chances Are . . .: Adventures in Probability](https://www.amazon.com/exec/obidos/ASIN/0670034878)| |[Innumeracy: Mathematical Illiteracy and Its Consequences ](https://www.amazon.com/exec/obidos/ASIN/0679726012)| |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](./data-mining/DataMining.pdf)| |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](https://www.amazon.com/exec/obidos/ASIN/0321657292)| |[The Elements of Style](https://www.amazon.com/exec/obidos/ASIN/020530902X)| # Python etudes I got the idea from the Peter Norvig [pytudes](https://github.com/norvig/pytudes), who is a very influential to me when I was learning to programming. # No Profit These books are no profit for everyone. If you have license issue, please contact me.