Revision: 9610
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 14, 2008 01:18 by tamuratetsuya
Initial Code
#models.py
class User(db.Model):
name=db.StringProperty(required=True)
class Product(db.Model):
product=db.StringProperty(required=True)
class UserRate(db.Model):
ref_user=db.ReferenceProperty(User,collection_name='users')
ref_product=db.ReferenceProperty(Product,collection_name='products')
rating=db.IntegerProperty(required=True)
#views.py
def makeMap(item1,item2):
item_list =[item1,item2]
products = db.GqlQuery("SELECT * FROM Product WHERE product IN :list",list = item_list)
map_product={}
for product in products:
map_user={}
# print product.product
key=product.key()
# print key
userrates=db.GqlQuery("SELECT * FROM UserRate WHERE ref_product =:1",key)
for u in userrates:
# print u.ref_user.name
map_user[u.ref_user.name]=u.rating
# print map_user[u.ref_user.name]
map_product[product.product]=map_user
# print map_product
# print '<br><br>'
return map_product
def sim_pearson(item1,item2):
si={}
prefs=makeMap(item1,item2)
# print "prefs="
# print prefs
for person in prefs[item1]:
if person in prefs[item2]: si[person]=1
n=len(si)
# print "<br>n="
# print n
if n==0: return 0
sum1=float(sum([prefs[item1][it] for it in si]))
sum2=float(sum([prefs[item2][it] for it in si]))
# print "<br>sum1="
# print sum1
# print "<br>sum2="
# print sum2
sum1Sq=float(sum([pow(prefs[item1][it],2) for it in si]))
sum2Sq=float(sum([pow(prefs[item2][it],2) for it in si]))
# print "<br>sum1Sq="
# print sum1Sq
# print "<br>sum2Sq="
# print sum2Sq
pSum=float(sum([prefs[item1][it]*prefs[item2][it] for it in si]))
# print "<br>pSum ="
# print pSum
num=pSum-(sum1*sum2/n)
# print "<br>num ="
# print num
den=sqrt((sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n))
# print (sum1Sq-pow(sum1,2)/n)
# print (sum2Sq-pow(sum2,2)/n)
# print "<br>den="
# print den
if den == 0: return 0
r=num/den
# print "<br>r="
# print r
return r
Initial URL
Initial Description
Initial Title
python db Django å”調フィルタリング GAE
Initial Tags
python, django
Initial Language
Python