summaryrefslogtreecommitdiff
path: root/misc.py
blob: b546ad38c966ab2d78af2d31c31911bf36ea1497 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from subprocess import (check_output,call)
import os

def split(params):
    devnull = open(os.devnull, 'w')
    call(["./split"]+params.split(" "),stdout=devnull)

def train(params):
    params+=" --iter 1 --cg_prec 1e-4 --ls_prec 1e-10 --prec 1e-4 -M msk"
    bare(params)

def bare(params):
    devnull = open(os.devnull, 'w')
    call(["./ranksvm"]+params.split(" "),stdout=devnull)

def cmc(params):
    devnull = open(os.devnull, 'w')
    retcode = check_output(["./ranksvm"]+params.split(" ")).decode('ascii').split('\n');
    return float(retcode[-2])

def cmcc(params):
    devnull = open(os.devnull, 'w')
    retcode = check_output(["./ranksvm"]+params.split(" ")).decode('ascii').split('\n');
    return [float(x) for x in retcode[1:101]]


def take(fname):
    f=open(fname,'r')
    res=f.read().split('\n')
    f.close()
    return res

def merge(a,b):
    return a[:-1]+b[1:]

def put(fname,a):
    f=open(fname,'w')
    for item in a:
        f.write("%s\n" % item)
    f.close()

def getmodel(fname):
    f=open(fname,'r')
    res=f.read().split('\n')
    f.close()
    mod=[];
    fsize=int(res[1]);
    for i in range(fsize):
        mod.append(float(res[3+i]))
    return mod;

def putmodel(fname,m):
    f=open(fname,'w')
    f.write("TN\n")
    f.write("%d\n" % len(m))
    f.write("%d 1\n"%len(m))
    for a in m:
        f.write("%g\n"%a)
    f.write("0")
    f.close()

def getpred(fname):
    f=open(fname,'r')
    res=f.read().split('\n')
    f.close()
    return [float(p) for p in res[:-1]]