Como criar ou configurar um conjunto experimentos

De LCAD
Ir para: navegação, pesquisa

A criação ou configuração de uma tabela (conjunto) de experimentos é feita por meio de um arquivo de configuração, cuja sintaxe é própria. Este arquivo de configuração deve ser salvo no subdiretório de nome "exp_confs", que se encontra dentro do diretório "USER_INTERFACE."

A sintaxe desse tipo de arquivo foi elaborada de forma a flexibilizar ao máximo possível a criação de um conjunto de experimentos. Portanto, é relativamente simples a criação de conjuntos de experimentos, por exemplo, compostos de 10, 20 ou "N" experimentos. Também é relativamente simples definir, de forma flexível, subconjuntos de tamanhos distintos. É importante manter em mente que os experimentos que compõem um certo subconjunto da tabela de experimentos sempre têm características em comum. Características estas relacionadas à fase de geração das tabelas internas ao SCAE necessárias ao subconjunto em questão. Por exemplo, é possível criar um conjunto composto de 30 experimentos, que formam 4 subconjuntos, cujos tamanhos são 10, 8, 6 e 6 experimentos, respectivamente.

Abaixo se encontra o conteúdo de um template desse tipo de arquivo de configuração. IMPORTANTE: recomenda-se fortemente a criação de tabelas de experimentos a partir desse template, que também se encontra no subdiretório "exp_confs".

A título de exemplificação e também para mostrar que a configuração de uma tabela de experimentos é simples de ser feita, o conteúdo do arquivo que configura os experimentos que compõem a "Tabela 1.1.1.1" é exibido no final desta página.

# Ao longo deste arquivo de configuracao sao descritos como especificar cada um de seus parametros.

# OBSERVACOES IMPORTANTES VALIDAS PARA TODO O ARQUIVO:
# 1) Cada atribuicao tem que ser feita em somente uma linha, nao sendo necessario nenhum caracter finalizador de linha.
# 2) Incentiva-se retirar do arquivo de configuracao criado a partir deste arquivo todos os comentarios de instrucao.
# Fazendo isto, eventuais equivocos serao minimizados durante a criacao de arquivos de configuracao posteriores.
# *  => Caso este parametro nao faca sentido para o core em questao, elimine/comente esta linha
# ** => Este parametro eh configurado automaticamente.

# Dados da tabela x.y.z

# Secao onde as configuracoes especificas do core em questao sao realizadas.
CORE_PARAMETERS
	CORE_DIRECTORY_NAME = ### 		# Substitua ### pelo nome do diretorio em que o core se encontra (case-sensitive).
						# Cabe ressaltar que este diretorio tem que se encontrar dentro do diretorio CORES.
						# Exemplo: VS_CORE
	CORE_EXECUTABLE_NAME = ###		# Substitua ### pelo nome do executavel do core (case-sensitive). Este executavel
						# tem que se encontrar dentro do diretorio CORE_DIRECTORY_NAME.
						# Exemplo: vs_core
	CORE_NAME = ###				# Substitua ### pelo nome do core de acordo com o especificado no arquivo ports.cfg.
						# Exemplo: VS
	NL_WIDTH = ###				# Substitua ### pela largura da camada neural, em numero inteiro de neuronios. (*)
	NL_HEIGHT = ###				# Substitua ### pela altura da camada neural, em numero inteiro de neuronios. (*)
	SYNAPSES = ###				# Substitua ### pelo numero de sinapses a ser considerado. (*)
	LEXICON_SIZE = -			# (**)
	IN_WIDTH = -				# (**)
	IN_HEIGHT = -				# (**)
	RECOMPILE = ###				# Substitua ### por "yes" caso seja necessario recompilar o core em questao a cada
						# treinamento. Caso contrário, substitua ## por "no". Se esta recompilacao for necessaria,
						# antes de sua execucao sera invocado um script de configuracao deste core. Esse script
						# tem que ser nomeado de configure e tem que estar no mesmo diretorio onde o core se encontra.
						# Exemplo: yes
	MEMORIES_SUBDIRECTORY_NAME = ###	# Substitua ### pelo nome do subdiretorio onde as memorias de treinamento sao armazenadas
						# (case-sensitive).
						# Exemplo: VECTORS_SPACES
END_CORE_PARAMETERS

# Secao onde as configuracoes especificas de construcoes de tabelas sao realizadas.
# Eh possivel agrupar especificacoes validas para diversas linhas em sequencia em um BUILD_TABLES.
# Tal agrupamento eh realizado com a especificacao dos limites das linhas em sequencia (intervalo fechado).
# IMPORTANTE: é necessário substituir, nos tokens abaixo de nome BUILD_TABLES, os caracteres i, j, k e l pelos limites
# desejados para cada build.
 
# Parametros de BUILD para as linhas de i a j
BUILD_TABLES:i-j

	DICTONARY = ###			# Substitua ### pelo nome do dicionario a ser utilizado nos experimentos da tabela x.y.z. 
					# Lembrando que este tem que estar cadastrado no arquivo known_tables.csv (case-sensitive)
					# Exemplo: DICIONARIO_SUBCLASSE
	
	# Subsecao onde os WORD_VECTORS sao especificados. O numero de WORD_VECTORS que tem que ser especificados eh igual ao
	# numero de tabelas utilizadas nos experimentos cobertos por este BUILD_TABLES (linhas de i a j).
	# Primeiro WORD_VECTORS
	WORD_VECTORS = ###-@@@		# Substitua ### pelo nome da primeira tabela a ser utilizada. A lista de tabelas 
					# disponiveis se encontra no arquivo CORES/DB_CORE/CSV_FILES/known_tables.csv.
					# Substitua @@@ pelo nome de uma coluna codificavel da tabela em questao, listadas em
					# ENCODABLE_COLUMNS no known_tables.csv.
					# Obs: o caracter - (traco) eh necessario.
					# Exemplo: CNAE_110_SUBCLASSE-DESCRICAO_SUB

	# Segundo WORD_VECTORS
	WORD_VECTORS = ###-@@@		# Substitua ### pelo nome da segunda tabela a ser utilizada. A lista de tabelas 
					# disponiveis se encontra no arquivo CORES/DB_CORE/CSV_FILES/known_tables.csv.
					# Substitua @@@ pelo nome de uma coluna codificavel da tabela em questao, listadas em
					# ENCODABLE_COLUMNS no known_tables.csv.
					# Obs: o caracter - (traco) eh necessario.
					# Exemplo: DADOS_VITORIA_SUB_110-OBJETO_SOCIAL
	# Enesimo WORD_VECTORS
	WORD_VECTORS = ###-@@@		# Substitua ### pelo nome da enesima tabela a ser utilizada. A lista de tabelas 
					# disponiveis se encontra no arquivo CORES/DB_CORE/CSV_FILES/known_tables.csv.
					# Obs: o caracter - (traco) eh necessario.
					# Substitua @@@ pelo nome de uma coluna codificavel da tabela em questao, listadas em
					# ENCODABLE_COLUMNS no known_tables.csv.

	LEXICON_MESSAGE = ###		# Substitua ### pela descricao desejada para o lexicon a ser criado.
					# Exemplo: Tudo menos artigo, conjunção, contração, interjeição, preposição e pronome da
					# tabela CNAE 1.1.
					# Obs: Nao se deve utilizar aspas para delimitar o valor deste parametro.

	LEXICON_TABLE = ###-@@@:$:%  	# Substitua ### pelo nome da tabela, de acordo com o especificado no arquivo 
					# CORES/DB_CORE/CSV_FILES/known_tables.csv, a ser utilizada na composicao do lexicon.
					# Substitua @@@ pelo nome da coluna da tabela ###, tambem especificado no 
					# known_tables.csv, a ser utilizada na composicao do lexicon.
					# Substitua $ pelo numero da linha limite inferior da tabela ### a ser considerado.
					# Substitua % pelo numero da linha limite superior da tabela ### a ser considerado.
					# Obs: os caracteres - (traco) e : (dois-pontos) sao necessarios.
					# Exemplo: CNAE_110_SUBCLASSE-DESCRICAO_SUB:0:1182

	CGD = ###			# Substitua ### pela lista de classes gramaticais desconsideradas durante a construcao do lexicon.
					# Obs 1: Nao se deve utilizar aspas para delimitar o valor deste parametro.
					# Obs 2: Os itens desta lista tem que ser separados por um espaco.
					# Obs 3: Cada idem tem que estar em caixa-baixa (tudo em minusculo).
					# Obs 4: As possiveis classes a serem utilizadas para compor esta lista sao: art. (artigo), 
					# conj. (conjuncao), contr. (contracao), interj. (interjeicao), prep. (preposicao) e pron. (pronome).
					# Exemplo: art. prep.

	PFS = ###			# Substitua ### pelo valor limite superior tal que palavras com frequencia acima
					# deste limite serao descartadas quando da criacao do lexicon.

	# Subsecao onde as TTVs sao especificadas. O numero de TTVs que devem ser especificadas eh igual ao numero de tabelas utilizadas
	# nos experimentos cobertos por este BUILD_TABLES (linhas de i a j).
	# Primeira TTV
	BEGIN_TTV
		TTV_NAME = ###				# Substitua ### pelo nome desejado para a TTV a ser criada. Eh importante salientar
							# que eh de boa pratica nomear a TTV de forma a evidenciar suas caracteristicas
							# Exemplo: TTV_C1S_DESC
							# Significa CNAE_110_SUBCLASSE, campo DESCRICAO_SUB

		TTV_TABLE = ###				# Substitua ### pelo nome da tabela a partir da qual a TTV sera criada. Ressalta-se
							# que esta tabela tem que estar cadastrada no arquivo known_tables.csv.
							# Exemplo: CNAE_110_SUBCLASSE

		TTV_TABLE_COLUMNS_QUANTITY = ###	# Substitua ### pela quantidade de colunas codificaveis da tabela TTV_TABLE 
							# a serem consideradas na construcao da TTV.

		# Coluna 1
		TTV_TABLE_COLUMNS = ###			# Substitua ### pelo nome da primeira coluna da tabela TTV_TABLE a ser considerada
							# na construcao da TTV. Eh importante dizer que a primeira coluna a ser considerada
							# nao necessariamente eh a primeira coluna da tabela TTV_TABLE.
							# Exemplo: DESCRICAO_SUB

		# Coluna 2
		TTV_TABLE_COLUMNS = ###			# Substitua ### pelo nome da segunda coluna da tabela TTV_TABLE a ser consideradas
							# na construcao da TTV. Eh importante dizer que a segunda coluna a ser considerada
							# nao necessariamente eh a segunda coluna da tabela TTV_TABLE.
							# Exemplo: CCOMPRE_SUB

		# Coluna n
		TTV_TABLE_COLUMNS = ###			# Substitua ### pelo nome da enesima coluna da tabela TTV_TABLE a ser consideradas
							# na construcao da TTV.

		TTV_BUILD_TYPE = ###			# Substitua ### pelo tipo de metodo para composicao dos vetores. Este valor somente
							# deve ser diferente de DEFAULT quando a classificacao for feita no nivel de descritores
							# (atividades)
							# Exemplo: DEFAULT

		TTV_TERMS_WEIGHT = ###			# Substitua ### pelo nome da função para o cálculo dos pesos dos termos.
							# Exemplo 1: TF
							# Exemplo 2: TFIDF

	END_TTV

	# Segunda TTV
	BEGIN_TTV
		TTV_NAME = ###
		TTV_TABLE = ###
		TTV_TABLE_COLUMNS_QUANTITY = ###

		# Coluna 1
		TTV_TABLE_COLUMNS = ###

		# Coluna 2
		TTV_TABLE_COLUMNS = ###

		TTV_BUILD_TYPE = ###
		TTV_TERMS_WEIGHT = ###
	END_TTV

	# Enesima TTV
	BEGIN_TTV
		TTV_NAME = ###
		TTV_TABLE = ###
		TTV_TABLE_COLUMNS_QUANTITY = ###

		# Coluna 1
		TTV_TABLE_COLUMNS = ###

		# Coluna 2
		TTV_TABLE_COLUMNS = ###

		TTV_BUILD_TYPE = ###
		TTV_TERMS_WEIGHT = ###
	END_TTV

END_BUILD_TABLES

# Parametros de BUILD para as linhas de k a l
BUILD_TABLES:k-l

	DICTONARY = ###
	
	# Subsecao onde os WORD_VECTORS sao especificados. O numero de WORD_VECTORS que tem que ser especificados eh igual ao
	# numero de tabelas utilizadas nos experimentos cobertos por este BUILD_TABLES (linhas de k a l).
	# Primeiro WORD_VECTORS
	WORD_VECTORS = ###-@@@

	# Segundo WORD_VECTORS
	WORD_VECTORS = ###-@@@

	# Enesimo WORD_VECTORS
	WORD_VECTORS = ###-@@@
	
	LEXICON_MESSAGE = ###
	LEXICON_TABLE = ###-@@@:$:%
	CGD = ###
	PFS = ###

	# Subsecao onde as TTVs sao especificadas. O numero de TTVs que devem ser especificadas eh igual ao numero de tabelas utilizadas
	# nos experimentos cobertos por este BUILD_TABLES (linhas de i a j).
	# Primeira TTV
	BEGIN_TTV
		TTV_NAME = ###
		TTV_TABLE = ###
		TTV_TABLE_COLUMNS_QUANTITY = ###

		# Coluna 1
		TTV_TABLE_COLUMNS = ###

		# Coluna 2
		TTV_TABLE_COLUMNS = ###

		TTV_BUILD_TYPE = ###
		TTV_TERMS_WEIGHT = ###
	END_TTV

	# Segunda TTV
	BEGIN_TTV
		TTV_NAME = ###
		TTV_TABLE = ###
		TTV_TABLE_COLUMNS_QUANTITY = ###

		# Coluna 1
		TTV_TABLE_COLUMNS = ###

		# Coluna 2
		TTV_TABLE_COLUMNS = ###

		TTV_BUILD_TYPE = ###
		TTV_TERMS_WEIGHT = ###
	END_TTV

	# Enesima TTV
	BEGIN_TTV
		TTV_NAME = ###
		TTV_TABLE = ###
		TTV_TABLE_COLUMNS_QUANTITY = ###

		# Coluna 1
		TTV_TABLE_COLUMNS = ###

		# Coluna 2
		TTV_TABLE_COLUMNS = ###

		TTV_BUILD_TYPE = ###
		TTV_TERMS_WEIGHT = ###
	END_TTV

END_BUILD_TABLES

# Secao onde as configuracoes especificas de cada linha de experimento da tabela x.y.z sao realizadas.
# Eh possivel especificar uma tabela de experimentos composta por varias linhas. Para tal, especifique 
# tantas LINEs quantas forem necessaria, lembrando de especificar o numero correto em LINEm para cada uma. 
# IMPORTANTE: é necessário substituir, nos tokens abaixo de nome LINE, os caracteres i, j, etc. pelas linhas
# a serem configuradas.

# Parametros da linha i
LINEi
	TRAIN_MESSAGE = ###	# Substitua ### pela descricao desejada para o treinamento desta linha.
				# Exemplo: Treinamento com a TTV_C1S_DESC completa
				# Obs: Nao se deve utilizar aspas para delimitar o valor deste parametro.

	TRAIN_TTV = ### $ %	# Substitua ### pelo nome da TTV utilizada no treinamento desta linha.
				# Substitua $ pelo numero da linha limite inferior da TTV ### a ser considerado.
				# Substitua % pelo numero da linha limite superior da TTV ### a ser considerado.
				# Exemplo: TTV_C1S_DESC 0 1182

	TEST_LEVEL = ###	# Substitua ### pelo nivel desejado de classificacao. É importante ressaltar que
				# o valor para esse parametro tem que estar em caixa-alta (tudo em maiusculo)
				# Exemplos: SUBCLASSE, CLASSE, GRUPO, DIVISAO ou SECAO

	TEST_MESSAGE = ###	# Substitua ### pela descricao desejada para o teste desta linha.
				# Exemplo: Teste com a TTV_C1S_DESC completa
				# Obs: Nao se deve utilizar aspas para delimitar o valor deste parametro.

	TEST_TTV = ### $ %	# Substitua ### pelo nome da TTV utilizada no teste desta linha.
				# Substitua $ pelo numero da linha limite inferior da TTV ### a ser considerado.
				# Substitua % pelo numero da linha limite superior da TTV ### a ser considerado.
				# Exemplo: TTV_C1S_DESC 0 1182
