Python: Detection des valeurs à renvoyer

Python: détection des valeurs à renvoyer entre 1 et 20 attachées à la commande

a marqué ce sujet comme résolu.

Bonjour :) ,

J’ai ma fonction qui analyse le message du client, et quand mon algorithme détecte le mot "commande" suivi d’un nombre de 1 à 20, ma fonction est censée me renvoyer les deux valeurs mais en retour, ma fonction me renvoie tout ce qui à 20 (exemple même la date 2020).

J’aimerais que ma fonction me renvoie le nombre entre 1 et 20 de la "commande".

Merci

def detect_question(text,subject):
    questions = []
    intentList = ["Default Fallback Intent"]
    ai = apiai.ApiAI("--- Clef privée retirée par l'équipe du site ---")
    ########
    def req(phrase):
        request = ai.text_request()
        request.lang = 'fr'
        request.session_id = "RANDOM"
        request.query = phrase
        question = request.getresponse()
        s = json.loads(question.read().decode('utf-8'))
        try:
            intentName = s["result"]["metadata"]["intentName"]
        except:
            intentName = "Default Fallback Intent"
        return intentName
    ########
    phrases = re.split("\.|!|\?",text)
    for phrase in phrases:
        # Tests if the phrase contain characters:
        test = False
        for letter in string.ascii_letters:
            if letter in phrase:
                test = True
        if test == False:
            text = text.replace(phrase,"")
            continue # Go to next phrase
        intentName = req(phrase)
        if intentName not in intentList:
            questions.append(intentName)
            intentList.append(intentName)
    l = len(questions)
    if l == 0:
        pattern1 = r"Commande #\d{1,20} confirmée"
        pattern2 = r"Une commande #\d{1,20} est en transit"
        patterns = [pattern1,pattern2]
        default_subject = False
        for pattern in patterns:
            if re.search(pattern,subject):
                default_subject = True
                break
        if not default_subject:
            for letter in string.ascii_letters:
                if letter in subject:
                    intentName = req(subject)
                    if intentName not in intentList:
                        questions.append(intentName)
                        l += 1
                        break
    if l == 0:
        questions = ["Default Fallback Intent","none"]
    elif l == 1:
        questions.append("none")
    elif l == 3 and "thanks" in questions:
        questions.remove("thanks")
    elif l >= 3:
        for i in range(l-2):
            del questions[0]
    
    return questions
   
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte