# -*- coding: utf-8 -*- import os import re import logging # user_said = "maman je voudrais ecouter ACDC" # order = "je voudrais ecouter {{ artist_name }}" user_said = "s'il te plait regle le reveil pour sept heures et dix minutes" order = "regle le reveil pour {{ hour }} heures et {{ minute }} minutes" # take a look to each order def _is_containing_bracket(sentence): # print "sentence to test %s" % sentence pattern = r"{{|}}" # prog = re.compile(pattern) bool = re.search(pattern, sentence) if bool is not None: return True return False # check if the order contain bracket if _is_containing_bracket(order): # remove white space between {{ and }} # get a table of word said list_word_in_order = order.replace("{{ ","{{").replace(" }}", "}}").split() print "order matched: %s" % list_word_in_order # get the order, defined by the first words before {{ the_order = order[:order.find('{{')] print "the order catched %s" % the_order # remove sentence before order nb = user_said[user_said.find(the_order):] truncate_list_word_said = nb.split() print "truncate_list_word_said : %s" % truncate_list_word_said # make dict var:value dictVar = {} for idx, ow in enumerate(list_word_in_order): if _is_containing_bracket(ow): # remove bracket et key dict oo = ow.replace("{{","").replace("}}", "") dictVar[oo] = truncate_list_word_said[idx] print "The dict Var : %s" % dictVar # return the beginning of the sentence before first bracket # return # split each word #