コード例 #1
0
    def post(self, request):
        layer = request.POST.get('layer')
        clas = request.POST.get('class')
        parent = request.POST.get('parent')
        sentence = request.POST.get('sentence')
        all_layer_objects = Layers.objects.all()
        all_class_objects = Classes.objects.all()
        msg1 = "invalid entry"
        if (layer is None or clas is None or parent is None or sentence == ''):
            return render(
                request, self.temp1, {
                    'msg1': msg1,
                    'user': request.session['users'],
                    'layers': all_layer_objects,
                    'classes': all_class_objects
                })
        else:
            obj = sets.objects.filter(class_id_of=int(clas),
                                      layer_id_of=int(layer),
                                      parent_id=int(parent))
            set_id = None

            set_object = ''
            for obje in obj:
                set_id = obje.set_id
                set_object = obje
            if set_id is not None:
                newObj = train(sentence=sentence, set_id=set_object)
                newObj.save()
                finalSet = (trainData.makeBags(set_object))
                set = finalSet[0]
                write(set[0], set[1], str(layer), str(parent), finalSet[1])
                #write(set[0],set[1],layer,parent)
                result = read(layer, parent)
                #result =  clasify("bus does not come at time",1,0,set[0],set[1],list(["bus","train"]))
                return render(
                    request, self.temp, {
                        'layer': layer,
                        'clas': clas,
                        'parent': parent,
                        'sentence': sentence,
                        'obj': obj,
                        'msg': "yes",
                        'words': finalSet[1],
                        'allsent': finalSet[2],
                        'classes': finalSet[3]
                    })
            else:

                return render(
                    request, self.temp1, {
                        'msg1': msg1,
                        'user': request.session['users'],
                        'layers': all_layer_objects,
                        'classes': all_class_objects
                    })
コード例 #2
0
def think(sentence, layer, parent, synapse_0, synapse_1):
    y = give_word_bag(sentence.lower(), (storeSynapes.read(layer, parent))[2])
    x = y[0]
    l0 = numpy.array(x)
    # matrix multiplication of input and hidden layer

    l1 = sigmoid(numpy.dot(x, synapse_0))
    # output layer
    l2 = sigmoid(numpy.dot(l1, synapse_1))
    return l2
コード例 #3
0
    def post(self, request):
        sentence = request.POST.get('text')
        synap = read(2, 1)
        result = clasify(
            sentence, 2, 1, synap[0], synap[1],
            list(["conductor", "passengers", "route", "busitself", "driver"]))

        return render(request, self.temp2, {
            'result': result,
            'words': synap[2]
        })
コード例 #4
0
    def post(self,request):
        layer = request.POST.get('layer')
        clas = request.POST.get('class')
        parent = request.POST.get('parent')
        sentence = request.POST.get('sentence')
        all_layer_objects = Layers.objects.all()
        all_class_objects = Classes.objects.all()
        msg1 = "invalid entry"
        if(layer is None or clas is None or parent is None or sentence == '' ):
            return render(request, self.temp1,
                          {'msg1': msg1, 'user': request.session['users'], 'layers': all_layer_objects,
                           'classes': all_class_objects})
        else:
            obj = sets.objects.filter(class_id_of=int(clas),layer_id_of=int(layer),parent_id=int(parent))
            set_id=None

            set_object=''
            for obje in obj:
                set_id = obje.set_id
                set_object = obje
            if set_id is not None:
                newObj = train(sentence=sentence, set_id=set_object,train_state=False)
                newObj.save()
                #writeNumOfTrains(str(layer),str(parent))
                #increment number of trains
                incrementCount(str(layer),str(parent))
                numOfunTrains = readNumOfUnTrains(str(layer),str(parent))
                #change this number as you wish
                if(int(numOfunTrains)>=1000):
                    writeNumOfTrains(layer,parent)
                    finalSet = (trainData.makeBags(set_object))
                    set = finalSet[0]
                    write(set[0],set[1], str(layer), str(parent),finalSet[1])
                    result = read(layer,parent)
                    return render(request,self.temp1,{'layer':layer, 'clas':clas ,'parent':parent,
                                                     'sentence':sentence,'obj':obj,'msg':"yes",
                                                     'words':finalSet[1],'allsent':finalSet[2],'classe':finalSet[3],

                                                     'untrains':numOfunTrains,
                                                     'user': request.session['users'], 'layers': all_layer_objects,
                                                     'classes': all_class_objects}
                    )


                else:
                    return render(request, self.temp1,
                                  { 'user': request.session['users'], 'layers': all_layer_objects,
                                   'classes': all_class_objects})

            else:


                return render(request,self.temp1,{'msg1':msg1,'user': request.session['users'], 'layers': all_layer_objects,
                    'classes': all_class_objects})
コード例 #5
0
    def post(self,request):
        sentence = request.POST.get('text')
        synap = read(1,0)
        result = clasify(sentence,1,0,synap[0],synap[1],list(["bus","train"]))

        return render(request, self.temp2, {'result': result,'words':synap[2]})
