Mudanças entre as edições de "Manual do SCAE - Relato 3"

De LCAD
Ir para: navegação, pesquisa
(Tutorial sobre o SCAE)
 
(28 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
__TOC__
 
__TOC__
 +
[[category:SCAE]]
  
 
==Introdução==
 
==Introdução==
Este manual visa explicar como utilizar o SCAE, desde sua instalação até sua utilização.
 
 
==Tutorial sobre o SCAE==
 
===Introdução===
 
 
O Sistema de Codificação Automática de Atividades Econômicas (SCAE) possui a arquitetura mostrada na Figura 1. A interface de usuário com o Sistema é um navegador Internet (browser), que se comunica com o módulo Servidor de
 
O Sistema de Codificação Automática de Atividades Econômicas (SCAE) possui a arquitetura mostrada na Figura 1. A interface de usuário com o Sistema é um navegador Internet (browser), que se comunica com o módulo Servidor de
 
Aplicação (SA) do SCAE. Este módulo, por sua vez, se comunica com os outros dois módulos do SCAE: Core e Banco de Dados (BD).  
 
Aplicação (SA) do SCAE. Este módulo, por sua vez, se comunica com os outros dois módulos do SCAE: Core e Banco de Dados (BD).  
  
[[imagem:arquitetura_do_scae.jpg|frame|right|130px|Figura 1: Arquitetura do SCAE]]
+
[[imagem:Arquitetura do scae v3.JPG|frame|center|130px|Figura 1: Arquitetura do SCAE]]
  
Em uma solicitação de classificação de atividade econômica, o usuário, por meio da interface, envia ao SA uma descrição de atividade econômica. O SA, por sua vez, envia esta descrição ao Core, que a classifica e retorna códigos CNAE e medidas de confiança quanto às associações destes códigos com a descrição de atividade econômica recebida. De posse dos códigos CNAE, o SA requisita ao BD seus textos associado (descritores).  
+
Em uma solicitação de classificação de atividade econômica, o usuário, por meio da interface (via Web), envia ao SA uma descrição de atividade econômica. O SA, por sua vez, envia esta descrição ao Core, que a classifica e retorna códigos CNAE e medidas de confiança quanto às associações destes códigos com a descrição de atividade econômica recebida. De posse dos códigos CNAE, o SA requisita ao BD seus textos associado (descritores).  
  
 
O Core também se comunica com o módulo BD, que é responsável por armazenar todo o conhecimento do SCAE (dicionário eletrônico; representação, interna ao Sistema, da tabela CNAE e das descrições de atividades econômicas usadas em treinamento; etc.). Além de realizar a classificação, o Core manipula as tabelas do Sistema (cria, insere dados, remove dados, etc.) armazenadas em BD. Diferentes submódulos do Core são responsáveis por esta manipulação. O SA está sendo desenvolvido em PHP, o BD em C, e o Core em C, Perl e Java.
 
O Core também se comunica com o módulo BD, que é responsável por armazenar todo o conhecimento do SCAE (dicionário eletrônico; representação, interna ao Sistema, da tabela CNAE e das descrições de atividades econômicas usadas em treinamento; etc.). Além de realizar a classificação, o Core manipula as tabelas do Sistema (cria, insere dados, remove dados, etc.) armazenadas em BD. Diferentes submódulos do Core são responsáveis por esta manipulação. O SA está sendo desenvolvido em PHP, o BD em C, e o Core em C, Perl e Java.
  
===Instalação===
+
==Instalação==
Bibliotecas necessárias:
+
=== Preparando o ambiente para Instalação do SCAE ===
* w3c-libwww
+
A preparação do ambiente para instalação do SCAE consiste basicamente na instalação e configuração das bibliotecas que este necessita. A seguir, são listadas as bibliotecas e os passos necessários para sua instalação.
* w3c-libwww-devel
 
* xmlrpc-c
 
* xmlrpc-c-devel
 
* xforms
 
* xforms-devel
 
* freeglut
 
* freeglut-devel
 
* libnet-devel
 
* byacc
 
* MAE
 
 
 
Verifique se as bibliotecas w3c-libwww e xmlrpc-c estão instaladas com os comandos (se elas não estiverem instaladas, estes comandos as instalarão):
 
yum install w3c-libwww
 
yum install w3c-libwww-devel
 
yum install xmlrpc-c
 
yum install xmlrpc-c-devel
 
 
 
====Instalação do corretor ortográfico====
 
 
 
Antes de compilar o DB_CORE, é necessário instalar as bibliotecas do corretor ortográfico do SCAE. Para isso, siga os passos abaixo:
 
 
 
1 - Entre no diretório DB_CORE/SPELLER/scaeaspell-0.60.5/ e digite:
 
./configure
 
make
 
 
 
2 - Inclua no arquivo .bashrc no seu home o caminho das bibliotecas do Aspell:
 
#SCAE SPELLER
 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/scae/code/CORES/DB_CORE/SPELLER/scaeaspell-0.60.5/.libs
 
export LD_LIBRARY_PATH
 
 
 
3 - Atualize as variáveis de ambiente:
 
source .bashrc
 
  
Agora, o DB_CORE está pronto para ser compilado.
+
==== Bibliotecas instaláveis a partir do YUM ====
 +
:* w3c-libwww
 +
:* w3c-libwww-devel
 +
:* xmlrpc-c
 +
:* xmlrpc-c-devel
 +
:* xforms
 +
:* xforms-devel
 +
:* freeglut
 +
:* freeglut-devel
 +
:* libnet-devel
 +
:* byacc
 +
:* httpd
 +
:* php
  
==== Compilando e Executando o BD ====
+
Efetue login como usuário root e entre com o comando a seguir para instalar as bibliotecas a partir do yum. Note que caso alguma delas já esteja instalada, o yum cuidará para que esta não seja instalada novamente e, caso alguma delas necessite de outra(s), o yum cuidará de instalar tais dependências.
Antes de compilar o DB_CORE é necessário seguir os passos abaixo (como '''root'''):
+
{Responda "y" quando for perguntado '''"Is this ok [y/N]:"'''.}
  
Por default, o Fedora Core 6 vem com um Java antigo instalado, então você precisa instalar a versão mais nova do Java Runtime Environment para desfrutar de todas as suas funcionalidades. Abaixo, nós o ensinaremos a instalar/atualizar seu Java Environment.
+
yum install -y w3c-libwww w3c-libwww-devel xmlrpc-c xmlrpc-c-devel xforms xforms-devel freeglut freeglut-devel libnet-devel byacc httpd php
  
O primeiro passo é realizar o dowload daqui [https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u4-b-oth-JPR@CDS-CDS_Developer]. Você precisará aceitar a licença e selecionar '''linux''' como plataforma.
+
====  Bibliotecas instaláveis a partir do CD ====
Após clicar em ''continue'', um nova página será aberta, na qual você deverá selecionar o arquivo .bin de nome '''jdk-6u4-linux-i586.bin'''. Após a seleção o download será iniciado.
+
===== JDK =====
 +
Copie o arquvio para o /opt:
 +
  cp /media/SCAE/libs/jdk/jdk-6u4-linux-i586.bin /opt
  
Mova o arquvio para o /opt:
+
Transforme este arquivo em um executável:
  mv jdk-6u4-linux-i586.bin /opt
+
chmod +x /opt/jdk-6u4-linux-i586.bin
  
Transforme este arquivo em um executável
+
Instale o pacote com o comando a seguir:
  chmod +x jdk-6u4-linux-i586.bin
+
  cd /opt; ./jdk-6u4-linux-i586.bin ; ln -s jdk1.6.0_04 jdk-latest
  
Execute o .bin com o seguinte comando:
+
A licença do pacote será exibida (aperte a tecla de espaço para passar cada tela) e em seguida você será perguntado se concorda com ela. Responda 'yes' para dar início a instalação.
./jdk-6u4-linux-i586.bin
+
Em seguida, Copie o de configuração a seguir com o seguinte comando, que também o torna executável:
 
+
  cp /media/SCAE/libs/jdk/java.sh /etc/profile.d/ ; chmod +x /etc/profile.d/java.sh
Você será perguntado, novamente, se concordar com os termos da licença, aperte espaço até aparecer a pergunta se concorda ou não. Digite yes e a extração começará.
 
 
 
Crie o seguinte arquivo com seu editor de texto preferido:
 
 
 
  vim /etc/profile.d/java.sh
 
chmod +x /etc/profile.d/java.sh
 
 
 
Agora cole as seguintes opções no arquivo. Lembre-se do carriage return depois destas linhas, então salve-o:
 
 
 
export JAVA_HOME=/opt/jdk1.6.0_04
 
export PATH=$JAVA_HOME/bin:$PATH
 
  
 
Agora execute o seguinte comando para tornar o arquivo disponível:
 
Agora execute o seguinte comando para tornar o arquivo disponível:
 
 
  source /etc/profile.d/java.sh
 
  source /etc/profile.d/java.sh
  
Então execute o seguinte comando para ver se o path está correto:
+
Então execute o seguinte comando para verificar se o path está correto:
 
 
 
  which java
 
  which java
  
Você deverá ver algo como:  
+
Você deverá obter algo como:  
  /opt/jdk1.6.0_04/bin/java
+
  /opt/jdk-latest/bin/java
  
 
Agora execute os seguintes comandos:
 
Agora execute os seguintes comandos:
 
 
  /usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_04/bin/java 2
 
  /usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_04/bin/java 2
 
  /usr/sbin/alternatives --config java
 
  /usr/sbin/alternatives --config java
  
Após ter inserido o último comando, você será perguntado sobre o tipo de Java que deseja para o sistema. Pressione 2 e aperte enter.
+
Após ter inserido o último comando, você será perguntado sobre o tipo de Java que deseja para o sistema. Pressione 2(A opção que indica o JDK 1.6.0_04) e aperte enter.
 
 
Para ver a versão do seu Java Runtime Environment, execute:
 
  
 +
Para confirmar a versão do seu Java Runtime Environment, execute:
 
  java -version
 
  java -version
  
 
A saída esperada é:
 
A saída esperada é:
 
 
  java version "1.6.0_04"
 
  java version "1.6.0_04"
 
  Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
 
  Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
 
  Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharin
 
  Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharin
  
Por último, adicione as seguintes linhas ao arquivo .bashrc no seu home
+
Por último, adicione as seguintes linhas ao seu arquivo .bashrc no seu diretório home
 
  #JAVA
 
  #JAVA
 
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/i386
 
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/i386
Linha 117: Linha 80:
 
  export LD_LIBRARY_PATH
 
  export LD_LIBRARY_PATH
  
Agora o DB_CORE pode ser compilado com sucesso.
+
===== MAE =====
 
+
Como root, extraia a MAE para o /opt com o comando a seguir:
Compile o BD (Figura 1) executando os seguintes comandos:
+
  cd /opt; tar -zxvf /media/SCAE/libs/MAE/MAE.tgz
 
 
cd code/CORES/DB_CORE
 
make clean
 
make
 
 
 
Estes comandos vão criar o executável db_core no diretório code/CORES/DB_CORE. Este arquivo, quando executado, será um [http://pt.wikipedia.org/wiki/Daemon_(aplicativo_para_computadores) daemon] que implementa o BD.
 
 
 
===== CRIAÇÃO DE TABELAS =====
 
Após compilado, podemos utilizar o db_core para criar um conjunto básico de tabelas que permitem demonstrar as funcionalidades do SCAE (assuma sempre que o diretório corrente é o último especificado por um comando cd). Executemos, por exemplo, o script abaixo:
 
  ./build_tables_subclasse_110_tf.bat
 
 
 
A saída deste comando deve ser:
 
Locale set to pt_BR.UTF-8.
 
Loading known tables from .csv
 
Number of known tables = 18
 
Creating KNOWN_LEXICONS_saved.csv file.
 
Creating KNOWN_TTVS_saved.csv file.
 
Creating KNOWN_TRAININGS_saved.csv file.
 
Creating KNOWN_TESTS_saved.csv file.
 
Loading dictionary .csv
 
Number of dictionary words = 1212255
 
Number of distincts words = 843235
 
Loading cnae subclasses .csv
 
Number of CNAE-Subclasses = 1183
 
Loading dados 'CSV_FILES/dados_vitoria_110.csv'
 
Number of economic activities descriptions = 14204
 
Number of distinct economic activities descriptions = 3281
 
Loading dados 'CSV_FILES/dados_bh_110.csv'
 
Number of economic activities descriptions = 175770
 
Number of distinct economic activities descriptions = 87999
 
Lexicon size = 1356. Number of words discarded due to word frequency (PFS) = 0.
 
  
===== CRIAÇÃO DE DICIONÁRIOS A PARTIR DE FILTROS =====
+
Compile a MAE com o comando a seguir:
 
+
  cd /opt/MAE; make clean; make -f Makefile.no_interface; cd
O DB_CORE permite que você construa dicionários filtrados a partir de tabelas (CNAE e/oui dados) ou a partir de um dicionário preexistente. Abaixo, descreveremos dois scripts que geram tais dicionários.
 
 
 
====== Criando um dicionário a partir de tabelas ======
 
O script abaixo usa o db_core para criar um dicionário filtrado a partir de: um filtro especificado, opções de filtragem e tabelas (CNAE e/ou dados):
 
./build_filtered_dictionary_from_tables.bat
 
 
 
Este script contém as seguintes linhas:
 
 
 
./db_core \
 
load_csv_cnae_subclasse CNAE_110_SUBCLASSE \
 
load_csv_dados DADOS_VITORIA_SUB_110 \
 
create_filtered_dictionary DICIONARIO_STOP_STEMM_ACCENT 1 "STOP + STEMM + ACCENT" 2 CNAE_110_SUBCLASSE-DESCRICAO_SUB DADOS_VITORIA_SUB_110-OBJETO_SOCIAL
 
 
 
''DICIONARIO_STOP_STEMM_ACCENT'' é o nome do dicionário a ser criado. Este diconário será automaticamente inserido na Known_tables. O número 1 especifica que o filtro utilizará o stemmizador da Maria Abadia Lacerda Dias (mald@univates.br) (2 especifica que o filtro utilzará o stemmizador do Patraick Marques Cirelli). O texto entre aspas especifica as filtragens a serem adotadas (STOP = sem ''stop-words'', STEMM = realiza stemming e ACCENTE = retira acento). O número 2, no exemplo, especifica a quantidade de tabelas que serão utilizadas para constrir o dicionário filtrado.
 
 
 
====== Criando um dicionário a partir de outro dicionário ======
 
O script abaixo usa o db_core para criar um dicionário filtrado a partir de: um filtro especificado, opções de filtragem e um dicionário preexistente.
 
./build_filtered_dictionary_from_dictionary.bat
 
 
 
Este script contém as seguintes linhas:
 
 
 
./db_core \
 
load_dictionary DICIONARIO \
 
create_filtered_dictionary_from_dictionary DICIONARIO_FILTERED_VERSION 1 "STEMM + STOP + ACCENT" DICIONARIO
 
 
 
''DICIONARIO_FILTERED_VERSION'' é o nome do dicionário a ser criado. Este diconário será automaticamente inserido na Known_tables. O número 1 especifica que o filtro utilizará o stemmizador da Maria Abadia Lacerda Dias (mald@univates.br) (2 especifica que o filtro utilzará o stemmizador do Patraick Marques Cirelli). O texto entre aspas especifica as filtragens a serem adotadas (STOP = sem ''stop-words'', STEMM = realiza stemming e ACCENTE = retira acento). O último parâmetro, DICIONARIO, especifica o nome do dicionário que servirá de base para a construção do novo.
 
 
 
===== Execuntando o DB_CORE SERVER =====
 
 
 
Após ter criado todas as tabelas de interesse, você pode colocar o daemon db_core em operação com o comando:
 
nohup ./db_core init_server ports.cfg&
 
 
 
Mensagens de erro geradas pelo db_core serão gravadas no arquivo nohup.out, conforme mensagem mostrada após a execução do comando acima (''nohup: ignoring input and appending output to nohup.out''). Com a execução deste comando, o BD da Figura 1 estará em operação. As tabelas mantidas por este banco de dados são necessárias para a operação do SCAE serão carregadas conforme demandadas pelo SCAE. Para interromper o db_core, descubra o seu PID com o comando:
 
ps -A | grep db_core
 
 
 
e ''kill'' o db_core com o comando
 
kill -9 PID (onde PID é o número do processo informado pelo comando ps)
 
 
 
==== Compilando a Biblioteca Compartilhada de Comunicação (shared) ====
 
Antes de compilar e executar um CORE, é necessário garantir que a biblioteca compartilhada de comunicação esteja compilada e que sua variável de ambiente esteja setada. Para isto, siga os passos a seguir:
 
 
 
  cd code/CORES/shared
 
make clean
 
make
 
 
 
Em seguida, insira as seguintes linhas ao seu .bashrc (localizado no seu diretório home):
 
<nowiki>#</nowiki> SHARED
 
export SHAREDHOME=$HOME/code/CORES/shared
 
 
 
==== Compilando a Biblioteca Compartilhada MAE ====
 
Antes de compilar a MAE e os CORES WNN_CORE e WNN_COR_CORE, são necessárias algumas bibliotecas, que podem ser instaladas com os comandos abaixo (você precisa ser root para executar o yum):
 
yum install xforms xforms-devel freeglut freeglut-devel libnet-devel byacc
 
 
 
Para compilar a MAE vá para o seu diretório raiz e digite os comandos:
 
make clean
 
make –f Makefile.no_interface
 
  
 
Em seguida, insira as seguintes linhas ao seu .bashrc (localizado no seu diretório home):  
 
Em seguida, insira as seguintes linhas ao seu .bashrc (localizado no seu diretório home):  
 
  <nowiki>#</nowiki> MAE  
 
  <nowiki>#</nowiki> MAE  
  export MAEHOME=$HOME/PATH/MAE
+
  export MAEHOME=/opt/MAE
 
  PATH=$PATH:$MAEHOME/bin
 
  PATH=$PATH:$MAEHOME/bin
  
==== Compilando e Executando o VS_CORE ====
+
===== Configuração do corretor ortográfico =====
O Core da Figura 1, na verdade, pode ser composto por um ou mais classificadores. Na versão atual do SCAE, três classificadores estão disponíveis: VS_CORE WNN_CORE e WNN_COR_CORE. O ''Vector Space'' (VS)_Core emprega a técnica de mesmo nome para classificar (na verdade, categorizar) texto, enquanto que o ''Weightless Neural Network'' (WNN)_Core e o ''Weightless Neural Network Correlate'' (WNN_COR)_Core empregam redes neurais sem peso (do tipo ''Virtual Generalizing Ramdon Access Memory'' - VG-RAM) para o mesmo fim. Mais detalhes sobre como estas técnicas podem ser usadas para categorizar objetos sociais de empresas (atividades econômicas) segunda a tabela de Classificação Nacional de Atividades Econômicas (CNAE) podem ser encontrados no trabalho [[:Imagem:souza_vg-ram-3.pdf|De Souza, A. F.; Pedroni, F.; OLIVEIRA, E.; Ciarelli, P. M.; Henrique, W. F.; Veronese, L. . Automated Free Text Classification of Economic Activities using VG-RAM Weightless Neural Networks. International Conference on Intelligent Systems Design and Applications (ISDA), 2007, Rio de Janeiro. Proceedings of ISDA, 2007.]].
+
Para configurar o corretor ortográfico do SCAE, inclua no arquivo .bashrc no seu home o caminho das bibliotecas do dicionário:
 +
#SCAE SPELLER
 +
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/relato3/CORES/DB_CORE/SPELLER/scaeaspell-0.60.5/.libs
 +
export LD_LIBRARY_PATH
  
Para compilar o VS_CORE, volte para o seu diretório raiz e digite os comandos:
+
Não se esqueça de atualizar as variáveis de ambiente em todos os terminais abertos com o comando:
  cd code/CORES/VS_CORE
+
  source .bashrc
make clean
 
make
 
  
Estes comandos vão criar o executável vs_core no diretório code/CORES/VS_CORE. Este executável é um daemon que implementa o Core que classifica segundo a técnica VS. Para colocá-lo em operação, digite:
 
nohup ./vs_core&
 
  
Com o comando acima, parte do Core da Figura 1 estará em operação. Para interromper o vs_core, descubra o seu PID com o comando:
+
=== Instalando o SCAE ===
  ps -A | grep vs_core
+
==== Instalando os Classificadores ====
 +
Ainda como root, copie o SCAE para o diretório root com o comando:
 +
  cp -r /media/SCAE/relato3 /root
  
e ''kill'' o vs_core com o comando
+
Em seguida, basta executar os comandos:
kill -9 PID (onde PID é o número do processo informado pelo comando ps)
+
  cd /root/relato3/CORES
 
+
  ./configure
==== Compilando e Executando o WNN_CORE ====
 
Antes de compilar o WNN_CORE você já deveria ter compilado a biblioteca MAE
 
 
 
Para compilar o WNN_CORE volte para o seu diretório raiz e digite os comandos:
 
  cd code/CORES/WNN_CORE
 
  make clean
 
 
  make
 
  make
 +
make install
 +
make train
  
Estes comandos vão criar o executável wnn_core no diretório code/CORES/WNN_CORE. Este executável é um daemon que implementa o Core que classifica texto usando VG-RAM WNN. Para colocá-lo em operação, digite:
+
==== Instalando a Interface Web ====
nohup ./wnn_core&
 
  
Com o comando acima, uma segunda parte do Core da Figura 1 estará em operação. Para interromper o wnn_core descubra o seu PID com o comando:
+
[[imagem:Scae classificacao.JPG|frame|right|250px|Figura 2: SCAE]]
ps -A | grep wnn_core
 
  
e ''kill'' o wnn_core com o comando
+
Configure o servidor Apache para inicializar durante o ''boot'' da máquina:
  kill -9 PID (onde PID é o número do processo informado pelo comando ps)
+
  chkconfig --level 5 httpd on
  
==== Compilando e Executando o WNN_COR_CORE ====
+
Caso o Apache não esteja ativo, inicialize-o com o comando:
Antes de compilar o WNN_COR_CORE você já deveria ter compilado a biblioteca MAE
+
/etc/init.d/httpd restart
  
Para compilar o WNN_COR_CORE volte para o seu diretório raiz e digite os comandos:
+
Copie todo o conteúdo do diretório relato3/scaeweb para /var/www/html/:
cd code/CORES/WNN_COR_CORE
 
make clean
 
make
 
 
 
Estes comandos vão criar o executável wnn_cor_core no diretório code/CORES/WNN_COR_CORE. Este executável é um daemon que implementa o Core que classifica texto usando VG-RAM WNN. Para colocá-lo em operação, digite:
 
nohup ./wnn_cor_core&
 
 
 
Com o comando acima, uma segunda parte do Core da Figura 1 estará em operação. Para interromper o wnn_cor_core descubra o seu PID com o comando:
 
ps -A | grep wnn_cor_core
 
 
 
e ''kill'' o wnn_cor_core com o comando
 
kill -9 PID (onde PID é o número do processo informado pelo comando ps)
 
 
 
==== Configurando o SA ====
 
Com os deamons db_core, vs_core e class_cnae em operação, é possível examinar todas as funcionalidades do SCAE por meio de um browser, graças ao seu Servidor de Aplicação (SA) (ver Figura 1). O SA foi implementado em PHP e seu código fica no diretório code/scaeweb. Para acessá-lo através de um browser, ele precisa ser "servido" por um servidor http, como o Apache, por exemplo. Se você está instalando o SCAE em uma máquina ''stand alone'', você pode instalar o apache e o php com o comando (você precisa ser root para usar o yum):
 
yum install apache php
 
 
 
Para que o apache sirva o SA, coloque um link simbólico do diretório scaeweb para o diretório raiz de páginas http do Apache (você precisa ser root para escrever no diretório raiz do Apache):
 
ln -s code/scaeweb /var/www/html/scaeweb
 
 
 
Além disso, vc precisa garantir que o caminho até o diretório code/scaeweb tenha permissão de leitura. Para isto basta adicionar essas permissões com o comando chmod.
 
Por exemplo, caso seu diretório seja /home/usuario:
 
cd /home
 
chmod +r+x usuario
 
 
 
Você pode então acessar o SCAE com um browser em sua máquina na URL: http://127.0.0.1/scaeweb
 
 
 
Seu browser deve mostrar a imagem da Figura 2. Caso ela não apareça, você tem problemas de configuração no Apache ou PHP. Neste caso, se a mensagem do browser indicar que você não tem permissão de acesso ao diretório scaeweb, experimente copiar todo o conteúdo do diretório code/scaeweb para /var/www/html/:
 
rm /var/www/html/scaeweb
 
 
  cp -r code/scaeweb /var/www/html
 
  cp -r code/scaeweb /var/www/html
  
Caso o Apache funcione exibindo o conteúdo da página mas não consiga interpretar o php, experiemnte reiniciá-lo:
+
Altere o usuário e o grupo do diretório scaweb para o usuário do Apache. Por padrão, o usuário e o grupo do servidor Apache 2.2.3, que já vem com o Fedora Core 6, é apache e apache, respectivamente:
  /etc/init.d/httpd restart
+
  chwon apache:apache /var/www/html/scaeweb -R
 
 
[[imagem:Scae classificacao.JPG|frame|right|250px|Figura 2: SCAE]]
 
  
Se funcionar, experimente voltar à solução com o link simbólico e reduzir o nível de segurança do SELinux (''Security-Enhanced Linux'') com a ferramenta Sistema->SELinux Management. Mude ''System Default Enforcing Mode'' e ''Current Enforcing Mode'' para ''Permissive''. Se funcionar, o SELinux não permite que o Apache (httpd) acesse diretórios de usuário via links simbólicos (e possivelmente muitos outros diretórios). Neste caso, fique com a cópia de scaeweb no /var/www/http, ou deixe o SELinux como indicado acima, ou configure o SELinux para permitir que o Apache acesse links simbólicos.
+
Você pode então acessar o SCAE com um browser pela URL: http://127.0.0.1/scaeweb.  
  
Se a redução do nível de segurança do SELinux funcionar, o Apache pode não estar configurado para permitir o seu próprio acesso a links simbólicos. Neste caso, consulte a documentação do Apache sobre o assunto na Internet. O problema pode estar, também, no PHP.
+
Seu browser deve mostrar a imagem da Figura 2. Caso ela não apareça, há problemas de configuração no Apache ou PHP.
  
Se você conseguir ver a Figura 2 no seu browser, o SCAE está pronto para operar (desde que também estejam rodando o DB_CORE e ao menos um core categorizador). Neste ponto, já é possível utilizar a interface para administrar o Sistema. Siga pelo link de Administração para treinar o categorizador desejado e ter a possibilidade de efetuar categorizações. Para maiores detalhes, remeta-se a seção [[Manual_do_SCAE#Utilizando_a_interface_Web|Utilizando a Interface Web]].
+
== Utilização ==
  
As demais funcionalidade do SCAE (inclusive sua interface via linha de comando) são apresentadas na próxima seção.
+
A interface Web permite que o usuário do SCAE realize a classificação de atividades econômicas de acordo com a descrição da atividadede de uma empresa.
  
# Instalar as depedências do scae:
+
Para realizar a classificação, o usuário precisa:
## Instalar php
+
* digitar a descrição da atividade no campo '''Descrição das Atividades''';
## Instalar o apache (httpd)
+
* selecionar qual o core que realizará a classificação;
## Instalar o jdk1.6.0_04
 
## Instalar w3c-libwww e w3c-libwww-devel
 
## Instalar xmlrpc-c e xmlrpc-c-devel
 
## Instalar a aplicação MAE
 
## Instalar o Aspell
 
  
# Instalar a aplicação MAE:
 
## Instalar o xforms e xforms-devel
 
## Instalar freeglut e freeglut-devel
 
## Instalar libnet e libnet-devel
 
## Compilar a MAE com make -f Makefile.no_interface
 
  
# Configurar as variáveis de ambiente no arquivor .bashrc
+
Após preencher todas as informações necessárias, o usuário deve clicar no botão '''Classificar''' para classificar a atividade descrita. Para apagar as informações digitadas na interface, o usário pode clicar no botão '''Limpar''' ou pressionar a tecla '''F5'''.  
## Especificar o path do java/lib/i386 na LD_LIBRARY_PATH
 
## Especificar o path do java/lib/i386/client na LD_LIBRARY_PATH
 
## Especificar o path do /opt/MAE na MAEHOME
 
## Especificar o path do /opt/MAE/bin na PATH
 
## Especificar o path CORES/shared na SHAREDHOME
 
## Especificar o path do SPELLER/scaeaspell-0.60.5 na LD_LIBRARY_PATH
 
  
# Instalar o SCAE
+
Ao clicar no botão '''Classificar''', é exibida a mensagem '''Classificando...''' na tela informando o status da classificação da atividade.  
## ./configure
 
## make
 
## make install
 
  
# Instalar o scaeweb
+
O resultado da classificação é mostrado no item '''O resultado será mostrado aqui'''. Esse item, também, é utilizado para informar os possíveis erros decorrentes de comunicação com os cores, mensagens XML e campos preenchidos incorretamente.
## Inicializar o servidor web Apache
 
## Criar um link em /var/www/html/ apontando para code/scaeweb
 
## Alterar o home do usuário para permissão de leitura (chmod +rx user_name)
 
  
== Utilização ==
+
O resultado da classificação mostra os possívies códigos SUBCLASSE da tabela CNAE para a atividade descrita.

Edição atual tal como às 17h00min de 14 de setembro de 2012

Introdução

O Sistema de Codificação Automática de Atividades Econômicas (SCAE) possui a arquitetura mostrada na Figura 1. A interface de usuário com o Sistema é um navegador Internet (browser), que se comunica com o módulo Servidor de Aplicação (SA) do SCAE. Este módulo, por sua vez, se comunica com os outros dois módulos do SCAE: Core e Banco de Dados (BD).

Figura 1: Arquitetura do SCAE

Em uma solicitação de classificação de atividade econômica, o usuário, por meio da interface (via Web), envia ao SA uma descrição de atividade econômica. O SA, por sua vez, envia esta descrição ao Core, que a classifica e retorna códigos CNAE e medidas de confiança quanto às associações destes códigos com a descrição de atividade econômica recebida. De posse dos códigos CNAE, o SA requisita ao BD seus textos associado (descritores).

O Core também se comunica com o módulo BD, que é responsável por armazenar todo o conhecimento do SCAE (dicionário eletrônico; representação, interna ao Sistema, da tabela CNAE e das descrições de atividades econômicas usadas em treinamento; etc.). Além de realizar a classificação, o Core manipula as tabelas do Sistema (cria, insere dados, remove dados, etc.) armazenadas em BD. Diferentes submódulos do Core são responsáveis por esta manipulação. O SA está sendo desenvolvido em PHP, o BD em C, e o Core em C, Perl e Java.

Instalação

Preparando o ambiente para Instalação do SCAE

A preparação do ambiente para instalação do SCAE consiste basicamente na instalação e configuração das bibliotecas que este necessita. A seguir, são listadas as bibliotecas e os passos necessários para sua instalação.

Bibliotecas instaláveis a partir do YUM

  • w3c-libwww
  • w3c-libwww-devel
  • xmlrpc-c
  • xmlrpc-c-devel
  • xforms
  • xforms-devel
  • freeglut
  • freeglut-devel
  • libnet-devel
  • byacc
  • httpd
  • php

Efetue login como usuário root e entre com o comando a seguir para instalar as bibliotecas a partir do yum. Note que caso alguma delas já esteja instalada, o yum cuidará para que esta não seja instalada novamente e, caso alguma delas necessite de outra(s), o yum cuidará de instalar tais dependências. {Responda "y" quando for perguntado "Is this ok [y/N]:".}

yum install -y w3c-libwww w3c-libwww-devel xmlrpc-c xmlrpc-c-devel xforms xforms-devel freeglut freeglut-devel libnet-devel byacc httpd php

Bibliotecas instaláveis a partir do CD

JDK

Copie o arquvio para o /opt:

 cp /media/SCAE/libs/jdk/jdk-6u4-linux-i586.bin /opt

Transforme este arquivo em um executável:

chmod +x /opt/jdk-6u4-linux-i586.bin

Instale o pacote com o comando a seguir:

cd /opt; ./jdk-6u4-linux-i586.bin ; ln -s jdk1.6.0_04 jdk-latest

A licença do pacote será exibida (aperte a tecla de espaço para passar cada tela) e em seguida você será perguntado se concorda com ela. Responda 'yes' para dar início a instalação. Em seguida, Copie o de configuração a seguir com o seguinte comando, que também o torna executável:

cp /media/SCAE/libs/jdk/java.sh /etc/profile.d/ ; chmod +x /etc/profile.d/java.sh

Agora execute o seguinte comando para tornar o arquivo disponível:

source /etc/profile.d/java.sh

Então execute o seguinte comando para verificar se o path está correto:

which java

Você deverá obter algo como:

/opt/jdk-latest/bin/java

Agora execute os seguintes comandos:

/usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_04/bin/java 2
/usr/sbin/alternatives --config java

Após ter inserido o último comando, você será perguntado sobre o tipo de Java que deseja para o sistema. Pressione 2(A opção que indica o JDK 1.6.0_04) e aperte enter.

Para confirmar a versão do seu Java Runtime Environment, execute:

java -version

A saída esperada é:

java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharin

Por último, adicione as seguintes linhas ao seu arquivo .bashrc no seu diretório home

#JAVA
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/i386
export LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/i386/client
export LD_LIBRARY_PATH
MAE

Como root, extraia a MAE para o /opt com o comando a seguir:

cd /opt; tar -zxvf /media/SCAE/libs/MAE/MAE.tgz 

Compile a MAE com o comando a seguir:

cd /opt/MAE; make clean; make -f Makefile.no_interface; cd

Em seguida, insira as seguintes linhas ao seu .bashrc (localizado no seu diretório home):

# MAE 
export MAEHOME=/opt/MAE
PATH=$PATH:$MAEHOME/bin
Configuração do corretor ortográfico

Para configurar o corretor ortográfico do SCAE, inclua no arquivo .bashrc no seu home o caminho das bibliotecas do dicionário:

#SCAE SPELLER
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/relato3/CORES/DB_CORE/SPELLER/scaeaspell-0.60.5/.libs
export LD_LIBRARY_PATH

Não se esqueça de atualizar as variáveis de ambiente em todos os terminais abertos com o comando:

source .bashrc 


Instalando o SCAE

Instalando os Classificadores

Ainda como root, copie o SCAE para o diretório root com o comando:

cp -r /media/SCAE/relato3 /root

Em seguida, basta executar os comandos:

cd /root/relato3/CORES
./configure
make
make install
make train

Instalando a Interface Web

Figura 2: SCAE

Configure o servidor Apache para inicializar durante o boot da máquina:

chkconfig --level 5 httpd on

Caso o Apache não esteja ativo, inicialize-o com o comando:

/etc/init.d/httpd restart

Copie todo o conteúdo do diretório relato3/scaeweb para /var/www/html/:

cp -r code/scaeweb /var/www/html

Altere o usuário e o grupo do diretório scaweb para o usuário do Apache. Por padrão, o usuário e o grupo do servidor Apache 2.2.3, que já vem com o Fedora Core 6, é apache e apache, respectivamente:

chwon apache:apache /var/www/html/scaeweb -R

Você pode então acessar o SCAE com um browser pela URL: http://127.0.0.1/scaeweb.

Seu browser deve mostrar a imagem da Figura 2. Caso ela não apareça, há problemas de configuração no Apache ou PHP.

Utilização

A interface Web permite que o usuário do SCAE realize a classificação de atividades econômicas de acordo com a descrição da atividadede de uma empresa.

Para realizar a classificação, o usuário precisa:

  • digitar a descrição da atividade no campo Descrição das Atividades;
  • selecionar qual o core que realizará a classificação;


Após preencher todas as informações necessárias, o usuário deve clicar no botão Classificar para classificar a atividade descrita. Para apagar as informações digitadas na interface, o usário pode clicar no botão Limpar ou pressionar a tecla F5.

Ao clicar no botão Classificar, é exibida a mensagem Classificando... na tela informando o status da classificação da atividade.

O resultado da classificação é mostrado no item O resultado será mostrado aqui. Esse item, também, é utilizado para informar os possíveis erros decorrentes de comunicação com os cores, mensagens XML e campos preenchidos incorretamente.

O resultado da classificação mostra os possívies códigos SUBCLASSE da tabela CNAE para a atividade descrita.