Exemple #1
0
def test(sess, cnn, testList, merged):
    label = []
    sum_pair = 0
    for i in numbertest:
        sum_pair += i
    for line in testList:
        label_item = int(line[0])
        label.append(label_item)

    x_test_1, x_test_2, x_test_3 = data_helper.load_val_batch(
        testList, vocab, 0, sum_pair)
    feed_dict = {
        cnn.input_x_1: x_test_1,
        cnn.input_x_2: x_test_2,  # x_test_2 equals x_test_3 for the test case
        cnn.lengths: x_test_3,
        cnn.label: np.array(label)
    }
    summary, acc = sess.run([merged, cnn.accuracy], feed_dict)
    return summary, acc
Exemple #2
0
def dev_step(sess, cnn, testList):
    ndcg3 = []
    ndcg5 = []
    ndcg10 = []
    ndcg20 = []
    sum1 = 0
    for i in numbertest:
        queryList = []
        x_test_1, x_test_2, x_test_3 = data_helper.load_val_batch(
            testList, vocab, sum1, i)
        feed_dict = {
            cnn.input_x_1: x_test_1,
            cnn.input_x_2:
            x_test_2,  # x_test_2 equals x_test_3 for the test case
            cnn.lengths: x_test_3
        }
        predicted = sess.run(cnn.score, feed_dict)
        for index, s in enumerate(predicted):
            line = testList[sum1 + index]
            term = line[0]
            queryList.append((term, predicted[index]))
        sum1 += i
        queryList = sorted(queryList, key=lambda x: x[1])
        queryList.reverse()
        query_sort = [int(x[0]) for x in queryList]
        r = []
        for j in query_sort:
            r.append(j)

        ndcg3.append(ndcg_at_k(r, 3))
        ndcg5.append(ndcg_at_k(r, 5))
        ndcg10.append(ndcg_at_k(r, 10))
        ndcg20.append(ndcg_at_k(r, 20))

        return sum(ndcg3) * 1.0 / len(ndcg3), sum(ndcg5) * 1.0 / len(
            ndcg5), sum(ndcg10) * 1.0 / len(ndcg10), sum(ndcg20) * 1.0 / len(
                ndcg20)