import galbackend_online
old_theme = 'movies'
theme = {'100':old_theme}
galbackend_online.InitLogging()
galbackend_online.InitResource('v4')
theme_new, strategy, response,previous_history_new,word2vec = galbackend_online.get_response('switch',1,'test', '100', {'100':['a']},theme)
print theme
Exemplo n.º 2
0
#!/usr/bin/etc python

import galbackend_online
import sys
import socket
import time
#socket = None
#sys.path.append("~/nltk_data")
#target = galbackend.GalInterface()
#print(target)
#gt = galbackend.Thread(target=galbackend.GalInterface)
galbackend_online.InitLogging()
galbackend_online.InitResource('v2')
oov_state =1
name_entity_state =1
#while(1):
    #galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
with open('eval_set.txt') as f:
	lines = f.readlines()
f = open('eval_set_output','w')
for line in lines:
        response = galbackend_online.get_response(line, 'user_id',oov_state,name_entity_state)
	f.write('User: '******'TickTock:' +response+'\n')
	f.write('\n')
import galbackend_online
import sentiment
galbackend_online.InitLogging()
galbackend_online.InitResource('v4')
while True:
    user_id = 'a'
    history = {user_id : ['aa','bb']}
    theme = {user_id: 'movies'}
    theme, strategy,utt,previous_history, word2vec = galbackend_online.get_response('joke',1,'joke_joke',user_id,history,theme)
    print utt
    sent = sentiment.get_sentiment(utt)
    print sent
    if sent not in ['pos','neg','neutral']:
        break
tfidf_state = 1
policy_mode = 1
user_list = []
theme = {}
user_input = pickle.load(open('user_input_all.pkl'))
conversation_id = 1000
print len(user_input)
for line in user_input:
    commands.getstatusoutput("rm c.txt")
    turn_id = 1
    name = 'simulated_conversations/' + str(conversation_id) + '.txt'
    f = open(name, 'w')
    while True:
        f.write('Turn: ' + str(turn_id) + '\n')
        theme, strategy, response, previous_history, word2vec = galbackend_online.get_response(
            policy_mode, line, name, previous_history, theme, oov_state,
            name_entity_state, short_answer_state, anaphra_state,
            word2vec_ranking_state, tfidf_state)
        if strategy == 'new':
            continue
        f.write('Alice: ' + line + '\n')
        f.write('TickTock:' + response + '\n')
        f.write('\n')
        # Here write the Alice response, send in response, get out line.
        cmd = '''curl -b c.txt -c c.txt -e sheepridge.pandorabots.com --data "input=hello" 'http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custom_input' 2>/dev/null | tail -n 1 '''.replace(
            'hello', response)
        print 'cmd'
        print cmd
        output_all = commands.getstatusoutput(cmd)
        output = output_all[1]
        print output
        sentence = output.split('<br>')
Exemplo n.º 5
0
from gensim import models, corpora
import galbackend_online
import sys
import socket
import time
sampleRequest = 'You are a good person'
galbackend_online.InitLogging()
galbackend_online.InitResource('v3')
response = galbackend_online.get_response(sampleRequest,
                                          '322',
                                          0,
                                          0,
                                          0,
                                          tfidf_mode=1)
import galbackend_online
old_theme = 'movies'
theme = {'100': old_theme}
galbackend_online.InitLogging()
galbackend_online.InitResource('v4')
theme_new, strategy, response, previous_history_new, word2vec = galbackend_online.get_response(
    'switch', 1, 'test', '100', {'100': ['a']}, theme)
