\chapter{TESTES E AVALIAÇÃO}

O tradutor Poli-Libras implementado neste trabalho possui as seguintes restrições quanto ao texto de entrada:

\begin{itemize}
  \item Períodos simples;
  \item Orações na voz ativa;
  \item Orações na ordem direta;
  \item Sem apostos ou vocativos
\end{itemize}

\section{Exemplo}

Consideradas as restrições, será mostrado um exemplo detalhado do fluxo de informações na tradução de uma frase. 

\textbf{Texto de entrada:} "Eu quero um chocolate"

O analisador morfológico recebe o texto de entrada, consulta seu dicionário de português e atribui as possíveis categorias para cada palavra. A saída gerada é apresentada na tabela~\ref{table:tabela_analmor}.

\begin{table}[h]
       \centering
       \caption{Saída do analisador morfológico}
       \label{table:tabela_analmor}
       \begin{tabular}{|l|l|l|l|l|}
         \hline% horizontal line
           \bfseries &
           \bfseries Lexema&
           \bfseries Forma Dicionário&
           \bfseries Aproximada?&
           \bfseries Propriedades\\*
         \hline
         1& Eu&    eu&     false& cat=ppes, c=n, p=1, n=s \\
         2& quero& querer& false& cat=v, t=p, tr=\_, p=1, n=s \\
         3& um&    um&     false& g=m, cat=art, n=s \\
         3& um&    um&     false& g=m, cat=card, n=s \\
         3& um&    um&     false& g=m, cat=pind, n=s	\\
         4& chocolate& chocolate& false& g=m, cat=nc, n=s \\
         \hline
       \end{tabular}
\end{table}

Observa-se que no verbo "quero" o analisador identificou corretamente que o verbo está conjugado na 1a pessoa (p=1) do singular (n=s) e no presente do indicativo (t=p). Repara-se também que a palavra "um" retorna três possibilidades diferentes, pois pode ser um artigo, um numeral cardinal ou um pronome indefinido. Caberá ao analisador sintático decidir qual é o correto.

Em seguida o analisador sintático, utilizando o reconhecedor construído a partir da gramática definida (presente no Apêndice I), atuou sobre as classes gramaticais dos tokens e gerou a árvore presente na figura~\ref{fig:arvore}. As derivações ocorridas foram as seguintes:

\begin{enumerate}
  \item F $\Rightarrow$ PS
  \item PS $\Rightarrow$ OA
  \item OA $\Rightarrow  SS_{1}$ + SV + SAdv
  \item $SS_{1} \Rightarrow$ \emph{ppes}
  \item SV $\Rightarrow$  Aux + \emph{v} + SS + SP
  \item Aux $\Rightarrow$  epsilon
  \item SS $\Rightarrow$  PrAdj + NOME
  \item PrAdj $\Rightarrow$  \emph{art}
  \item NOME $\Rightarrow$  \emph{nc}
  \item SP $\Rightarrow$  \emph{epsilon}
  \item SAdv $\Rightarrow$  \emph{epsilon}
\end{enumerate}

\begin{figure}[!h]
  \centering
  \includegraphics[scale=1]{imagens/avaliacao_arvore.png}
  \caption{Árvore sintática gerada}
  \label{fig:arvore}
\end{figure}

Nesse caso, a primeira tentativa já formou uma árvore válida. Caso não tivesse formado, o analisador substituíria o ``um'' artigo pela próxima opção.

O transformador sintático então aplica suas regras na árvore. Nesse exemplo, basicamente ele corta o artigo. O pronome ``eu'' e a conjugação do verbo indicam o sujeito, que é indicado também (suj=1), caso o contextualisador precise. A lista de tokens gerada está representada na tabela~\ref{table:tabela_tranformador}.

\begin{table}[!h]
       \centering
       \caption{Lista de tokens saídos do transformador sintático}
       \label{table:tabela_tranformador}
       \begin{tabular}{|l|l|l|l|l|}
         \hline% horizontal line
           \bfseries &
           \bfseries Lexema&
           \bfseries Forma Dicionário&
           \bfseries Propriedades\\*
         \hline
         1& Eu& eu& cat=ppes, c=n, p=1, n=s \\
         2& quero& querer& cat=v, t=p, tr=\_, p=1, n=s, suj=1 \\
         3& chocolate& chocolate& g=m, cat=nc, n=s \\
         \hline
       \end{tabular}