END_LINE

# Parametros da linha linha j
LINEj
	TRAIN_MESSAGE = ###
	TRAIN_TTV = ### $ %
	TEST_LEVEL = ###
	TEST_MESSAGE = ###
	TEST_TTV = ### $ %
END_LINE

END_TABLE

EOF
# Dados da tabela 1.1.1

CORE_PARAMETERS
	CORE_DIRECTORY_NAME = VS_CORE
	CORE_EXECUTABLE_NAME = vs_core
	CORE_NAME = VS
	LEXICON_SIZE = 1358
	IN_WIDTH = 37
	IN_HEIGHT = 37
	RECOMPILE = no
	MEMORIES_SUBDIRECTORY_NAME = VECTORS_SPACES
END_CORE_PARAMETERS

BUILD_TABLES:1-3
	DICTONARY = DICIONARIO_SUBCLASSE

	# Primeiro WORD_VECTORS
	WORD_VECTORS = CNAE_110_SUBCLASSE-DESCRICAO_SUB

	# Segundo WORD_VECTORS
	WORD_VECTORS = DADOS_VITORIA_SUB_110-OBJETO_SOCIAL

	LEXICON_MESSAGE = Tudo da tabela CNAE 1.1, menos artigo, conjuncao, contracao, interjeicao, preposicao e pronome.
	LEXICON_TABLE = CNAE_110_SUBCLASSE-DESCRICAO_SUB:0:1182
	CGD = art. conj. contr. interj. prep. pron.
	PFS = 10000

	# Primeira TTV
	BEGIN_TTV
		TTV_NAME = TTV_C1S_DESC
		TTV_TABLE = CNAE_110_SUBCLASSE
		TTV_TABLE_COLUMNS_QUANTITY = 1
		TTV_TABLE_COLUMNS = DESCRICAO_SUB
		TTV_BUILD_TYPE = DEFAULT
		TTV_TERMS_WEIGHT = TF
	END_TTV

	# Segunda TTV
	BEGIN_TTV
		TTV_NAME = TTV_DVS1_OBJS
		TTV_TABLE = DADOS_VITORIA_SUB_110
		TTV_TABLE_COLUMNS_QUANTITY = 1
		TTV_TABLE_COLUMNS = OBJETO_SOCIAL
		TTV_BUILD_TYPE = DEFAULT
		TTV_TERMS_WEIGHT = TF
	END_TTV
END_BUILD_TABLES

BUILD_TABLES:4-8
	DICTONARY = DICIONARIO_SUBCLASSE

	# Primeiro WORD_VECTORS
	WORD_VECTORS = CNAE_110_SUBCLASSE-DESCRICAO_SUB

	# Segundo WORD_VECTORS
	WORD_VECTORS = DADOS_VITORIA_SUB_110-OBJETO_SOCIAL

	LEXICON_MESSAGE = Tudo da tabela CNAE 1.1, menos artigo, conjuncao, contracao, interjeicao, preposicao e pronome.
	LEXICON_TABLE = CNAE_110_SUBCLASSE-DESCRICAO_SUB:0:1182
	LEXICON_TABLE = DADOS_VITORIA_SUB_110-OBJETO_SOCIAL:0:1639
	CGD = art. conj. contr. interj. prep. pron.
	PFS = 10000

	# Primeira TTV
	BEGIN_TTV
		TTV_NAME = TTV_C1S_DESC
		TTV_TABLE = CNAE_110_SUBCLASSE
		TTV_TABLE_COLUMNS_QUANTITY = 1
		TTV_TABLE_COLUMNS = DESCRICAO_SUB
		TTV_BUILD_TYPE = DEFAULT
		TTV_TERMS_WEIGHT = TF
	END_TTV

	# Segunda TTV
	BEGIN_TTV
		TTV_NAME = TTV_DVS1_OBJS
		TTV_TABLE = DADOS_VITORIA_SUB_110
		TTV_TABLE_COLUMNS_QUANTITY = 1
		TTV_TABLE_COLUMNS = OBJETO_SOCIAL
		TTV_BUILD_TYPE = DEFAULT
		TTV_TERMS_WEIGHT = TF
	END_TTV
