So I decided to build a mobile web application that would serve as a front-end to these public domain sites and help guide people to: new books, top books that others enjoyed reading, and recommendations for other books based on your reading history and ratings. You can try the application at http://www.impactsoftwarelabs.com/book/new.php and please provide comments about ways that it could be improved.
It turns out that a book application is a great subject area for recommendation systems because:
- The quantity of items is large enough (about 40,000 books) to be non-trivial, but not too large to be difficult to work with.
- Each book has a variety of primary attributes that can be used by the recommendation algorithm including: title, book category, subject, author, date written, and language.
- Availability of download information over several years that can help rate a book's popularity.
- Information about books, categories, downloads, and recommendations are stored in a MySQL database.
- User interface built using HTML5 and JQuery Mobile Javascript libraries.
- Initially I built the recommendation components using custom code, but later replaced it using the MyMediaLite Recommender System Library. MyMediaLite is an open-source system developed at the University of Hildesheim in Germany. It contains a number of different recommendation methods that can be easily applied to many different problem domains.
- XML parsing of book catalog and download information performed by custom-written Java parsers.
I think the finished product turned out much nicer that I had hoped and the recommendations generated by the engine seem to be very relevant. Please try it and let me know what you think.
Great work!
ReplyDeletehave you thought to do a tutorial? I need to do something similar.