\end{table}

Finalmente, o contextualizador faz uma busca pelo sinal de cada palavra no dicionário do WikiLibras. Ele identifica também que "querer" não flexiona com pessoa e número portanto não precisa modificar sua orientação. O contextualizador retorna então a descrição de 3 sinais, aqui representados em XML.

\begin{verbatim}
<sml>
  <Sign name="eu">
    <words>
      <word id="16" word="eu" />
    </words>
    <symbols>
      <Symbol location="BUSTO" handsInUnity="false" 
           contact="BATER" id="13" sequence="1">
        <rightHand side="right" orientation="half" 
             shape="INDICADOR" plane="horizontal">
          <movement direction="PARA_FRENTE" frequency="SIMPLES" 
              speed="NORMAL" type="RETILINIO" />
        </rightHand>
      </Symbol>      
    </symbols>
  </Sign>
  <Sign name="querer">
    <words>
      <word id="17" word="querer" />
    </words>
    <symbols>
      <Symbol location="ESTOMAGO" handsInUnity="false" 
            id="14" sequence="1">
        <rightHand side="right" orientation="white" 
             shape="CURVADOS" plane="horizontal">
          <movement direction="PARA_TRAS" frequency="SIMPLES" 
              speed="RAPIDO" type="RETILINIO" />
        </rightHand>
      </Symbol>      
    </symbols>
  </Sign>
  <Sign name="chocolate">
    <words>
      <word id="19" word="chocolate" />
    </words>
    <symbols>
      <Symbol location="LADO_INDICADOR" handsInUnity="false" 
           contact="ESFREGAR" id="16" sequence="1">
        <rightHand side="right" orientation="white" 
             shape="mao_U" plane="horizontal">
          <movement direction="PARA_TRAS" frequency="REPETIDO" 
             speed="RAPIDO" type="SEMICIRCULAR" />
        </rightHand>
        <leftHand side="left" orientation="half" shape="MAO_U" 
           plane="horizontal"/>
      </Symbol>      
    </symbols>
  </Sign>
</sml>
\end{verbatim}

Essa descrição vai ser lida pelo sintetizador de sinais que os fará de forma animada para o usuário final.

\section{Testes Morfológicos}

Nesta seção serão apresentados alguns testes realizados com o analisador morfológico. Esses testes estão focados na definição da classe gramatical das palavras e verificam, através de posterior julgamento humano, a taxa de acerto do módulo. Estes testes estão listados na tabela~\ref{table:teste_analmor}.

\begin{table}[!h]
       \centering
       \caption{Testes realizados com analisador morfológico}
       \label{table:teste_analmor}
       \begin{tabular}{|l|l|p{2.5cm}|p{4.5cm}|}
         \hline% horizontal line
           \itshape Palavra& 
           \itshape Lexema Retornado& 
           \itshape Categoria(s) retornada(s)& 
           \itshape Comentários \\*
         \hline
         carro & carro & nc & OK \\
         cantar & cantar & v & OK \\
         esperto & esperto & adj & OK \\
         você & você & ppes & OK \\
         empreendimento & empreendimento & nc & OK \\
         falou & falar & v & Identificou corretamente a conjugação \\
         doce & doce & adj,nc &  Retornou 2 opções - OK \\         
         casa & casa & nc,v & Retornou 2 opções - OK \\
         a & a & prep,art,ppes & Retornou todas as opções \\
         projeto & projecto & nc & Diferença com Portugal \\
         raptok & rapto & nc & Palavra inexistente - retornou aproximada \\         
         \hline
       \end{tabular}
\end{table}

Os testes mostram que o analisador morfológico é bem completo e possui alta taxa de acerto, apenas ``errando'' quando nos deparamos com diferenças entre português brasileiro e de Portugal, mas ainda assim o analisador sugere uma palavra correta.
