def follow(self, instructions): now = time.time() result = instructions print 'Instructions =', instructions if '-' in instructions: prefix, instructionID = instructions.split('-') else: instructionID = instructions setLogs(instructionID) logger.runComplete('Following %s', instructionID) RunResults = [] for label, step in self.stages: startTime = now logger.stageComplete('Starting %s', label) result, CaughtError, CaughtErrorTxt = step(result, instructionID) if self.NLUQueue: self.NLUQueue.put((label, result)) logger.stageComplete('Ending %s', label) if isinstance(result, list): for rst in result: logger.stageComplete("%r", rst) else: logger.stageComplete('%r', result) now = time.time() logger.info('%s took %d', label, now - startTime) RunResults.append(result) if CaughtError == 'EOFError': return RunResults, CaughtError, CaughtErrorTxt logger.flush() return RunResults, CaughtError, CaughtErrorTxt
def TrainSenseTagger(Pcfg, CFDist): logger.info("Training unigram tagger:") SenseUnigramTagger = UnigramTagger(TAG="SENSE", TEXT="STEM") # SenseUnigramTagger.train(taggedData) SenseUnigramTagger._freqdist = invertConditionalFreqDist(CFDist) SenseDefaultTagger = DefaultTagger("APPEAR", TAG="SENSE", TEXT="STEM") backoff = BackoffTagger([SenseUnigramTagger, SenseDefaultTagger], TAG="SENSE", TEXT="STEM") return backoff
def readCleaned(instructions,instructID): try: text = open('Directions/CleanDirs/Cleaned-'+instructID).read() except: text = '' if not text.strip(): # Does it have non-whitespace characters? return text,'EOFError',EOFError('Empty Instruction Set') for sent in text.split('.'): logger.info(sent) return text,None,''
def TrainSenseTagger(Pcfg,CFDist): logger.info("Training unigram tagger:") SenseUnigramTagger = UnigramTagger(TAG='SENSE',TEXT='STEM') #SenseUnigramTagger.train(taggedData) SenseUnigramTagger._freqdist = invertConditionalFreqDist(CFDist) SenseDefaultTagger = DefaultTagger('APPEAR', TAG='SENSE',TEXT='STEM') backoff = BackoffTagger([SenseUnigramTagger,SenseDefaultTagger], TAG='SENSE',TEXT='STEM') return backoff
def travel(self): self.pomdp.observed = None PrintRobot.travel(self) if not self.pomdp.observed: logger.info('travel observing...') self.pomdp.observe() self.viewCache.update(Front,self.pomdp.observed) logger.info("post travel obs: %r; viewCache: %r", self.pomdp.observed, self.viewCache) return self.pomdp.perform('TravelFwd')
def readCleaned(instructions, instructID): try: text = open('Directions/CleanDirs/Cleaned-' + instructID).read() except: text = '' if not text.strip(): # Does it have non-whitespace characters? return text, 'EOFError', EOFError('Empty Instruction Set') for sent in text.split('.'): logger.info(sent) return text, None, ''
def _execute(self,Actions): for i,action in enumerate(Actions): logger.info('<%d> %s',i,action) if self.NLUQueue: self.NLUQueue.put(('Executing',i)) try: results = action.execute(self.robot) logger.info('<%d> %s => %r', i,action,results) except OverflowWarning,e: logger.warning('<%d> %s => %s', i,action,e) except StopIteration,e: results = e logger.info('<%d> %s => %r', i,action,results) logger.info('End of Instruction Execution after <%d>', i)
def _execute(self,Actions): for i,action in enumerate(Actions): logger.info('<%d> %s',i,action) if self.NLUQueue: self.NLUQueue.put(('Executing',i)) try: results = action.execute(self.robot) logger.info('<%d> %s => %r', i,action,results) except Warning,e: logger.warning('<%d> %s => %s', i,action,e) except StopIteration,e: results = e logger.info('<%d> %s => %r', i,action,results) logger.info('End of Instruction Execution after <%d>', i)
def executeRoute(self, Actions): action = "Observe" self.robot.teleport(self.robot.currentState) while (action != "Stop" or action != "DeclareGoal"): for i, action in enumerate(Actions): if dynamic and self.checkQueue(): break logger.info('<%d> %s', i, action) if self.StatusQueue: self.StatusQueue.put(('Executing', i)) try: results = self.robot.perform(action) #self.robot.perform("Observe") logger.info('<%d> %s => %r', i, action, results) except StopIteration, e: results = e logger.info('<%d> %s => %r', i, action, results) logger.info('End of Instruction Execution after <%d>', i)
def teleport(self,pose): logger.info('Teleporting to %r.', pose)
def pose(self,pose): logger.info('At pose %r.', pose)
def setRoute(self,Start,Dest): logger.info('Initializing route from %r to %r', Start,Dest) self.completed = False
def declareGoal(self): logger.info('Declaring at the goal.')
def recognize(self,description,sim = False): logger.info('Recognizing %r.', description) if sim: match = random.choice((True,False)) logger.info('%r was%r recognized', match and ' ' or ' not') return match
def travel(self): logger.info('Traveling forward.')
def turn(self,direction): logger.info('Turning %r.', direction)
def readCorrParse(text, instructID, path='Directions/CorrFullTrees/'): parses = open(path+'FullTree-'+instructID).read() logger.info("%r",parses) return parses,None,''
def readCorrParse(text, instructID, path='Directions/CorrFullTrees/'): parses = open(path + 'FullTree-' + instructID).read() logger.info("%r", parses) return parses, None, ''
def recognize(self,description): PrintRobot.recognize(self,description) if not self.pomdp.observed: logger.info('recognize observing...') self.pomdp.observe() logger.info('Observed %r',self.pomdp.observed) self.viewCache.update(At,self.pomdp.observed) for desc in description: logger.info('.....Examining %s\n.....for %r', self.pomdp.observed, desc) if self.NLUQueue: self.NLUQueue.put(('Recognize', repr(desc))) turnDir,descSide = self.getLookTurn(desc) match = self.recognizer.recDesc(desc, self.viewCache) self.turnBack(turnDir,descSide) if not match: logger.info('.....Did NOT recognize %r',desc) return False logger.info('.....Recognized %r',desc) logger.info('.....Recognized entire description!') return True