You are browsing as Guest
Click here for list of discussions
Click here to login

Discussion: BookSuggestionSystem
You have read-only access
You may need to scroll to the right ...

Click here to view in strict time order
Click here to view in neighbourhood mode.

%3 N_20210301164414a_ColinWright    By ColinWright 2021/03/01 @ 16:44:14a -------------------------------- How can we cull and/or filter a huge, amorphous blog of book recommendations?        (select only this node)     N_20210301164704a_ColinWright    By ColinWright 2021/03/01 @ 16:47:04a -------------------------------- People often ask for recommendations for reading material, and the problem is that there are lots and lots of books, and there are different reasons for wanting to read.        (select only this node)     N_20210301164414a_ColinWright->N_20210301164704a_ColinWright N_20210301164704d_ColinWright    By ColinWright 2021/03/01 @ 16:47:04d -------------------------------- Some books are all about the historical context and development        (select only this node)     N_20210301164704a_ColinWright->N_20210301164704d_ColinWright N_20210301164704e_ColinWright    By ColinWright 2021/03/01 @ 16:47:04e -------------------------------- Some books are accessible textbooks        (select only this node)     N_20210301164704a_ColinWright->N_20210301164704e_ColinWright N_20210301164704f_ColinWright    By ColinWright 2021/03/01 @ 16:47:04f -------------------------------- Some are hardcore reference works.        (select only this node)     N_20210301164704a_ColinWright->N_20210301164704f_ColinWright N_20210301164704b_ColinWright    By ColinWright 2021/03/01 @ 16:47:04b -------------------------------- Some books are just a light and entertaining read with a maths theme.        (select only this node)     N_20210301164704a_ColinWright->N_20210301164704b_ColinWright N_20210301164704c_ColinWright    By ColinWright 2021/03/01 @ 16:47:04c -------------------------------- Some books are more serious and try to give a genuine flavour of the subject        (select only this node)     N_20210301164704a_ColinWright->N_20210301164704c_ColinWright N_20210301164919a_ColinWright    By ColinWright 2021/03/01 @ 16:49:19a -------------------------------- So how can we help someone choose?        (select only this node)     N_20210301164704b_ColinWright->N_20210301164919a_ColinWright N_20210301164704c_ColinWright->N_20210301164919a_ColinWright N_20210301164704d_ColinWright->N_20210301164919a_ColinWright N_20210301164704e_ColinWright->N_20210301164919a_ColinWright N_20210301164704f_ColinWright->N_20210301164919a_ColinWright N_20210301164919b_ColinWright    By ColinWright 2021/03/01 @ 16:49:19b -------------------------------- We need a filtering system, and there are a few candidates        (select only this node)     N_20210301164919a_ColinWright->N_20210301164919b_ColinWright N_20210301164919c_ColinWright    By ColinWright 2021/03/01 @ 16:49:19c -------------------------------- Let's talk about tags.        (select only this node)     N_20210301164919b_ColinWright->N_20210301164919c_ColinWright N_20210301164919d_ColinWright    By ColinWright 2021/03/01 @ 16:49:19d -------------------------------- Each book can have a collection of tags:        (select only this node)     N_20210301164919c_ColinWright->N_20210301164919d_ColinWright N_20210301164919e_ColinWright    By ColinWright 2021/03/01 @ 16:49:19e -------------------------------- ContainsExercises        (select only this node)     N_20210301164919d_ColinWright->N_20210301164919e_ColinWright N_20210301164919g_ColinWright    By ColinWright 2021/03/01 @ 16:49:19g -------------------------------- Reference        (select only this node)     N_20210301164919d_ColinWright->N_20210301164919g_ColinWright N_20210301164919f_ColinWright    By ColinWright 2021/03/01 @ 16:49:19f -------------------------------- LightRead        (select only this node)     N_20210301164919d_ColinWright->N_20210301164919f_ColinWright N_20210301164919h_ColinWright    By ColinWright 2021/03/01 @ 16:49:19h -------------------------------- Historical        (select only this node)     N_20210301164919d_ColinWright->N_20210301164919h_ColinWright N_20210301164919i_ColinWright    By ColinWright 2021/03/01 @ 16:49:19i -------------------------------- Biographical        (select only this node)     N_20210301164919d_ColinWright->N_20210301164919i_ColinWright N_20210301165045a_ColinWright    By ColinWright 2021/03/01 @ 16:50:45a -------------------------------- Then a person can filter on tags ... but which tags?        (select only this node)     N_20210301164919e_ColinWright->N_20210301165045a_ColinWright N_20210301164919f_ColinWright->N_20210301165045a_ColinWright N_20210301164919g_ColinWright->N_20210301165045a_ColinWright N_20210301164919h_ColinWright->N_20210301165045a_ColinWright N_20210301164919i_ColinWright->N_20210301165045a_ColinWright N_20210301165045b_ColinWright    By ColinWright 2021/03/01 @ 16:50:45b -------------------------------- How do we create the database of books and tags?        (select only this node)     N_20210301165045a_ColinWright->N_20210301165045b_ColinWright N_20210301165701a_ColinWright    By ColinWright 2021/03/01 @ 16:57:01a -------------------------------- We invite someone to the site and say: Have you read any of these?        (select only this node)     N_20210301165045b_ColinWright->N_20210301165701a_ColinWright N_20210301165324a_ColinWright    By ColinWright 2021/03/01 @ 16:53:24a -------------------------------- We can proceed as in the game "Guess the Animal"        (select only this node)     N_20210301165045b_ColinWright->N_20210301165324a_ColinWright N_20210301165324b_ColinWright    By ColinWright 2021/03/01 @ 16:53:24b -------------------------------- The reader is presented with a tag, and asked: Include, Exclude, or ignore?        (select only this node)     N_20210301165324a_ColinWright->N_20210301165324b_ColinWright N_20210301165324c_ColinWright    By ColinWright 2021/03/01 @ 16:53:24c -------------------------------- Based on their answer the list of candidate books is filtered (or the tag removed) and the next question asked.        (select only this node)     N_20210301165324b_ColinWright->N_20210301165324c_ColinWright N_20210301165324d_ColinWright    By ColinWright 2021/03/01 @ 16:53:24d -------------------------------- We choose the tag by asking: "Which of the remaining tags divides the books into two groups most evenly?        (select only this node)     N_20210301165324c_ColinWright->N_20210301165324d_ColinWright N_20210301165324e_ColinWright    By ColinWright 2021/03/01 @ 16:53:24e -------------------------------- The system thereby dynamically chooses the best question to ask. Tags that barely discriminate are ignored until the very end.        (select only this node)     N_20210301165324d_ColinWright->N_20210301165324e_ColinWright N_20210301170947a_ColinWright    By ColinWright 2021/03/01 @ 17:09:47a -------------------------------- So we are using the concepts in the implementation of the game of "Guess the Animal" to create the database of tags, and use it to help a potential reader find an appropriate selection of books from the selection.        (select only this node)     N_20210301165324e_ColinWright->N_20210301170947a_ColinWright N_20210301165701b_ColinWright    By ColinWright 2021/03/01 @ 16:57:01b -------------------------------- They can then select a book, and are presented with a few tags.        (select only this node)     N_20210301165701a_ColinWright->N_20210301165701b_ColinWright N_20210301165701c_ColinWright    By ColinWright 2021/03/01 @ 16:57:01c -------------------------------- For each tag they say Yes, No, or Hmm.        (select only this node)     N_20210301165701b_ColinWright->N_20210301165701c_ColinWright N_20210301172009a_ColinWright    By ColinWright 2021/03/01 @ 17:20:09a -------------------------------- If no tag applies then they can suggest a new one        (select only this node)     N_20210301165701c_ColinWright->N_20210301172009a_ColinWright N_20210301165701d_ColinWright    By ColinWright 2021/03/01 @ 16:57:01d -------------------------------- The database does not need to be densely populated, and doesn't need to identify single book recommendations ... it's very much a case of "Wabi Sabi" ... close enough is good enough, we tolerate the imperfections.        (select only this node)     N_20210301165701c_ColinWright->N_20210301165701d_ColinWright N_20210301165701d_ColinWright->N_20210301170947a_ColinWright N_20210301165745a_ColinWright    By ColinWright 2021/03/01 @ 16:57:45a -------------------------------- Let's think about the game "Guess the Animal"        (select only this node)     N_20210301170356a_ColinWright    By ColinWright 2021/03/01 @ 17:03:56a -------------------------------- A player thinks of an animal, and the computer tries to guess.        (select only this node)     N_20210301165745a_ColinWright->N_20210301170356a_ColinWright N_20210301170356b_ColinWright    By ColinWright 2021/03/01 @ 17:03:56b -------------------------------- It asks a series of Yes/No questions until it can make a guess.        (select only this node)     N_20210301170356a_ColinWright->N_20210301170356b_ColinWright N_20210301170356d_ColinWright    By ColinWright 2021/03/01 @ 17:03:56d -------------------------------- If the computer guesses wrongly then it asks for the animal, and a question to distinguish its guess from the correct answer.        (select only this node)     N_20210301170356b_ColinWright->N_20210301170356d_ColinWright N_20210301170356c_ColinWright    By ColinWright 2021/03/01 @ 17:03:56c -------------------------------- If the computer guesses correctly then it wins, and you can play again.        (select only this node)     N_20210301170356b_ColinWright->N_20210301170356c_ColinWright N_20210301170356c_ColinWright->N_20210301170356d_ColinWright N_20210301170356e_ColinWright    By ColinWright 2021/03/01 @ 17:03:56e -------------------------------- It then inserts the new animal and the question into its database.        (select only this node)     N_20210301170356d_ColinWright->N_20210301170356e_ColinWright N_20210301170356f_ColinWright    By ColinWright 2021/03/01 @ 17:03:56f -------------------------------- This has the problem that we can end up with a very lob-sided decision tree, so we generalise the process.        (select only this node)     N_20210301170356e_ColinWright->N_20210301170356f_ColinWright N_20210301170356g_ColinWright    By ColinWright 2021/03/01 @ 17:03:56g -------------------------------- After playing we can present two animals, widely spaced in the database, and ask for a question that will distinguish them. We insert the new information into the database.        (select only this node)     N_20210301170356f_ColinWright->N_20210301170356g_ColinWright N_20210301170356h_ColinWright    By ColinWright 2021/03/01 @ 17:03:56h -------------------------------- Now when we choose a question we might have several options, so we select a question divides the possible animals as evenly as possible.        (select only this node)     N_20210301170356g_ColinWright->N_20210301170356h_ColinWright N_20210301170356i_ColinWright    By ColinWright 2021/03/01 @ 17:03:56i -------------------------------- This becomes self-balancing, and potentially much more efficient.        (select only this node)     N_20210301170356h_ColinWright->N_20210301170356i_ColinWright N_20210301170356i_ColinWright->N_20210301170947a_ColinWright N_20210301170947b_ColinWright    By ColinWright 2021/03/01 @ 17:09:47b -------------------------------- Books can be added in pretty much exactly the same way.        (select only this node)     N_20210301170947a_ColinWright->N_20210301170947b_ColinWright N_20210301163000a_ColinWright    By ColinWright 2021/03/01 @ 16:30:00a -------------------------------- Start        (select only this node)     N_20210301163000a_ColinWright->N_20210301164414a_ColinWright N_20210301163000a_ColinWright->N_20210301165745a_ColinWright N_20210301172009b_ColinWright    By ColinWright 2021/03/01 @ 17:20:09b -------------------------------- Then a few books are presented and they are asked if the tag applies.        (select only this node)     N_20210301172009a_ColinWright->N_20210301172009b_ColinWright N_20210301172009b_ColinWright->N_20210301165701d_ColinWright