def set(self, article, context, candidate): """ set feature attribute to: - greedy score (dim: 1) between candidate response & last k user turns without stop words - average embedding score (dim: 1) between candidate response & last k user turns without stop words - extrema embedding score (dim: 1) between candidate response & last k user turns without stop words """ if candidate is None or context is None: self.feat = None else: candidate = candidate.lower() start = min(len(context), 2 * self.k + 1) user_turns = np.array(context)[range(-start, 0, 2)] user_turns = ' '.join(user_turns).lower() user_turns = ' '.join( filter(lambda word: word not in stop, word_tokenize(user_turns))) logger.debug("last %d user turns: %s" % (self.k, user_turns)) res1 = greedy_score(candidate, user_turns) res2 = greedy_score(user_turns, candidate) self.feat = np.zeros(3) self.feat[0] = (res1 + res2) / 2.0 self.feat[1] = float(average_score(candidate, user_turns)) self.feat[2] = float(extrema_score(candidate, user_turns))
def set(self, article, context, candidate): """ set feature attribute to: - greedy score (dim: 1) between candidate response & article - average embedding score (dim: 1) between candidate response & article - extrema embedding score (dim: 1) between candidate response & article """ if candidate is None or article is None: self.feat = None else: candidate = candidate.lower() article = article.lower() res1 = greedy_score(candidate, article) res2 = greedy_score(article, candidate) self.feat = np.zeros(3) self.feat[0] = (res1 + res2) / 2.0 self.feat[1] = float(average_score(candidate, article)) self.feat[2] = float(extrema_score(candidate, article))
def set(self, article, context, candidate): """ set feature attribute to: - greedy score (dim: 1) between candidate response & last user turn - average embedding score (dim: 1) between candidate response & last user turn - extrema embedding score (dim: 1) between candidate response & last user turn """ if candidate is None or context is None: self.feat = None else: candidate = candidate.lower() last_turn = context[-1].lower() res1 = greedy_score(candidate, last_turn) res2 = greedy_score(last_turn, candidate) self.feat = np.zeros(3) self.feat[0] = (res1 + res2) / 2.0 self.feat[1] = float(average_score(candidate, last_turn)) self.feat[2] = float(extrema_score(candidate, last_turn))
def set(self, article, context, candidate): """ set feature attribute to: - greedy score (dim: 1) between candidate response & last k turns - average embedding score (dim: 1) between candidate response & last k turns - extrema embedding score (dim: 1) between candidate response & last k turns """ if candidate is None or context is None: self.feat = None else: candidate = candidate.lower() last_turns = ' '.join(context[-self.k:]).lower() logger.debug("last %d turns: %s" % (self.k, last_turns)) res1 = greedy_score(candidate, last_turns) res2 = greedy_score(last_turns, candidate) self.feat = np.zeros(3) self.feat[0] = (res1 + res2) / 2.0 self.feat[1] = float(average_score(candidate, last_turns)) self.feat[2] = float(extrema_score(candidate, last_turns))
def set(self, article, context, candidate): """ set feature attribute to: - greedy score (dim: 1) between candidate response & article without stop words - average embedding score (dim: 1) between candidate response & article without stop words - extrema embedding score (dim: 1) between candidate response & article without stop words """ if candidate is None or article is None: self.feat = None else: candidate = candidate.lower() article = article.lower() article = ' '.join( filter(lambda word: word not in stop, word_tokenize(article))) res1 = greedy_score(candidate, article) res2 = greedy_score(article, candidate) self.feat = np.zeros(3) self.feat[0] = (res1 + res2) / 2.0 self.feat[1] = float(average_score(candidate, article)) self.feat[2] = float(extrema_score(candidate, article))