как получить результат, который является случайным выбором, но также частично совпадает с запросом с результатом в массиве

#python #numpy

Вопрос:

Итак , это функция в моем чат-боте,результатом, генерируемым этой функцией, является случайный ответ из массива, соответствующего идентифицированному тегу, вместо случайного.выбор могу ли я использовать другой аргумент для частичного сопоставления текста, если идентифицированный тег соответствует тегу массива, или лучше выполнить случайный выбор.выбор в массиве при частичном сопоставлении текста запроса с текстом, содержащимся в массиве. Поэтому вместо случайных ответов он должен искать случайный ответ , который больше всего соответствует шаблону ( вопрос/запрос), и возвращать его как результат, в настоящее время я просто получаю случайные ответы, и они не улучшаются, несмотря на обучение. Заранее спасибо. Код приведен ниже.

 def getResponse(ints, intents_json):
    tag = ints[0]['intent']
    list_of_intents = intents_json['intents']
    for i in list_of_intents:
        if(i['tag']== tag):
            result = random.choice(i['responses'])
            break
    return result
 

Пример массива

 {
          "tag": "problem",
          "patterns": [
            "Yeah, hi. My system is down and I need to speak with a technician.",
            "My agents aren’t able to make or receive any telephone calls.",
            "I have AmStar700, I think.",
            "I have Verizon.",
            "Yeah that’s my cell. That is working."
          ],
          "responses": [
            "Sure I am here to help you, I would need to gather some information from you Okay. And what seems to be the problem today?",
            "Okay and what type of system do you have.",
            "Okay According to my records the AmStar700 is a voiceover Internet protocol phone It appears that because your Internet isn’t working your phones are not working as well Do you know who your Internet provider is?",
            "Okay. Are you able to log on to the system?",
            "Okay. Mr. Chambers, I’m going to get a hold of Randy, and have him return your call. Is the 00xxxxxxxxxx a good number to reach you at right now?",
            "Okay, great. In the meantime, see if you can reach out to Verizon and let them know your issue. And Randy should be calling you back shortly."
          ],
          "context": [
            ""
          ]