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
Ejemplo n.º 2
0
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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 17
0
def readCorrParse(text, instructID, path='Directions/CorrFullTrees/'):
    parses = open(path+'FullTree-'+instructID).read()
    logger.info("%r",parses)
    return parses,None,''
Ejemplo n.º 18
0
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