|  | @@ -33,23 +33,25 @@ class NLPFunction(object):
 | 
											
												
													
														|  |          self.model = model
 |  |          self.model = model
 | 
											
												
													
														|  |          self.embedding_manager = embedding_manager
 |  |          self.embedding_manager = embedding_manager
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    def direct_similarity(self, a, b):
 | 
											
												
													
														|  | 
 |  | +        return self.model.similarity(a, b)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    def cached_similarity(self, a, b):
 | 
											
												
													
														|  | 
 |  | +        text_emb1 = self.embedding_manager.get_embeddings(a)
 | 
											
												
													
														|  | 
 |  | +        text_emb2 = self.embedding_manager.get_embeddings(b)
 | 
											
												
													
														|  | 
 |  | +        score_function = self.model.score_functions['cos_sim']
 | 
											
												
													
														|  | 
 |  | +        score_tensor = score_function(text_emb1, text_emb2)
 | 
											
												
													
														|  | 
 |  | +        return score_tensor
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      def base_string_similarity(self, text_dict):
 |  |      def base_string_similarity(self, text_dict):
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  |          基础功能,计算两个字符串的相似度
 |  |          基础功能,计算两个字符串的相似度
 | 
											
												
													
														|  |          :param text_dict:
 |  |          :param text_dict:
 | 
											
												
													
														|  |          :return:
 |  |          :return:
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  | -        score_tensor = self.model.similarity(
 |  | 
 | 
											
												
													
														|  | -            text_dict['text_a'],
 |  | 
 | 
											
												
													
														|  | -            text_dict['text_b']
 |  | 
 | 
											
												
													
														|  | -        )
 |  | 
 | 
											
												
													
														|  | -        # test embedding manager functions
 |  | 
 | 
											
												
													
														|  | -        text_emb1 = self.embedding_manager.get_embeddings(text_dict['text_a'])
 |  | 
 | 
											
												
													
														|  | -        text_emb2 = self.embedding_manager.get_embeddings(text_dict['text_b'])
 |  | 
 | 
											
												
													
														|  | -        score_function = self.model.score_functions['cos_sim']
 |  | 
 | 
											
												
													
														|  | -        score_tensor_new = score_function(text_emb1, text_emb2)
 |  | 
 | 
											
												
													
														|  | -        compare_tensor(score_tensor, score_tensor_new)
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +        text_a = text_dict['text_a']
 | 
											
												
													
														|  | 
 |  | +        text_b = text_dict['text_b']
 | 
											
												
													
														|  | 
 |  | +        score_tensor = self.cached_similarity(text_a, text_b)
 | 
											
												
													
														|  |          response = {
 |  |          response = {
 | 
											
												
													
														|  |              "score": score_tensor.squeeze().tolist()
 |  |              "score": score_tensor.squeeze().tolist()
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
										
											
												
													
														|  | @@ -60,17 +62,9 @@ class NLPFunction(object):
 | 
											
												
													
														|  |          计算两个list的相似度
 |  |          计算两个list的相似度
 | 
											
												
													
														|  |          :return:
 |  |          :return:
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  | -        score_tensor = self.model.similarity(
 |  | 
 | 
											
												
													
														|  | -            pair_list_dict['text_list_a'],
 |  | 
 | 
											
												
													
														|  | -            pair_list_dict['text_list_b']
 |  | 
 | 
											
												
													
														|  | -        )
 |  | 
 | 
											
												
													
														|  | -        # test embedding manager functions
 |  | 
 | 
											
												
													
														|  | -        text_emb1 = self.embedding_manager.get_embeddings(pair_list_dict['text_list_a'])
 |  | 
 | 
											
												
													
														|  | -        text_emb2 = self.embedding_manager.get_embeddings(pair_list_dict['text_list_b'])
 |  | 
 | 
											
												
													
														|  | -        score_function = self.model.score_functions['cos_sim']
 |  | 
 | 
											
												
													
														|  | -        score_tensor_new = score_function(text_emb1, text_emb2)
 |  | 
 | 
											
												
													
														|  | -        compare_tensor(score_tensor, score_tensor_new)
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +        text_a = pair_list_dict['text_list_a']
 | 
											
												
													
														|  | 
 |  | +        text_b = pair_list_dict['text_list_b']
 | 
											
												
													
														|  | 
 |  | +        score_tensor = self.cached_similarity(text_a, text_b)
 | 
											
												
													
														|  |          response = {
 |  |          response = {
 | 
											
												
													
														|  |              "score_list_list": score_tensor.tolist()
 |  |              "score_list_list": score_tensor.tolist()
 | 
											
												
													
														|  |          }
 |  |          }
 |