def c_pick(self):
		t_ = self.p.t1()
		r = []
		for i, c2 in enumerate(t_.c2):
			sc = c_sim(c2, self.ec)
			if sc >= self.sc_low:
				r.append(i)
		t2_ = t(t_.v[r])

		v = t2_.c_m()
		w = {i: v[i] for i in v_gi(v)}
		o = sorted(w, key=w.get, reverse=True)  # max
		return o
示例#2
0
    def run2(self, q):
        t_ = dt.t
        t_ = t(t_.v[t_.c[:, q.c] > 0.0])

        qc = t_cv.v[q.c]  # wv
        qu = t_uv.v[q.u]  # wv

        if len(t_.v) > self.rn:
            w = {}
            for i, (c2, u2, l, z) in enumerate(zip(t_.c2, t_.u2, t_.l, t_.z)):
                w[i] = c_sim(qc, c2) + \
                    u_sim(qu, u2) + \
                    l_sim(q.l, l) + \
                    z_sim(q.z, z)

            o = sorted(w, key=w.get, reverse=True)  # max
            return t(t_.v[o[:self.rn]])
        return t_
示例#3
0
from d.d import d, ds
from d.t import t
from d.g.wv import e_cv, to_wv
from d.ul import c_sim
from rw.be_.m import m
from z2.ul import ndcg

np.set_printoptions(precision=3)

x = t(np.load(os.path.join(ds, "t_test.npy")))
g = d.te_g

m_ = m()
x2 = []
for i in x.c:
    x2.append(to_wv(m_.pd(i), e_cv.v))

top = 500
r = []
for g_, a in zip(g.c2, g.ei):
    s = {i: c_sim(g_, x2[i]) for i in range(len(x2))}
    o = sorted(s, key=s.get, reverse=True)  # max
    s2 = (x.ei[o] == a) * 1

    r_ = []
    for k in range(1, top + 1):
        r_.append(ndcg(s2, k))

    #print("@{} {}".format(10, r_[10-1]))
    r.append(r_)
print("{}".format(np.mean(np.array(r), axis=0)[[5, 10, 60]].tolist()))
import numpy as np
import os
from d.d import d, ds
from d.t import t
from d.de import de
from d.g.wv import t_cv, to_wv
from d.ul import c_sim
from z2.ul import ndcg, ndcg_k
np.set_printoptions(precision=3)

x = t(np.load(os.path.join(ds, "t_test.npy")))
g = d.te_g

top = 500
r = []
for g_, a in zip(g.c, g.ei):
    ec = to_wv(de.to_t(g_), t_cv.v)

    s = {i: c_sim(ec, x.c2[i]) for i in range(len(x.v))}
    o = sorted(s, key=s.get, reverse=True)  # max
    s2 = (x.ei[o] == a) * 1

    r_ = []
    for k in range(1, top + 1):
        r_.append(ndcg_k(s2, k))

    #print("@{} {}".format(10, r_[10-1]))
    r.append(r_)
print("{}".format(np.mean(np.array(r), axis=0)[[5, 10, 60]].tolist()))
import numpy as np
import os
from d.e import e
from d.dt import dd
from d.de import de
from d.ul import v_gi, c_sim
from d.g.wv import e_cv

e_ = e(np.load(os.path.join(dd, "e2.npy")))

q = 50
qc = e_cv.v[q]

w = {}
for i, c2 in enumerate(e_.c2):
    w[i] = c_sim(qc, c2)

o = sorted(w, key=w.get, reverse=True)  # max
r = e(e_.v[o[:30]])

print("q:{}".format(de.sh_c([q])))
for i in r.c:
    print(de.sh_c(v_gi(i)))