END_BUILD_TABLES

# Parametros da linha 1
LINE1
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa (nivel de SUBCLASSE).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TEST_LEVEL = SUBCLASSE
	TEST_MESSAGE = Teste com a TTV_C1S_DESC completa (nivel de SUBCLASSE).
	TEST_TTV = TTV_C1S_DESC 0 1182
END_LINE

# Parametros da linha 2
LINE2
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa (nivel de SUBCLASSE).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TEST_LEVEL = SUBCLASSE
	TEST_MESSAGE = Teste com a TTV_DVS1_OBJS completa (nivel de SUBCLASSE).
	TEST_TTV = TTV_DVS1_OBJS 0 3280
END_LINE

# Parametros da linha 3
LINE3
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa (nivel de SUBCLASSE).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TEST_LEVEL = SUBCLASSE
	TEST_MESSAGE = Teste com a segunda metade da TTV_DVS1_OBJS (nivel de SUBCLASSE).
	TEST_TTV = TTV_DVS1_OBJS 1640 3280
END_LINE

# Parametros da linha 4
LINE4
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa + a primeira metade da TTV_DVS1_OBJS (nivel de SUBCLASSE).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TRAIN_TTV = TTV_DVS1_OBJS 0 1639
	TEST_LEVEL = SUBCLASSE
	TEST_MESSAGE = Teste com a segunda metade da TTV_DVS1_OBJS (nivel de SUBCLASSE).
	TEST_TTV = TTV_DVS1_OBJS 1640 3280
END_LINE

# Parametros da linha 5
LINE5
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa + a primeira metade da TTV_DVS1_OBJS (nivel de CLASSE).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TRAIN_TTV = TTV_DVS1_OBJS 0 1639
	TEST_LEVEL = CLASSE
	TEST_MESSAGE = Teste com a segunda metade da TTV_DVS1_OBJS (nivel de CLASSE).
	TEST_TTV = TTV_DVS1_OBJS 1640 3280
END_LINE

# Parametros da linha 6
LINE6
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa + a primeira metade da TTV_DVS1_OBJS (nivel de GRUPO).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TRAIN_TTV = TTV_DVS1_OBJS 0 1639
	TEST_LEVEL = GRUPO
	TEST_MESSAGE = Teste com a segunda metade da TTV_DVS1_OBJS (nivel de GRUPO).
	TEST_TTV = TTV_DVS1_OBJS 1640 3280
END_LINE

# Parametros da linha 7
LINE7
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa + a primeira metade da TTV_DVS1_OBJS (nivel de DIVISAO).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TRAIN_TTV = TTV_DVS1_OBJS 0 1639
	TEST_LEVEL = DIVISAO
	TEST_MESSAGE = Teste com a segunda metade da TTV_DVS1_OBJS (nivel de DIVISAO).
	TEST_TTV = TTV_DVS1_OBJS 1640 3280
END_LINE

# Parametros da linha 8
LINE8
	TRAIN_MESSAGE = Treinamento com a TTV_C1S_DESC completa + a primeira metade da TTV_DVS1_OBJS (nivel de SECAO).
	TRAIN_TTV = TTV_C1S_DESC 0 1182
	TRAIN_TTV = TTV_DVS1_OBJS 0 1639
	TEST_LEVEL = SECAO
	TEST_MESSAGE = Teste com a segunda metade da TTV_DVS1_OBJS (nivel de SECAO).
	TEST_TTV = TTV_DVS1_OBJS 1640 3280
END_LINE

END_TABLE

EOF