Если вы не занимаетесь написанием вещей, где критичен performance (тогда ваш выбор C++, D), то я бы рекомендовал как минимум знать один язык со статической типизацией (отличной заменой Java является Scala), один функциональный язык (та же Scala, Haskell, Erlang на выбор), один язык с динамической типизацией (Groovy, если хотите быстро адаптироваться после Java или Ruby/Python на выбор). Мировоззрение меняется это факт.
Идея очень похожа на так называемый Collaborative Filtering, а даже скорее на Active Filtering, когда учитывается некоторые активные показатели, такие как захабренность.
Ну а дальше на эту инфу уже можно натравить любой из методов машинного обучения aka Data Mining, Байес по опыту сливает тому же Персептрону и SVMу. Проблемы и это очень серьёзная задача с формированием данных для алгоритмов машинного обучения. Этим много где занимаются и на Amazon.com и в Netflix (тут вообще обещают миллион долларов тому кто их алгоритм на 10% по-моему обставит), в Hewlett-Packard, начальник их Data Mining отдела рассказывал на презентации в МГУ, и много наверно где ещё. Проблема очень актуальна и пока нормальных статей по этой теме лично мне не попадалось!!
Ну а после того как готова концепция, вопрос только в технических деталях :) Удачи!
Ну а дальше на эту инфу уже можно натравить любой из методов машинного обучения aka Data Mining, Байес по опыту сливает тому же Персептрону и SVMу. Проблемы и это очень серьёзная задача с формированием данных для алгоритмов машинного обучения. Этим много где занимаются и на Amazon.com и в Netflix (тут вообще обещают миллион долларов тому кто их алгоритм на 10% по-моему обставит), в Hewlett-Packard, начальник их Data Mining отдела рассказывал на презентации в МГУ, и много наверно где ещё. Проблема очень актуальна и пока нормальных статей по этой теме лично мне не попадалось!!
Ну а после того как готова концепция, вопрос только в технических деталях :) Удачи!
Вот ещё ссылочка в помощь: http://www.oreilly.com/news/graphics/pro…