Определение близости друзей в Last.fm (проект)
Ментор | Красавина Алина |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Проект можно развивать на летней практике | |
Что это за проект?
В итоге должна получиться консольная утилита, которая принимает на вход имена двух пользователей (нужно знать заранее, что они есть в базе данных). Отдает процент совместимости музыкальных вкусов этих двух пользователей. Дает возможность обсудить с кем-то любимую музыку и найти новую :)
Чему вы научитесь?
- Извлекать данные из API сервиса (XML RPC)
- Понимать, что такое мера близости
- При выборе соответствующих дополнительных опций - кластеризации, с использованием готовых инструментов
Какие начальные требования?
- Быть знакомым с API Last.fm
- Быть знакомым со средствами, позволяющими работать с ними
- Владение любым популярным языком программирования
Какие будут использоваться технологии?
- Python (или любой другой популярный язык)
- XML или JSON RPC
Темы вводных занятий
1) Lastfm API, Получение данных. XML, JSON и Python. 2) Меры близости и данные с Lastfm. Кластеризация, что это и зачем.
Направления развития
- Определение близости не только по исполнителям, но и по прослушанным жанрам (это то, чего не делает Last.fm, нужно для "хор")
- Определение веса жанра по количеству прослушиваний, участие веса в метрике
- Определение родственности жанров на основе собранных данных (можно использовать иные источники, например, Википедию), использование родственности в метрике
- Кластеризация пользователей
- Визуализация полученных результатов
Критерии оценки
4-5: скрипт, который забирает данные, складывает их в базу или иное место (файл да диске, например), определение меры близости только по прослушанным жанрам или только по прослушанным исполнителям
6-7: то же, что и для "4-5", + участие и множества исполнителей, и множества жанров в определении близости
8-10: то же, что и для "6-7", + дополнительная опция из оставшихся, кроме визуализации