1 013231 2013-01-30 03:58:43 +08:00 ![]() 不知你的用群模有多大. 在不太大的情下, 可以把所有系人信息入存, 每客的系人都是一集合. 想找一客"可能认识的朋友", 就用他的系人集合和其他每人的系人集合做算, 如果某集中的目足大, 就人是"可能认识的朋友". |
![]() | 2 yyai3 2013-01-30 09:27:04 +08:00 算法:MinHash--http://en.wikipedia.org/wiki/MinHash 论文:Google News Personalization: Scalable Online Collaborative Filtering |
![]() | 3 sqjs86 2013-01-30 09:41:59 +08:00 同意 1L, 可以看一下 redis |
![]() | 4 HowardMei 2013-01-30 10:20:07 +08:00 ![]() 可能Bloom Filter更合适,有现成的库: https://github.com/jaybaird/python-bloomfilter 可以把Hash改得更简单点提高性能: https://github.com/jaybaird/python-bloomfilter/blob/master/pybloom/pybloom.py 可用 http://code.google.com/p/pyfasthash/ 里的MurmurHash替代hashlib |
![]() | 7 humiaozuzu OP |
![]() | 8 stackpop 2013-01-30 13:27:34 +08:00 bloom filter可以 |
![]() | 9 HowardMei 2013-01-30 14:22:50 +08:00 @humiaozuzu http://zacharyvoase.com/2012/08/31/m2mbloom/ 这个和你的需求几乎一模一样,实现方法写得很详细(for Postgres)。性能提高了近30倍,不错了,你可以试试看和 @013231 的方法比,哪个更适合。 |