print theme
Exemplo n.º 7
0
def get_alternative_responses():
    rs_preprocess.accumulate_responses()
    galbackend_online.InitLogging()
    galbackend_online.InitResource('v3')
    oov_state =1
    name_entity_state =1
    anaphra_state =1
    short_answer_state=1
    previous_history ={}
    word2vec_ranking_state =1
    tfidf_state =1
    user_list =[]
    theme = {}

    strategyDict = {
        'continue' : (True, 0),
        'switch' : (False, 0),
        'end' : (False, 1),
        'init' : (False, 2),
        'joke' : (False, 3),
        'more' : (False, 4),
    }

    conversations = []
    logRoot = '/home/ubuntu/zhou/Backend/rating_log/'
    with open(logRoot + 'conversation_list.pickle', 'rb') as f:
        conversations = pickle.load(f)

    badResponses = []
    for item in conversations:
        for response in item:
            if response['Appropriateness'] < 3:
                badResponses.append(response)

    testResponses = []
    for response in badResponses:
        for k in strategyDict.keys():
            if not k in response['Strategy']:
                try:
                    theme, strategy, altered_response, previous_history, word2vec = galbackend_online.get_response(
                             response['You'],
                             "0",
                             {"0" : response['PrevResp']},
                             {"0" : response['Theme']},
                             oov_state,
                             name_entity_state,
                             short_answer_state,
                             anaphra_state,
                             word2vec_ranking_state,
                             tfidf_state,
                             strategyDict[k])
                    alteredDict = {}
                    for y in response.keys():
                        alteredDict[y] = response[y]
                    alteredDict['TickTock'] = altered_response
                    alteredDict['Strategy'] = [k]
                    alteredDict['PrevResp'] = list(response['PrevResp'])
                    response['PrevResp'] = response['PrevResp'][:-2]
                    testResponses.append(alteredDict)
                except:
                    pass

    tmpickle = open('test_responses.pickle', 'wb')
    pickle.dump(testResponses, tmpickle, pickle.HIGHEST_PROTOCOL)
    tmpickle.close()
    return testResponses
galbackend_online.InitLogging()
galbackend_online.InitResource('v3')
oov_state =1
name_entity_state =1
anaphra_state =1
short_answer_state=1
previous_history ={}
word2vec_ranking_state =1
tfidf_state =1
user_list =[]
theme = {}
while True:
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #Log('serversocket')
        serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        serversocket.bind(('localhost', 13112))
        serversocket.listen(5)
        connection, address = serversocket.accept()
        #Log('connection established')
        print connection
        user_input = connection.recv(1024)
	print user_input
        user_id, user_input_real = user_input.split('|')
	print user_id
        print user_input_real
        theme, strategy,response,previous_history,word2vec = galbackend_online.get_response(user_input_real, user_id,previous_history,theme,oov_state,name_entity_state,short_answer_state,anaphra_state,word2vec_ranking_state,tfidf_state)
        connection.send(response + "|" + str(strategy))
        print 'finish sending response'
        serversocket.close()

Exemplo n.º 9
0
import time
#socket = None
#sys.path.append("~/nltk_data")
#target = galbackend.GalInterface()
#print(target)
#gt = galbackend.Thread(target=galbackend.GalInterface)
galbackend_online.InitLogging()
galbackend_online.InitResource()
#while(1):
    #galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
while True:
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #Log('serversocket')
        serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        serversocket.bind(('localhost', 13111))
        serversocket.listen(5)
        connection, address = serversocket.accept()
        #Log('connection established')
        print connection
        user_input = connection.recv(1024)
	print user_input
        user_id, user_input_real = user_input.split('|')
	print user_id
        print user_input_real
        response = galbackend_online.get_response(user_input_real, user_id)
        connection.send(response)
        print 'finish sending response'
        serversocket.close()

Exemplo n.º 10
0
 sent_2 = 'null'
 sent_1 = 'null'
 theme[str(conv_index)] = random.choice(TopicLib)
 previous_history[str(conv_index)] = ['Hello', tt_utt]
 for turn_id in range(1, 10):
     print turn_id
     al_utt = alice.alice(tt_utt)
     conv.append(al_utt)
     f.write('Turn: ' + str(turn_id) + '\n')
     f.write('You: ' + al_utt + '\n')
     next_sent_1 = sent_3
     next_sent_2 = sentiment.get_sentiment(al_utt)
     state = (sent_1, sent_2, sent_3, turn_id)
     # here we see if we go into get_response, it happen to be in any of the five strategy, then we select one to excecute. otherwise we stick to the original strategy.
     theme_new, strategy, response, previous_history_new, word2vec = galbackend_online.get_response(
         None, policy_mode, al_utt, str(conv_index), previous_history,
         theme, oov_state, name_entity_state, short_answer_state,
         anaphra_state, word2vec_ranking_state, tfidf_state)
     previous_history[str(conv_index)].pop()
     previous_history[str(conv_index)].pop()
     if strategy[-1] in action_list_pass:
         utt_real = response
         conv.append(utt_real)
         next_sent_3 = sentiment.get_sentiment(utt_real)
         q_value = 1000
         action_selected = strategy
     else:
         #action selection portion
         if random.random() < epsilon:
             action_selected = random.choice(action_list)
         else:
             q_value = q_table[(state, action)]
