예제 #1
0
def buildModel(storyId):
    sequenceLabeler.train(storyId)
    IntentClassifier().train()
    return buildResponse.sentOk()
예제 #2
0
def fileupload(botId):
    print("Bot Id in file upload", session.__getattribute__('botid'))
    if request.method == 'POST':
        # check if the post request has the file part
        print(request.files)
        if 'file' not in request.files:
            print('No file part')
            return redirect(request.url)
        file = request.files['file']
        print("File Details", file)
        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            print('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            print("File Name", filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            print("File saved to folder")
            #return redirect(url_for('stories_blueprint.fileupload', filename=filename))
            csvfile = open(UPLOAD_FOLDER + '/' + filename,
                           'r',
                           encoding='utf-8',
                           errors='ignore')
            reader = csv.DictReader(csvfile)
            #print(reader)
            header = [
                "storyName", "intentName", "apiTrigger", "speechResponse",
                "labeledSentences", "parameters"
            ]

            parameter1 = []

            ls = LabeledSentences()

            for each in reader:
                row = {}
                labelSent = []
                ls = LabeledSentences()
                for field in header:
                    #print("Field",field)
                    list2 = []
                    if field == "labeledSentences":
                        #print("Inside labeled send")
                        #print("Row[fiel}",each[field])
                        cleanSentences = html2text.html2text(each[field])
                        #print("After clean Sentences")
                        #labelSen.data=posTagAndLabel(cleanSentences)
                        data = nlp.posTagAndLabel(cleanSentences)
                        print("Type of data", type(data))
                        ls.data = data
                        #print("Result ", labelSent)
                        #print("Type", type(labelSent))
                    row[field] = each[field]
                    #print("row field",row[field])

                list2.append(ls)
                csvStories = Story(storyName=row['storyName'],
                                   intentName=row['intentName'],
                                   apiTrigger=False,
                                   speechResponse=row['speechResponse'],
                                   parameters=parameter1,
                                   labeledSentences=list2,
                                   botId=botId)
                csvStories.save()
                print(row['storyName'], "Story Saved in DB")

            for story in Story.objects():
                try:
                    #               print("Object Id",ObjectId(story.id))
                    sequenceLabeler.train(ObjectId(story.id))
                    print("Build Successfull")
                    print(ObjectId(story.id))
                except:
                    print("In sequence labeller excpetion")

            IntentClassifier().train()

            #return redirect(url_for('stories_blueprint.fileupload', filename=filename))
    return ''
def buildModel(storyId):
    sequenceLabeler.train(storyId)
    IntentClassifier().train()
    return buildResponse.sentOk()
예제 #4
0
def buildModel(storyId):
    sequenceLabeler.train(storyId)
    intentClassifier = IntentClassifier()
    intentClassifier.setBotId(g.botId)
    intentClassifier.train()
    return buildResponse.sentOk()