Поиск единомышленников
Jun. 13th, 2010 07:38 pmГораздо лучше, чем (не)указанные в профиле интересы, об интересах ЖЖ-юзера говорит его френдлента. По крайней мере для таких, как я, которые добавляют в друзья в основном тех, кого им интересно читать. А значит, для почти всякого ЖЖ-юзера Х можно автоматически найти его единомышленников, людей со схожими интересами: это юзеры, чья френдлента заметно пересекается с лентой Х (можно отсортировать по числу людей в пересечении). Эти люди могут не быть ни френдами Х, ни числить Х в своих френдах, ни френдами френдов Х, но тем не менее найти их очень просто.
Написал для этого дела программку. Исходники, на выбор, Ruby или Haskell. На Руби получилось покороче. В процессе работы программа выводит прогресс на консоль, кэширует ответы сервера в текстовых файлах friends_*.txt и сохраняет результат в файл cothinkers.txt, куда в отсортированном по релевантности виде записывает ники единомышленников (кроме тех, кто уже является френдом) и количество общих френдов (в список попадают те, у кого оно больше 1).
Написал для этого дела программку. Исходники, на выбор, Ruby или Haskell. На Руби получилось покороче. В процессе работы программа выводит прогресс на консоль, кэширует ответы сервера в текстовых файлах friends_*.txt и сохраняет результат в файл cothinkers.txt, куда в отсортированном по релевантности виде записывает ники единомышленников (кроме тех, кто уже является френдом) и количество общих френдов (в список попадают те, у кого оно больше 1).
no subject
Date: 2010-06-13 02:37 pm (UTC)И эту функцию можно же переписать так же, как и в Руби :)
get_friends user marker = map (drop 2) . filter ((== marker) . take 1) . lines <$> get_friengs_resp user userЭто я скорее для съязвившего выше по треду.
no subject
Date: 2010-06-13 03:04 pm (UTC)no subject
Date: 2010-06-13 05:00 pm (UTC)no subject
Date: 2010-06-13 03:43 pm (UTC)По числу строк решения практически равны, но по размеру раза в полтора отличаются, Руби тут все равно несколько лаконичней. В нем не нужны церемониальные танцы вокруг IO и чистоты.