Exemplo n.º 11
0
import socket
import time
#socket = None
#sys.path.append("~/nltk_data")
#target = galbackend.GalInterface()
#print(target)
#gt = galbackend.Thread(target=galbackend.GalInterface)
galbackend_online.InitLogging()
galbackend_online.InitResource()
#while(1):
#galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
while True:
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #Log('serversocket')
    serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    serversocket.bind(('localhost', 13111))
    serversocket.listen(5)
    connection, address = serversocket.accept()
    #Log('connection established')
    print connection
    user_input = connection.recv(1024)
    print user_input
    user_id, user_input_real = user_input.split('|')
    print user_id
    print user_input_real
    response = galbackend_online.get_response(user_input_real, user_id)
    connection.send(response)
    print 'finish sending response'
    serversocket.close()
Exemplo n.º 12
0
import socket
import time
#socket = None
#sys.path.append("~/nltk_data")
#target = galbackend.GalInterface()
#print(target)
#gt = galbackend.Thread(target=galbackend.GalInterface)
galbackend_online.InitLogging()
galbackend_online.InitResource('v3')
oov_state =1
name_entity_state =1
anaphra_state =1
short_answer_state=1
previous_history ={}
word2vec_ranking_state =0
theme = {}
f = open('eval_talk_out.txt','w')
turn_id = 1
line = 'Hello'
while True:
        f.write('Turn: ' + str(turn_id) + '\n')
        theme, strategy, response,previous_history,word2vec = galbackend_online.get_response( line, 'user_id',previous_history,theme, oov_state,name_entity_state,short_answer_state,anaphra_state,word2vec_ranking_state,1)
        f.write('User: '******'\n')
	f.write('TickTock:' +response+'\n')
	f.write('\n')
        theme, strategy, line,previous_history,word2vec = galbackend_online.get_response( response, 'user_id',previous_history,theme, oov_state,name_entity_state,short_answer_state,anaphra_state,0,1)
        turn_id = turn_id +1
        if turn_id > 20:
            break

Exemplo n.º 13
0
from gensim import models, corpora
import galbackend_online
import sys
import socket
import time
sampleRequest = 'You are a good person'
galbackend_online.InitLogging()
galbackend_online.InitResource('v3')
response = galbackend_online.get_response(sampleRequest, '322',0,0,0, tfidf_mode=1)

Exemplo n.º 14
0
word2vec_ranking_state = 0
tfidf_state = 1
#while(1):
#galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
f = open('user_input_v2_revise.txt', 'w')
with open('user_input_v2.pkl') as ff:
    user_input = pickle.load(ff)
turn_number = 1
trigger = []
for turn in user_input:
    print turn
    question = turn['question']
    answer = turn['answer']
    app_value = turn['app_value']
    strategy, response, previous_history = galbackend_online.get_response(
        question, 'user_id', previous_history, oov_state, name_entity_state,
        short_answer_state, word2vec_ranking_state, anaphra_state, tfidf_state)
    if 'oov' is 'oov':
        f.write('Turn: ' + str(turn_number) + '\n')
        f.write('User: '******'\n')
        f.write('TickTock: ' + response + '\n')
        f.write('Strategy: ' + str(strategy) + '\n')
        f.write('TickTock_old: ' + answer + '\n')
        f.write('Appropriateness_score: ' + app_value + '\n')
        f.write('\n')
    trigger = trigger + [item for item in strategy]
    turn_number = turn_number + 1
hist_trigger = Counter(trigger)
print hist_trigger
Exemplo n.º 15
0
galbackend_online.InitResource('v3')
oov_state =1
name_entity_state =1
anaphra_state =1
short_answer_state=1
previous_history ={}
word2vec_ranking_state =0
tfidf_state =1
#while(1):
    #galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
while True:
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #Log('serversocket')
        serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        serversocket.bind(('localhost', 13112))
        serversocket.listen(5)
        connection, address = serversocket.accept()
        #Log('connection established')
        print connection
        user_input = connection.recv(1024)
	print user_input
        user_id, user_input_real = user_input.split('|')
	print user_id
        print user_input_real
        strategy,response,previous_history, word2vec = galbackend_online.get_response(user_input_real, user_id,previous_history,oov_state,name_entity_state,short_answer_state,word2vec_ranking_state,anaphra_state,tfidf_state)
        connection.send(response)
        print 'finish sending response'
        serversocket.close()

Exemplo n.º 16
0
short_answer_state=1
previous_history ={}
word2vec_ranking_state =0
tfidf_state =1
#while(1):
    #galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
f = open('user_input_v2_revise.txt','w')
with open('user_input_v2.pkl') as ff:
    user_input = pickle.load(ff)
