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
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