Apache Lucene is an open source popular library for Information Retrieval tasks. The library is implemented in Java and has ports or API bindings in multiple languages such as Python, Ruby, C#, etc. If you need full text search functionality in your application you can add it with Lucene. Text search is the most common application of the library but not the only one. For example, you can compute text similarity with Lucene using different measures provided with the library or add custom similarity algorithms.
There has been a few years since I’ve encountered Stanford course CS 229 Machine Learning (ML) from Professor Andrew NG and it still remains one of my favorite courses. Last year I watched some of his lectures again to refresh my memories on particular topics. Even though I was familiar with applied machine learning I found the course useful. Today I will try to explain why I still think it may be the best free online ML course.