这几个 PYTHON 的函数的具体意义是什么啊? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ditel

这几个 PYTHON 的函数的具体意义是什么啊?

  •  
  •   ditel
    deatil May 17, 2014 4186 views
    This topic created in 4365 days ago, the information mentioned may be changed or developed.
    由于不是学PTTHON的,不知道这几个函数的具体意义?
    可以帮忙翻译下吗?最好是每句都说下。
    PS:自己只能看懂部分
    def User_Similarity(train):
    W=dict()
    for u in train.keys():
    for v in train.keys():
    if u == v:
    continue;
    W[u][v] = len(train[u],train[v])
    W[u][v] /= math.sqrt(len(train[u]) * len(train[v]) * 1.0)

    ----------------------------------
    #!/usr/bin/env python
    # coding=utf-8
    def UserSimilarity(train):
    #建立倒排表
    item_users = dict()
    for u,items in train.items():
    for i in item.keys():
    if i not in item_users:
    items_users[i] = set()
    item_users[i].add(u)
    #item_users即为物品到用户的倒排表
    #计算用户之间的相关度
    C = dict()#任意用户之间的相关度
    N = dict()#用户正反馈物品的数目
    for i ,users in item_users:
    for u in users:
    N[u] += 1
    for v in users:
    if u == v:
    continue:
    C[u][v] += 1
    #最后计算结果矩阵
    W = dict()
    for u ,related_users in C.items():
    for v,cuv in related_users:
    W[u][v] = cuv / math.sqrt(N[u]* N[v]*1.0)
    return W

    -----------------------------------

    def Recommend(user,train,W):
    rank = dict()
    interacted_items = train[user]
    for v , wuv in sort(W[u].items,key = itemgetter(1),reverse = True)[0:k]:
    for i ,rvi in train[v].items:
    if i in interacted_items:
    continue
    rank[i] += wuv * rvi
    return rank

    ---------------------
    20 replies    2014-05-21 12:12:41 +08:00
    lincanbin
        1
    lincanbin  
       May 17, 2014
    没缩进怎么看?
    ushuz
        2
    ushuz  
       May 17, 2014
    可以用gist在v2ex贴代码
    imlonghao
        3
    imlonghao  
       May 17, 2014
    Python没缩进你让我们看什么?
    cbsw
        4
    cbsw  
       May 17, 2014
    LZ, 缩进是 Python 必不可少的一部分,就像其它你所知道的语言中的花括号一样重要,所以请用 github 的 gist,然后附上链接,V2EX 会自动帮你显示出好看(有意义)的代码
    ditel
        5
    ditel  
    OP
       May 17, 2014
    @cbsw @lincanbin @ushuz @imlonghao
    有点麻烦啊。如果没有github账号,那是不是就没法帖gist的代码啦啊?
    ditel
        6
    ditel  
    OP
       May 17, 2014
    虽说写程序的都该有github的账号。但是,如果不喜欢用github这样的网站,岂不是在本网站贴代码就一坑啊!
    还是不习惯一个网站都没有自己的代码高亮编辑。
    像楼主这样新来的, 就不知道该怎么贴代码
    ditel
        7
    ditel  
    OP
       May 17, 2014
    User_Similarity函数?:

    def User_Similarity(train):
    --- W=dict()
    --- for u in train.keys():
    --- --- for v in train.keys():
    --- --- --- if u == v:
    --- --- --- --- continue;
    --- --- --- W[u][v] = len(train[u],train[v])
    --- --- --- W[u][v] /= math.sqrt(len(train[u]) * len(train[v]) * 1.0)

    ----------------------------------------------------------------------
    PS:楼主还是不喜欢本站贴代码的方式,各位见谅下
    ditel
        8
    ditel  
    OP
       May 17, 2014
    UserSimilarity函数:(这是第二段)

    #!/usr/bin/env python
    # coding=utf-8
    def UserSimilarity(train):
    --- #建立倒排表
    --- item_users = dict()
    --- for u,items in train.items():
    --- --- for i in item.keys():
    --- --- if i not in item_users:
    --- --- --- items_users[i] = set()
    --- --- item_users[i].add(u)
    --- #item_users即为物品到用户的倒排表
    --- #计算用户之间的相关度
    --- C = dict()#任意用户之间的相关度
    --- N = dict()#用户正反馈物品的数目
    --- for i ,users in item_users:
    --- --- for u in users:
    --- --- --- N[u] += 1
    --- --- --- for v in users:
    --- --- --- --- if u == v:
    --- --- --- --- --- continue:
    --- --- --- --- C[u][v] += 1
    --- #最后计算结果矩阵
    --- W = dict()
    --- for u ,related_users in C.items():
    --- --- for v,cuv in related_users:
    --- --- --- W[u][v] = cuv / math.sqrt(N[u]* N[v]*1.0)
    return W
    ditel
        9
    ditel  
    OP
       May 17, 2014
    Recommend函数:

    def Recommend(user,train,W):
    --- rank = dict()
    --- interacted_items = train[user]
    --- for v , wuv in sort(W[u].items,key = itemgetter(1),reverse = True)[0:k]:
    --- --- for i ,rvi in train[v].items:
    --- --- --- if i in interacted_items:
    --- --- --- --- continue
    --- --- --- rank[i] += wuv * rvi
    --- return rank

    -----------------------------------------------------------------

    PS:像for v , wuv in sort这样的表达的什么啊?
    ditel
        10
    ditel  
    OP
       May 17, 2014
    davidli
        11
    davidli  
       May 17, 2014
    把 Python 里的 list 当成 Java 里的 ArrayList 来理解吧
    for v in train 即 for ( v : train)。 意即, 对于 train 这个 list 中的每一个元素v。
    sort 即 Arrays.sort(), reverse=True 说明是从大到小排序

    for v , wuv in sort(xxx) :
    有一个list, 这个list里每一个元素都是 (a,b)的形式。
    先对这个list进行排序,然后对于这个排好序的list中每一个(a,b), 使v=a, wuv=b, 然后处理
    ushuz
        12
    ushuz  
       May 17, 2014
    @ditel 不需要GH账号,自己试一下不就知道了?用Gist麻烦....反而乐意去把空格都替换成 - ?
    ditel
        13
    ditel  
    OP
       May 17, 2014
    @ushuz 额。换就几下CTRL的事。
    试啦啊,感觉要账号。
    看过本站的代码啊,都是有用户的,难道不是?
    skydiver
        14
    skydiver  
       May 17, 2014
    @ushuz 不用账号的话贴到v2ex貌似解析不了。
    ditel
        15
    ditel  
    OP
       May 17, 2014
    @davidli (a,b)这个是数组还是什么?楼主不是JAVA的,楼主PHP
    wtbhk
        16
    wtbhk  
       May 17, 2014
    @ditel 既然会PHP花一个小时看下Python简明教程就完全会了
    davidli
        17
    davidli  
       May 18, 2014
    @ditel
    Python中特有的数据结构 tuple
    当成 array[2] 来理解就行了。
    我不会 PHP,所以只能用 Java 的东西来描述了, 因为大家都或多或少会一点 Java

    另,楼上说的没错,Python 简单的很,花几分钟现学一下都来得及。
    xiaowangge
        18
    xiaowangge  
       May 18, 2014
    不 “乐意” 用 gist ,那试试这个 http://paste.ubuntu.com/

    ;-)
    ditel
        19
    ditel  
    OP
       May 18, 2014
    ushuz
        20
    ushuz  
       May 21, 2014
    @ditel
    @skydiver

    无账号同样可以解析,看这里 /t/49664 的1楼。即使无法解析,至少也有链接可以去查看Gist。

    另外帖子虽然不能编辑了,但是可以 APPEND,楼主可以把需要补充的内容附加在帖子后面。
    About     Help     Advertise     Blog     API     FAQ     Solana     3817 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 78ms UTC 05:17 PVG 13:17 LAX 22:17 JFK 01:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86