'Build the eval graph.'

def build_eval_graph(self):

    analogy_a = tf.placeholder(dtype=tf.int32)
    analogy_b = tf.placeholder(dtype=tf.int32)
    analogy_c = tf.placeholder(dtype=tf.int32)
    nemb = tf.nn.l2_normalize(self._emb, 1)
    a_emb = tf.gather(nemb, analogy_a)
    b_emb = tf.gather(nemb, analogy_b)
    c_emb = tf.gather(nemb, analogy_c)
    target = (c_emb + (b_emb - a_emb))
    dist = tf.matmul(target, nemb, transpose_b=True)
    (_, pred_idx) = tf.nn.top_k(dist, 4)
    nearby_word = tf.placeholder(dtype=tf.int32)
    nearby_emb = tf.gather(nemb, nearby_word)
    nearby_dist = tf.matmul(nearby_emb, nemb, transpose_b=True)
    (nearby_val, nearby_idx) = tf.nn.top_k(nearby_dist, min(1000, self._options.vocab_size))
    self._analogy_a = analogy_a
    self._analogy_b = analogy_b
    self._analogy_c = analogy_c
    self._analogy_pred_idx = pred_idx
    self._nearby_word = nearby_word
    self._nearby_val = nearby_val
    self._nearby_idx = nearby_idx
