Iterator.py 1.24 KB
#!/usr/bin/python
# -*- coding: utf-8 -*-

#Autor: Erickson Silva 
#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>

#LAViD - Laboratório de Aplicações de Vídeo Digital

class Iterator(object):
	"""Classe para iterar sobre as tuplas (palavra,etiqueta) após análise morfologica"""

	def init(self):	
		self.count = -1
		
	def load(self, lista):
		self.reset()
		self.list = list(lista);
		self.size = len(lista)

	def reset(self):
		self.count = -1

	def get_size(self):
		return self.size

	def get_count(self):
		return self.count

	def get_token(self, i=None):
		if(i != None):
			return self.list[self.count+(i)]
		return self.list[self.count]

	def get_word(self):
		return self.get_token()[0]

	def get_ticket(self):
		return self.get_token()[1]

	def get_next_word(self):
		return self.get_token(1)[0]

	def get_next_ticket(self):
		return self.get_token(1)[1]		

	def get_prev_word(self):
		return self.get_token(-1)[0]

	def get_prev_ticket(self):
		return self.get_token(-1)[1]

	def get_interval(self, n):
		if self.count+n > self.size:
			raise IndexError
		return self.list[self.count:self.count+n]

	def skip(self, n):
		self.count += n

	def has_next(self):
		if(self.count < self.size-1):
			self.count += 1
			return True
		return False