def main(): english = English() idiolect = Idiolect() loader = ArgLoader() fn = 'tests/english.yaml' ee = yaml.load(open(fn)) for e in ee: text = e['text'] print print text structure = e['structure'] dsen = DeepSentence.load(structure, loader) new_structure = dsen.dump() assert structure == new_structure new_text = english.say(dsen, idiolect) assert text == new_text ss = [] recog = english.recognize(unicode(text)) assert recog.dsens for dsen in recog.dsens: ss.append(json.dumps(dsen.dump(), sort_keys=True, indent=4)) s = json.dumps(new_structure, sort_keys=True, indent=4)
def __init__(self, verbose=True): # Static state. self.english = English() # Dynamic state. self.reset() self.verbose = verbose
class PhilosophicalZombie(Agent): def __init__(self, verbose=True): # Static state. self.english = English() # Dynamic state. self.reset() self.verbose = verbose def reset(self): self.mind = Mind() self.self_uid = self.mind.new_user() def new_user(self): return self.mind.new_user() def put(self, from_uid, text): recog = self.english.recognize(text, verbose=self.verbose) delib = Deliberation(recog) if not delib.recognized.dsens: return delib for dsen in delib.recognized.dsens: r = self.mind.overhear(dsen, [from_uid], [self.self_uid]) # Returns None if it rejected the input dsen. if not r: continue # Else, r.out contains the output, which may be None. # if r.out: # delib.out = self.english.say(r.out) delib.out = r.text return delib # Enable this assert to require everything to be understood by the # system, including funky parses. Useful for development. # assert delib.out is not None return delib