turn_number =1
trigger = []
for turn in user_input:
        print turn
        question = turn['question']
        answer = turn['answer']
        app_value = turn['app_value']
        strategy, response,previous_history = galbackend_online.get_response(question, 'user_id',previous_history,oov_state,name_entity_state,short_answer_state,word2vec_ranking_state,anaphra_state,tfidf_state)
        if 'oov' is 'oov':
            f.write('Turn: ' + str(turn_number)+'\n' )
            f.write('User: '******'\n')
	    f.write('TickTock: ' +response+'\n')
            f.write('Strategy: ' + str(strategy) +'\n')
            f.write('TickTock_old: ' + answer +'\n' )
            f.write('Appropriateness_score: ' +app_value +'\n')
            f.write('\n')
        trigger = trigger + [item for item in strategy]
        turn_number = turn_number +1
hist_trigger = Counter(trigger)
print hist_trigger
Exemplo n.º 17
0
galbackend_online.InitLogging()
galbackend_online.InitResource('v3')
oov_state =1
name_entity_state =1
anaphra_state =1
short_answer_state=1
previous_history ={}
word2vec_ranking_state =0
theme = {}
f = open('eval_ticktock_alice.txt','w')
turn_id = 1
line = 'Hello'
commands.getstatusoutput("rm c.txt")
while True:
        f.write('Turn: ' + str(turn_id) + '\n')
        theme, strategy, response,previous_history,word2vec = galbackend_online.get_response( line, 'user_id',previous_history,theme, oov_state,name_entity_state,short_answer_state,anaphra_state,word2vec_ranking_state,1)
        f.write('Alice: '+line + '\n')
	f.write('TickTock:' +response+'\n')
	f.write('\n')
        # Here write the Alice response, send in response, get out line.
        cmd = '''curl -b c.txt -c c.txt -e sheepridge.pandorabots.com --data "input=hello" 'http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custom_input' 2>/dev/null | tail -n 1 '''.replace('hello',response)
        print 'cmd'
        print cmd
        output_all = commands.getstatusoutput(cmd)
        output = output_all[1]
        print output
        sentence = output.split('<br>')
        print 'sentence'
        print sentence
        line = sentence[-1][10:]
        print 'line'
    sent_3 = sentiment.get_sentiment(tt_utt)
    sent_2 = 'null'
    sent_1 = 'null'
    theme[str(conv_index)] = random.choice(TopicLib)
    previous_history[str(conv_index)] = ['Hello',tt_utt]
    for turn_id in range(1,10):
        print turn_id
        al_utt = alice.alice(tt_utt)
        conv.append(al_utt)
        f.write('Turn: ' + str(turn_id) +'\n')
        f.write('You: ' + al_utt+'\n')
        next_sent_1 = sent_3
        next_sent_2 = sentiment.get_sentiment(al_utt)
        state = (sent_1,sent_2,sent_3,turn_id)
# here we see if we go into get_response, it happen to be in any of the five strategy, then we select one to excecute. otherwise we stick to the original strategy.
        theme_new, strategy, response,previous_history_new,word2vec = galbackend_online.get_response( None,policy_mode,al_utt, str(conv_index) ,previous_history,theme, oov_state,name_entity_state,short_answer_state,anaphra_state,word2vec_ranking_state,tfidf_state)
        previous_history[str(conv_index)].pop()
        previous_history[str(conv_index)].pop()
        if strategy[-1] in action_list_pass:
            utt_real = response
            conv.append(utt_real)
            next_sent_3 = sentiment.get_sentiment(utt_real)
            q_value = 1000
            action_selected = strategy
        else:
        #action selection portion
            if random.random()<epsilon:
                action_selected = random.choice(action_list)
            else:
                q_value = q_table[(state,action)]
                q_list =[]
#!/usr/bin/etc python

import galbackend_online
import sys
import socket
import time
#socket = None
#sys.path.append("~/nltk_data")
#target = galbackend.GalInterface()
#print(target)
#gt = galbackend.Thread(target=galbackend.GalInterface)
galbackend_online.InitLogging()
galbackend_online.InitResource('v2')
oov_state = 1
name_entity_state = 1
#while(1):
#galbackend.LaunchQueryDebug('can you say that again')
#connection.send('ready')
with open('eval_set.txt') as f:
    lines = f.readlines()
f = open('eval_set_output', 'w')
for line in lines:
    response = galbackend_online.get_response(line, 'user_id', oov_state,
                                              name_entity_state)
    f.write('User: '******'TickTock:' + response + '\n')
    f.write('\n')