It is a simple recommendation system where user does not know which items to pick from a large set of items. Each item has keywords/tags based on which items can be clustered. Goal is to show user top k recommendations according to interests he has chosen. Here user 'interest' can be list of strings. Are there any standard algorithms for this 1 to top k recommendation problem? It will be great if there are any free/open source libraries available just in case to avoid reinventing the wheel ;)..