예제 #1
0
    def extractSubEps(self,prefix):
        '''
        extract sub episodes of this episode recursively.
		'''
        sub_epsset = EpisodeSet([])  
        if prefix.length == 0:
            for i in range(self.length):
               pfx = [ self.events[i] ]
               pep = SerialEpisode(pfx) # prefix episode  
               #print pep.repr
               sub_epsset.add(pep) 
               #sub_eps[pep.repr] = sub_eps[pep.repr]+1 if sub_eps.has_key(pep.repr) else 1 
               sep = SerialEpisode(self.events[i+1:self.length]) # suffix episodes
               sub_epsset.merge(sep.extractSubEps(pep))
        else: 
            for i in range(self.length):
               pfx = copy.deepcopy(prefix.events)
               pfx.extend([ self.events[i] ])   
               pep = SerialEpisode(pfx) # prefix episode  
               #print pep.repr
               sub_epsset.add(pep) 
               #sub_eps[pep.repr] = sub_eps[pep.repr]+1 if sub_eps.has_key(pep.repr) else 1 
               sep = SerialEpisode(self.events[i+1:self.length]) # suffix episodes
               sub_epsset.merge(sep.extractSubEps(pep))
        return sub_epsset
예제 #2
0
    def extractSubEps(self, prefix):
        '''
        extract sub episodes of this episode recursively.
		'''
        sub_epsset = EpisodeSet([])
        if prefix.length == 0:
            for i in range(self.length):
                pfx = [self.events[i]]
                pep = SerialEpisode(pfx)  # prefix episode
                #print pep.repr
                sub_epsset.add(pep)
                #sub_eps[pep.repr] = sub_eps[pep.repr]+1 if sub_eps.has_key(pep.repr) else 1
                sep = SerialEpisode(
                    self.events[i + 1:self.length])  # suffix episodes
                sub_epsset.merge(sep.extractSubEps(pep))
        else:
            for i in range(self.length):
                pfx = copy.deepcopy(prefix.events)
                pfx.extend([self.events[i]])
                pep = SerialEpisode(pfx)  # prefix episode
                #print pep.repr
                sub_epsset.add(pep)
                #sub_eps[pep.repr] = sub_eps[pep.repr]+1 if sub_eps.has_key(pep.repr) else 1
                sep = SerialEpisode(
                    self.events[i + 1:self.length])  # suffix episodes
                sub_epsset.merge(sep.extractSubEps(pep))
        return sub_epsset