In this article, we’ll have a look at how you can implement a content-based recommendation system using Python and the scikit-learn library. But before diving straight into this, it’s important to have some prerequisite knowledge of the different ways by which recommendation systems can recommend an item to users. Content-based: A content-based recommendation finds similar items to a given item by examining the item’s properties, such as its title or description, category, or dependencies on other items (for example, electronic toys require batteries). These kinds of recommendations do not use any information about ratings, purchases, or any other user information. For example, let’s suppose we know that a user is viewing a particular camera or a particular blues musician. We can generate recommendations by examining the item’s (camera’s or musician’s) properties and the user’s stated interests. For example, a database could help generate recommendations by selecting lenses compatible with the camera or musicians in the same genre or a genre that the user has selected in their profile. In a similar context, items can be found by examining the items’ descriptions and finding close matches with the item the user is viewing. These are all a kind of content-based recommendation. Collaborative: Collaborative filtering uses feedback from other users to help determine the recommendation for this user. Other users may contribute ratings, “likes,” purchases, views, and so on. Sometimes, websites, such as Amazon, will include a phrase like, “Customers who bought this item also bought…” Such a phrase is a clear indication of collaborative filtering. In practice, collaborative filtering is a means for predicting how much the user in question will like each item, and then filtering down to the few items with the highest-scoring predictions.