zoukankan      html  css  js  c++  java
  • 代码15

    此代码是公司已写好的代码,自己拿来学习,此代码的目标是得出pr图(即准确率和召回率图)所需数据

    import csv
    def get_pr(test_result_file):
        table = []
        reader = csv.reader(open(test_result_file))
        for items in reader:
            table.append((items[1], items[2], float(items[3])))
        table = sorted(table, lambda x, y : cmp(x[2], y[2]), reverse = True)
        length = len(table)
        count = 0
        prs = {}
        for i in range(length):
            if table[i][0] == table[i][1]:
                count += 1
            prs[table[i][2]] = (float(count) / (i+1), float(i+1) / length)              
        prs = sorted(prs.iteritems(), key=lambda x : x[0], reverse = True)         1.没经过sorted前pres还是字典的结构,经过了sorted之后就是list的结构,所以后面print k[0]能用下标访问,如果还是字典就不行,因为字典只能按key访问
        for k in prs:                                        2.sorted是不会改变原来的可迭代对象,只是生成一个新的经过顺序处理的可迭代对象,只是这里又用了prs= 来重新对prs更改
            # threshold, precision, recall                            3.如果把sorted中的prs.iteritems()去掉就会报错。不是因为sorted必须要用iteritems,是因为后面的函数处理是下标访问,如果不处理就仍是字典,字典不能
            print k[0], k[1][0], k[1][1]                             下标访问。这里如果去掉iteritems,同时去掉key,是可以跑成功,就和prs.key()效果一样,对key排序,但同时会只有key保留下来。所以代码只能这样写。也就是
        return prs                                          说以后排序想同时保留key和value,只能这样写代码
    get_pr("/home/xbwang/Desktop/s4.txt")

    s4.txt结构:query,标准intend,测出的intend,得分

    输出结果:

     没经过sorted的prs:

    经过sorted的prs:

     如果按照.key()方式处理,prs的样子为:

    http://www.cnblogs.com/nju2014/p/5569983.html

  • 相关阅读:
    重构之重新组织函数(Split Temporary Variable)
    HammperSpoon 不能 Focus Google Chrome 的问题
    如何让 vim 可以在命令行执行命令并且附加参数
    This bison version is not supported for regeneration of the Zend/PHP parsers
    php cURL library is not loaded
    aws linuxbrew GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2
    gen-cpp/.deps/ChildService.Plo: No such file or directory
    快速解码base64和utf-8的ASCII编码和URL解码
    英文版firefox显示中文字体丑的问题
    linux find 反转 查找没有被找到的结果
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/6411159.html
Copyright © 2011-2022 走看看