コード例 #6
0
def reply(message, user):
    output = ""
    while (True):
        #start
        if (count == 0):
            clearInr()
            if (message.lower() == "hi bot"):
                output = "Hi " + user + " " + "! Welcome to InquaMaK...type your inquiry here"
                setTo(1)

            else:
                output = "Error! Type 'hi bot' to start the chat"
            break

        #work with user inquiry (inconvenences or problems)
        elif (count == 1):
            synap = read(1, 0)
            msg = clasify(message, 1, 0, synap[0], synap[1],
                          list(["bus", "train"]))
            if (len(msg) > 1 or len(msg) == 0):
                setPreCount(count)
                output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                setTo(7)

            else:

                if (str(msg[0][0]) == "bus"):
                    output = "enter bus number"
                    setTo(2)
                    setInquiry("Inquiry: " + message + '<br>')
                    setCat1("bus")

                    #catogorize furture
                    synap = read(2, 1)
                    cat2 = clasify(
                        message, 2, 1, synap[0], synap[1],
                        list([
                            "conductor", "passengers", "route", "busitself",
                            "driver"
                        ]))
                    if (len(cat2) > 1 or len(cat2) == 0):
                        setCat2('')
                    else:
                        setCat2(str(cat2[0][0]))

                elif (str(msg[0][0]) == "train"):
                    output = "enter train name"
                    setTo(2)
                    setInquiry("Inquiry: " + message + '<br>')
                    setCat1("train")
                    synap = read(2, 2)
                    cat2 = clasify(
                        message, 2, 2, synap[0], synap[1],
                        list(["passenger", "route", "trainitself", "driver"]))
                    if (len(cat2) > 1 or len(cat2) == 0):
                        setCat2('')
                    else:
                        setCat2(str(cat2[0][0]))

            break

        #get the date and valid inquiry
        elif (count == 2):
            if (catogary1 == "bus"):
                setInquiry("Bus No: " + message + '<br>')
                validity = validate_inputs.validBusNumber(message)
                if (validity == True):
                    output = "enter the date you faced the inconvenience"
                    setTo(3)

                else:
                    setPreCount(count)
                    output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                    setTo(7)

            elif (catogary1 == "train"):
                if (validate_inputs.validateTrainName(message)):
                    setInquiry("Train Name: " + message + '<br>')
                    output = "enter the date you faced the inconvenience"
                    setTo(3)

                else:
                    setPreCount(count)
                    output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                    setTo(7)
            break
        #valid date and ask goe time
        elif (count == 3):
            now = datetime.datetime.now()
            date = message
            dateValidity = validate_inputs.validDate(str(date))
            if (dateValidity[0] == True):
                output = "enter the time you faced the inconvenience"
                setInquiry("Date: " + message + '<br>')
                setDate(dateValidity[1], dateValidity[2], dateValidity[3])
                setTo(4)

            else:
                setPreCount(count)
                output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                setTo(7)
            break

        #show full inquiry and ask goe confirmation
        elif (count == 4):
            time = message
            validity = validate_inputs.valiTime(time, day, month, year)
            if (validity == True):
                setInquiry("Time: " + message)

                #output = inquiry+'<br>'+'<br>'+"Confirm the Inquiry(yes/no)"
                if (catogary2 != ''):
                    output = getOutPut(catogary2, catogary1)
                    if (output != ''):
                        setTo(5)
                        break
                    else:
                        setTo(8)

                else:
                    output = inquiry + '<br>' + '<br>' + "Confirm the Inquiry(yes/no)"
                    setTo(6)
                    break

            else:
                setPreCount(count)
                output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                setTo(7)
                break

        #ask for confirmation
        elif (count == 5):
            if (message.lower() != 'ignore' and message != ''):
                #validate a name of driver or conductor
                if (catogary2 == 'conductor' or catogary2 == "driver"):
                    if (validate_inputs.validateName(message)):
                        setInquiry(message)
                    else:
                        setPreCount(count)
                        output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                        setTo(7)
                        break
                elif (message == ''):
                    setPreCount(count)
                    output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                    setTo(7)
                    break

                else:
                    setInquiry(message)

            else:
                setInquiry("not known")
            output = inquiry + '<br>' + '<br>' + "Confirm the Inquiry(yes/no)"
            setTo(6)
            break

        elif (count == 8):
            output = inquiry + '<br>' + '<br>' + "Confirm the Inquiry(yes/no)"
            setTo(6)
            break

        elif (count == 6):
            if (message.lower() == 'yes'):
                #output = saveData.saveInq(user,inquiry,1)
                #save the inquiry
                if (catogary1 == 'bus'):
                    saveData.saveInq(user, inquiry, 1)
                elif (catogary1 == 'train'):
                    saveData.saveInq(user, inquiry, 2)
                clearInr()
                setTo(0)
                output = "recording has been saved"
            elif (message.lower() == 'no'):
                output = "recording has been canceled"
                clearInr()
                setTo(0)
            else:
                setPreCount(count)
                output = "Invalid Input! Type 'cancel' to cancel the recording and see the user guidance"
                setTo(7)
            break

        #work with cancelations and retries
        elif (count == 7):
            if (message.lower() == 'cancel'):
                clearInr()
                setTo(0)
                output = 'recording has been canceled'
                break
            else:
                setTo(previous_count)

    return output