def generate_answer(self, msg_text, chat_id):
minimum_index=[1-(10**(-5)),-1] # min value / minimum index
if chat_id in self.vectorizer:
t=self.vectorizer[chat_id].transform([msg_text]).toarray()[0]
else:
reply=""
return
for i,t2 in enumerate(self.mat[chat_id].toarray()):
w=cosine(t,t2)
if abs(w)<=minimum_index[0]:
if minimum_index[0] == abs(w): # equal weight, lets take the longer message
if len(self.speech[chat_id][0][i]) > len(self.speech[chat_id][0][minimum_index[1]]):
minimum_index[1] = i
else: #not equal, take the lower weight
minimum_index[0] = w
minimum_index[1] = i
if minimum_index[1]==-1 or minimum_index[0]>0.85: # no message found or score too bad
return ""
from_sent_id = self.speech[chat_id][1][minimum_index[1]]
for i in range(1,5):
try:
if from_sent_id != self.speech[chat_id][1][minimum_index[1]+i]:
return self.speech[chat_id][0][minimum_index[1]+i]
except IndexError:
return ""
return ""
评论列表
文章目录