tcc-latex/tcc.tex

473 lines
41 KiB
TeX
Raw Normal View History

2017-11-05 03:52:51 +00:00
\input{tcc_begin}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\chapter{Introdução}
\label{cha:intro}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\section{Motivação}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
O uso correto do idioma que fala é importante para o cidadão em suas atividades profissionais, onde termos específicos variam de acordo com a atividade profissional desempenhada.
%
Por exemplo, pessoas que exerçam atividades no ramo jurídico utilizam termos específicos do direito no seu dia a dia profissional, tais quais \textit{habeas corpus}, abroquelar, cártula chéquica, areópago, fulcro e estipêndo funcional; no ramo médico, os termos poderiam ser incisão, febrífugo, benigno, ejunorrafia ou abdução.
%
De modo semelhante, o ensino de uma língua estrangeira depende do aprendizado de novas palavras com novos significados.
%
A aquisição de um repertório do idioma ou do dialeto a ser utilizado é necessário para o correto uso deste no dia-a-dia, entendendo e fazendo ser entendido por seus interlocutores.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Para auxiliar a aprendizagem de uma língua estrangeira \cite{anthony2013critical, oliveira2009linguistica}\apud{granger1998tag}{sardinha2000linguistica} ou do idioma para fins específicos \cite{oliveira2009linguistica} como no cotidiano profissional, a análise de corpus de textos é uma técnica que pode ser utilizada.
%
Segundo \citeauthoronline{sardinha2000linguistica}, um desses trabalhos do século XX foi o de Thorndike, publicado em 1921, que identificou as palavras mais frequentes de língua inglesa e \aspas{[...] impulsionou mudanças no ensino de língua materna e estrangeira, tanto nos Estados Unidos quanto na Europa [...]} (p. 236), onde \aspas{durante boa parte do século XX [...] muitos pesquisadores [...] se dedicaram à descrição da linguagem por meio de corpora, [...] [que] eram coletados, mantidos e analisados manualmente [...]} (p. 235).
%
Entretanto, no século XX, a velocidade e os custos de propagação da informação ainda eram elevados.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Com o desenvolvimento tecnológico das telecomunicações, os custos de acesso à internet reduziram, a largura de banda aumentou e a rede ganhou mais usuários.
%
De acordo com uma pesquisa do \citet{cetic2016pesquisa}, 51\% do total de domicílios possuem acesso à internet, 86\% dos alunos acessaram a internet ao menos uma vez no último trimestre à pesquisa e 95\% dos professores possuíam acesso à internet em casa.
%
Isso vem gerando uma crescente pervasividade da internet na vida das pessoas.
%
Por conta disso, a web é uma plataforma que possui o potencial de atingir um grande número de pessoas em território nacional.
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
\begin{table}[h]
\label{tab:comppln}
\hspace*{0mm}\centerline{\includegraphics[width=\textwidth ,height=\textheight ,keepaspectratio]{tabela-comparacao/model.pdf}}
\caption{Tabela comparativa de softwares de Processamento de Linguagem Natural resumida}
\end{table}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%Com base nesse contexto, este trabalho propõe a criação de um sistema na nuvem, ou seja, na internet, para pesquisa e análise de coleções de textos com exemplos significativos de uso da língua portuguesa.
%
%Esta ferramenta será útil para auxiliar o estudo da língua como realmente é usada.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\section{Justificativa}
\label{jus}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Atualmente, existem ferramentas voltadas ao usuário final capazes de processar corpus de textos, dentre elas podemos destacar o Word Smith, o Unitex/GramLab, o Sketch Engine e o Palavras. Destes, apenas o segundo é livre e apenas o terceiro possui uma interface web; sendo nenhuma delas livre e web simultaneamente. Dentre as ferramentas que processam a língua portuguesa, não há nenhuma plataforma que seja ao mesmo tempo livre e cuja sua interface seja web.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\section{Objetivos}
2017-11-21 03:48:01 +00:00
\label{sec:obj}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\subsection{Geral}
\label{obj:ger}
Desenvolver uma plataforma web livre para marcação e busca morfossintática em corpus de textos visando ampliar as funcionalidades em relação a softwares similares existentes enquanto se mantém amigável ao usuário.
\subsection{Específicos}
\label{obj:esp}
\begin{itemize}
\item Analisar comparativamente os recursos das ferramentas WordSmith, CorpusEye, COCA Online Corpus, Unitex/GramLab e Sketch Engine;
\item Desenvolver um módulo extrator de lista de palavras;
\item Desenvolver um módulo extrator de palavras-chave;
\item Desenvolver um módulo concordanciador, que suporte busca por funções sintagmáticas e morfológicas;
\item Integrar os módulos desenvolvidos numa plataforma web.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Organização do texto}
No capítulo 2 apresentaremos um histórico, os principais conceitos e alguns trabalhos relevantes da área de processamento da linguagem natural. No capítulo 3 apresentaremos os materiais e os métodos utilizados para desenvolver este trabalho, bem como as decisões relevantes ao desenvolvimento do projeto. No capítulo 4 apresentaremos e discutiremos os resultados obtidos. No capítulo 5 apresentaremos a conclusão, as contribuições deste trabalho e temas para trabalhos futuros.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Referencial Teórico}
\label{cha:ref}
Neste capítulo, são apresentados os conceitos relativos a processamento de linguagem natural, numa revisão histórica da área e seu progresso, e o atual estado da arte com seus requisitos para o progresso.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Revisão histórica}
% Revisão da literatura::Revisão histórica da área
% Revisão da literatura::Progresso na área
%
A linguística de corpus, segundo \citet{sardinha2000linguistica}, já existe desde a Antiguidade, citando o Corpus Helenístico de Alexandre, O Grande e os corpora de citações da bíblia produzidos durante a Antiguidade e a Idade Média, sendo seus processos de obtenção e análise tarefas que não dependem dum computador para serem executadas. Um corpus é uma \aspas{coletânea de textos [...] compilados segundo critérios específicos para o estudo a que se propõem} \cite[p. 358]{tagnin2010glossario}, e estes buscam representar a linguagem \cite{cambria2014jumping}, ou uma variante desta \cite{sardinha2000linguistica}, podendo ser usada como forma de obtenção de informações nas mensagens nela codificados. \citet{sardinha2000linguistica} evidencia que \aspas{durante boa parte do século XX [...] os corpora [...] eram coletados, mantidos e analisados manualmente [...]} (p. 235), o que mudou com a invenção do computador, que se popularizou na década de 1960.
Ainda enquanto trabalho manual, podemos citar o trabalho de contagem de 4,5 milhões de palavras realizada manualmente por Thorndike \cite{sardinha2000linguistica}, cujo produto foi uma lista de frequência de palavras. Uma das possíveis aplicações da linguística é extrair palavras-chave, esta que \citet{tagnin2010glossario} define como sendo \aspas{resultados da comparação entre o corpus de estudo e um corpus de referência} (p. 359), sendo um processo baseado em contagem, o qual \aspas{elimina palavras com frequência relativa similar nos dois corpora de modo que restem as palavras cuja frequência é estatisticamente significativa} (p. 359), podendo as frequências ter sido calculadas computacionalmente ou manualmente. \citet{cambria2014jumping} ressaltam que processos de obtenção automática de palavras-chave buscam apenas na \aspas{superfície} do texto, exemplificando que um texto sobre cães pode apenas mencionar as diversas raças, não sendo recuperado caso indexado por suas palavras-chave.
Em fevereiro de 1957 foi publicada a obra \textit{Syntactic Structures} de Noam Chomsky, que, de acordo com \citet{sardinha2000linguistica}, mudou o paradigma de abordagem na linguística, saindo o empirismo e entrando o racionalismo; ou seja, a análise de volumosos corpora de textos, que é sujeito à inúmeras falhas, deu lugar a \aspas{[...] teorias racionalistas da linguagem [...], notadamente a lingüística gerativa. [...]}\cite[pp. 236-237]{sardinha2000linguistica}. Esta abordagem se popularizou principalmente no início da década de 1960, quando o computador se popularizou.
Com a popularização do computador, representar computacionalmente a linguagem foi necessária, e uma abordagem de representação computacional da linguagem é modela-la como uma gramática gerativa de Chomsky \cite{chaves2014sistema, cambria2014jumping}. Um dos desafios encontrados foi resolver ambiguidades, que foi solucionado através Autômatos finitos com transições ponderadas visam resolver tal problema ao representar cada palavra em sua possível função atribuindo pesos nas transições, formando assim um modelo probabilístico para etiquetagem do texto \cite{vieira2001linguistica, thiele2015desambiguaccao}; entretanto, nem toda palavra representa uma entidade por si só. Entidades Nomeadas são referências de mais de uma palavra que referenciam uma única entidade \apud[]{nadeau2007survey}{bruckschen2010reconhecimento}. Segundo \citet{aranha2006tecnologia}, o reconhecimento destas no texto se dá através de perguntas como \aspas{Quem, Quando, Como, Onde} (p. 6). \citet{bruckschen2010reconhecimento} menciona referências a datas, números e unidades monetárias como itens do texto comumente inclusas como entidades nomeadas, sendo que \citet{aranha2006tecnologia} também inclui siglas. A união da identificação prévia de entidades nomeadas à representação das sentenças como autômatos foi uma abordagem de solução deste problema.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\section{Estado da arte}
% Revisão da literatura::Estado da arte
% Revisão da literatura::Revisão de resultados relevantes
% Revisão da literatura::Requisitos para o progresso na área [talvez seja melhor ignorar este]
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Etiquetadores morfossintáticos}
\label{ea:em}
O atual estado da arte para etiquetadores morfossintáticos da língua portuguesa, por \citet{silva2014indexacao}, é o PALAVRAS, de \citeauthoronline{bick2000parsing}. É uma gramática de restrições que, carregada no software CG-3, realiza o etiquetamento automático de textos. Possui uma taxa de acerto de 94\% em relação aos seus próprios resultados, e 86,5\% se comparado a uma extração manual \cite[p. 169]{silva2014indexacao}. O etiquetador CG-3 é mantido como software livre e distribuído pelo projeto de pesquisa e desenvolvimento \textit{Visual Interactive Syntax Learning} (VISL) do Instituto de Línguas e Comunicação (ISK) da Universidade do Sul da Dinamarca (SDU), já a gramática é paga.
2017-11-21 03:48:01 +00:00
Dentre os etiquetadores morfossintáticos gratuitos, o estado da arte, de acordo com \citet{silva2014indexacao}, é o LX-Parser. Possui uma taxa de acerto de 75\% em relação aos seus próprios resultados, e 97,5\% se comparado a uma extração manual \cite[p. 170]{silva2014indexacao}. Apesar de gratuito, sua licença é de redação própria \cite{lxparserlicense} e em sua cláusula 6 proíbe a distribuição e comercialização de produtos ou serviçõs derivados, já em sua cláusula 7, veta a disponibilização da ferramenta por outros meios e a cláusula 9 veta o acesso de outros \textit{sites} à ferramenta; portanto, a licença da ferramenta permite apenas a descarga e execução local da mesma.
2017-11-05 03:52:51 +00:00
Outro projeto é o Unitex/GramLab, onde sua versão em português brasileiro foi primeiramente apresentada por \citeauthoronline{muniz2005unitex} em \citeyear{muniz2005unitex}. Consiste de uma interface gráfica em Java que faz chamadas a bibliotecas e utilitários de linha de comando compilados de códigos em C++. A licença do software é a \textit{Lesser General Public License} versão 2.1 \cite{lgplv21}, já seus recursos linguísticos estão sob a \textit{Lesser General Public License For Linguistic Resources} \cite{lgpllr}, ambas licenças livres. O pacote redistribuível padrão já fornece ferramentas e dados complementares necessários para etiquetar um texto de entrada arbitrário. Outros recursos da mesma plataforma são busca por autômato, busca por expressão regular, representação do texto como autômato, inferência de entidades nomeadas e aplicação de transdutores \cite{paumier2016user}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Gerenciadores de corpora}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
De acordo com \apudonline[p. 49]{biber1995dimensions}{oliveira2009linguistica}, \aspas{um corpus linguístico de base computacional corresponde a coleções de textos que ocorrem naturalmente na língua, organizadas sistematicamente para representar áreas de uso da língua, e das quais podemos extrair novas informações}. Tal organização pode seguir critérios diversos, mas é esperado que estes estejam anotados no texto. \citet{aluisio2006constroi} menciona a ferramenta \textit{Lácio-Ref}, a qual visa fornecer metadados para os textos, para estes serem futuramente processados. Tais metadados são: título, subtítulo, língua, fonte, editor, local de publicação, comentários, nome do(s) autor(es), sexo do(s) autor(es), gênero e tipo textual \cite{aluisio2006constroi}. Outra ferramenta é o \textit{AntCorGen}, de \citet{anthony2017antcorgen}, a qual visa manter organizados corpus de texto através de categorias, subcategorias e seus metadados, tais quais: título, autor, seção \aspas{resumo}, seção \aspas{introdução}, seção \aspas{materiais e métodos}, seção \aspas{resultados e discussão}, seção \aspas{conclusões}, seção \aspas{referências}, afiliações do autor e legendas de figuras e tabelas. Os metadados mencionados ajudam a descrever o contexto ao qual texto está inserido.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
% \centerline{\fbox{\includegraphics[width=0.8\linewidth]{mapaConc/pd1-conceitosMaisRelevantesAoTema.pdf}}}
% \centerline{\fbox{\includegraphics[width=0.8\linewidth]{mapaConc/pd1-referencialTeorico.pdf}}}
%
% ---
% \hline
%
\section{Trabalhos Correlatos}
\subsection{Indexação automática por meio da extração e seleção de sintagmas nominais em textos em língua portuguesa}
Diferentemente da língua inglesa, segundo \citet{silva2014indexacao} (p. 155) \aspas{pesquisas [...] em língua portuguesa ainda não atingiram um grau de amadurecimento elevado [...] pois elas não alcançam uma taxa de precisão elevada para todos os tipos de corpus.} Dada a escassez de ferramentas eficazes para processamento da língua portuguesa, o referido autor comparou três etiquetadores morfossintáticos (OGMA, PALAVRAS e LX-PARSER), e constatou que cada um possui suas peculiaridades de modo a existir situações onde alguns se destacam e outras onde apresentam dificuldades. Tais ferrametas comparadas eram as principais ferramentas existentes até 2014.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\subsection{Sistema identificador de sintagmas verbais do PB}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
A língua portuguesa possui sintagmas nominais, verbais, adjetivais e preposicionados \cite{gagnon2000processamento}. Os verbais podem ser analisados conforme proposto por \citet{chaves2014sistema}, onde propõem a utilização do \aspas{[...] formalismo da gramática livre de contexto [...], comumente utilizado na linguística computacional para a implementação de protótipos capazes de modelar a estrutura sintagmática de uma língua natural}, sendo definido pelos próprios autores como \aspas{um protótipo com resultados interessantes} que carece na quantidade de estruturas cobertas pela gramática definida e na necessidade de melhorar a taxa de acerto na etiquetagem dos textos - sem citar valores numéricos. Tal trabalho fornece uma ferramenta para obtenção automática da análise sintagmática, mas que necessita de aprimoramentos e quantificações numéricas quanto sua eficácia.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\subsection{O SISTEMA DE ANÁLISE "PALAVRAS": Análise Gramatical Automática do Português em uma framework de gramática de restrição}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Com uma taxa de acerto na ordem de 99\% para morfologia e entre 96\% e 97\% para sintaxe para processamento de texto livre, uma das adaptações necessárias por Bick no modelo da língua inglesa para operar para a língua portuguesa foi \cite[p. 438]{bick2000parsing} a \aspas{introdução de marcadores de dependência a nível de cláusula [...] e a introdução de funções de marcação de subcláusula para subcláusulas finitas e não-finitas}, onde algumas descobertas para a língua inglesa apresentaram se manter para a língua portuguesa, tais como: milhares de regras são necessárias para cada nível adicional de análise, que as sentenças que excluem significado são mais frequentes que as que buscam e que a determinação do contexto concentra-se mais à esquerda da sentença. Tal tese explicita as principais diferenças entre o processamento sintagmático dos idiomas português e inglês, bem como suas diferenças e adaptações necessárias para se adequar ao idioma e ainda assim manter uma alta taxa de acerto.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
% Uma união das abordagens listadas por \citeauthoronline{silva2014indexacao} e das desenvolvidas por \citeauthoronline{bick2000parsing}, \citeauthoronline{chaves2014sistema}, a fim de obter resultados mais precisos, será utilizada neste trabalho.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\section{Conceitos relevantes}
Nesta seção serão apresentados conceitos relevantes ao trabalho: processamento da linguagem natural e linguística de corpus.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\subsection{Processamento da linguagem natural}
Segundo \citet{sardinha2000linguistica}, \aspas{[...] O Processamento de Linguagem Natural é uma disciplina com laços fortes com a Ciência da Computação e, embora compartilhe vários temas com a Lingüística de Corpus, as duas mantêm-se independentes.} (p. 328). Já de acordo com \citeonline[p. 55]{oliveira2009linguistica}, programas de processamento de linguagem natural são \aspas{[...] programas capazes de interpretar e/ou gerar informações em linguagem natural [...]}, onde (p. 55) \aspas{[...] a Linguística Computacional utiliza os corpora para poder ter acesso ao material que necessita estudar, ou seja, grande quantidade de textos que ocorrem naturalmente na língua.} \apudonline[p. 158]{trask2004dicionario}{aluisio2006constroi}, por sua vez, defende que \aspas{a partir de corpora, podem-se fazer observações precisas sobre o real comportamento lingüístico de falantes reais, proporcionando informações altamente confiáveis e isentas de opiniões e de julgamentos prévios sobre os fatos de uma língua}, onde tais observações seriam feitas com auxílio do resultado do processamento de um programa que processa os corpora, que por sua vez está codificado em linguagem natural. De todos estes autores, concluímos que o processamento da linguagem natural são estatísticas de um texto (ou de um conjunto deles) que são relevantes numa dada área do conhecimento.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\subsection{Linguística de corpus}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Um corpus, na perspectiva da Linguística de Corpus, pode ser definido como:
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
\begin{citacao}
\omissis{} um conjunto finito de enunciados tomados como objeto de análise. Mais precisamente, conjunto finito de enunciados considerados característicos do tipo de língua a estudar, reunidos para servirem de base à descrição e, eventualmente, à elaboração de um modelo explicativo dessa língua. Trata-se, pois, de uma colecção de documentos quer orais (gravados ou transcritos) quer escritos, quer orais e escritos, de acordo com o tipo de investigação pretendido. As dimensões do corpus variam segundo os objectivos do investigador e o volume dos enunciados considerados como característicos do fenômeno a estudar. Um corpus é chamado exaustivo quando compreende todos os enunciados característicos. E é chamado selectivo quando compreende apenas uma parte desses enunciados. \apud{galisson1983dicionario}{aluisio2006constroi}
\end{citacao}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Conceito este que pode ser complementado com a ideia de que:
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
\begin{citacao}
\omissis{} corpus não pode ser considerado como constituindo a língua, mas somente como uma amostra da língua. (...) O corpus deve ser representativo, isto é, deve ilustrar toda a gama das características estruturais. Poder-se-ia pensar que as dificuldades serão levantadas se um corpus for exaustivo (...). Na realidade, sendo indefinido o número de enunciados possíveis, não há exaustividade verdadeira e, além disso, grandes quantidades de dados inúteis só podem complicar a pesquisa, tornando-a pesada.O lingüista deve, pois, procurar obter um corpus realmente significativo. Enfim, o lingüista deve desconfiar de tudo o que pode tornar o seu corpus não-representativo (método de pesquisa escolhido, anomalia que constitui a intrusão de lingüista, preconceito sobre a língua). \apud{dubois1993dicionario}{aluisio2006constroi}
\end{citacao}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
Ou, de acordo com \apudonline{sinclair2005corpus}{aluisio2006constroi} como uma coleção de peças de um texto na forma eletrônica, selecionadas de acordo com critérios externos para representar, o quanto melhor possível, um idioma ou variação deste como dados fonte para pesquisa linguística. Por \apudonline[p. 31]{biber1995dimensions}{oliveira2009linguistica}, \aspas{um corpus linguístico de base computacional corresponde a coleções de textos que ocorrem naturalmente na língua, organizadas sistematicamente para representar áreas de uso da língua, e das quais podemos extrair novas informações}. Segundo \citet{oliveira2009linguistica}, linguística de corpus é uma ciência empírica, onde o pesquisador utiliza diversas vezes o corpus para estender uma descrição linguística, mas esta prática pode acabar por deixar a teoria aberta para mudanças. Então concluímos que linguística de corpus é a área do conhecimento que estuda a língua através de agrupamentos de textos da mesma que representam um nicho a ser estudado.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\citet{gries2010useful} ainda cita três estatísticas deriváveis de uma análise de corpus, sendo eles a frequência de ocorrência de um certo fenômeno no texto, dispersão e frequências ajustadas e frequências de co-ocorrência. A primeira (frequência de ocorrência de um certo fenômeno no texto) é uma contagem de quantas ocorrências algo foram identificadas no texto, a segunda (dispersão e frequências ajustadas) é a proporção (percentual) das ocorrências dado um corpus e sua dispersão e o último (frequências de co-ocorrência) age sobre a frequência de co-ocorrência de expressões linguísticas. Portanto estas são as principais informações que uma ferramenta para a linguística de corpus deve apresentar.
2017-11-05 03:31:10 +00:00
2017-12-01 03:08:13 +00:00
\subsection{..web..}
2017-11-30 19:09:02 +00:00
2017-12-04 01:28:43 +00:00
OSI / Protocolo HTTP / Navegadores / Django / Python3 / Mapeamento Objeto-Relacional / SQLite
\section{Aspectos legais incidentes sobre aplicações de internet}
\label{marcocivil}
Popularmente chamado de \aspas{Marco Civil da Internet}, a lei nº 12.965, \aspas{estabelece princípios, garantias, direitos e deveres para o uso da internet no Brasil} \cite{lei12965}. Um dessses deveres pode se aplicar aos provedores das aplicações de internet, quando este for uma pessoa jurídica atuando com fins econômicos:
\begin{citacao}
Art. 15. O provedor de aplicações de internet constituído na forma de pessoa jurídica e que exerça essa atividade de forma organizada, profissionalmente e com fins econômicos deverá manter os respectivos registros de acesso a aplicações de internet, sob sigilo, em ambiente controlado e de segurança, pelo prazo de 6 (seis) meses, nos termos do regulamento. \cite{lei12965}
\end{citacao}
Onde o que constituem \aspas{registros de acesso a aplicações de internet} fora anteriormente definido no Art. 5º:
\begin{citacao}
VIII - registros de acesso a aplicações de internet: o conjunto de informações referentes à data e hora de uso de uma determinada aplicação de internet a partir de um determinado endereço IP. \cite{lei12965}
\end{citacao}
Portanto, para uma aplicação de internet ser usável comercialmente em território nacional sem inseguraça jurídica, deve ser auditável de forma a rastrear o endereço IP, data e hora de qualquer conteúdo gerado por qualquer usuário dentro da aplicação.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-05 03:31:10 +00:00
2017-11-21 03:48:01 +00:00
\chapter{Desenvolvimento}
2017-11-05 03:52:51 +00:00
\label{cha:des}
2017-11-21 03:48:01 +00:00
2017-12-04 01:28:43 +00:00
Este capítulo descreve as etapas do desenvolvimento da plataforma web proposta. Como plataforma web, compreende-se um software cuja interface seja acessível através de navegadores, como o Mozilla Firefox, por exemplo. A seção \ref{sec:des:req} descreve as etapas do levantamento de requisitos as funcionalidades desejáveis identificadas e as classes do domínio do problema, já a seção \ref{sec:des:nav} contém o projeto da navegabilidade e a seção \ref{sec:des:flux}, o projeto do fluxo de informações dentro da plataforma, e, por fim, a seção \ref{sec:des:impl} contém o projeto de implantação do sistema após desenvolvido.
2017-11-21 03:48:01 +00:00
\section{Levantamento de requisitos}
\label{sec:des:req}
2017-12-04 01:28:43 +00:00
\subsection{Requsitos e soluções}
\label{subsec:des:reqsol}
O levantamento de requisitos é uma das primeiras etapas do ciclo de vida de um projeto de software \cite{sommerville2011software}. Para tal, o primeiro passo foi pesquisar as ferramentas voltadas ao usuário final existentes. As ferramentas de processamento de corpora cujas interfaces não fossem em linha de comando mencionadas tando diretamente longo dos artigos citados no capítulo \ref{cha:ref} quanto mencionados nos \textit{sites} de projetos linguísticos mencionados nos artigos foram: \textit{WordSmith}, \textit{CorpusEye}, \textit{COCA Online Corpus}, \textit{Unitex/GramLab} e \textit{Sketch Engine}. Então, suas principais funcionalidades presentes na versão livre de custos foram levantadas, comparadas, e então expressas na tabela \ref{tab:comppln}, da qual foram extraídas, de forma não-exaustiva, características desejáveis de um sistema de processamento de corpora e listadas a seguir:
\begin{table}
\label{tab:comppln}
\hspace*{0mm}\centerline{\includegraphics[width=0.95\textheight,height=0.95\textwidth,keepaspectratio,angle=90]{tabela-comparacao-full/model.pdf}}
\caption{Tabela comparativa de softwares de Processamento de Linguagem Natural}
\end{table}
\begin{itemize}
\item Possuir interface web compatível com tamanhos de tela diversos;
\item Processar corpora fornecidos pelo usuário;
\item Etiquetar corpora fornecidos pelo usuário;
\item Criar corpus a partir de buscas na internet;
\item Calcular estatísticas quanto à frequência de lemas e palavras;
\item Calcular estatísticas quanto à contagem de lemas e palavras;
\item Calcular estatísticas quanto à razão de lemas e palavras;
\item Calcular estatísticas quanto à contagem de sentenças e parágrafos;
\item Calcular estatísticas quanto ao tamanho em caracteres das palavras;
\item Calcular estatísticas quanto à quantidade de palavras por sentença;
\item Extrair as palavras-chave de um corpus;
\item Calcular estatísticas quanto à distribuição da palavra-chave no corpus;
\item Calcular estatísticas quanto às palavras relacionadas às palavras-chave do corpus;
\item Buscar por uma ocorrência de uma palavra ou sequência de palavras;
\item Buscar por uma expressão que simbolize uma construção textual;
\item Possuir um concordanciador;
\item Calcular os n-gramas mais frequentes de um texto.
\end{itemize}
Como nenhum dos softwares apresenta extensibilidade através de \textit{plug-ins} como funcionalidade, tal requisito não está presente na lista acima. Considerando que tal lista, apesar de extensa, pode não cobrir todos os casos de uso dum linguista e que nem todas as funcionalidades serão implementadas neste trabalho, julgamos desejável facilitar a adição e substituição de componentes do software por outros mais atualizados, com maiores taxas de acerto, computacionalmente mais eficientes e/ou com licenças mais permissivas, a critério do administrador do servidor que executa o software. Portanto possuir extensibilidade através de \textit{plug-ins} é um requisito do software.
Dos softwares anteriormente listados, observamos na tablela \ref{tab:comppln} que nenhum deles possui um concordanciador gratuito com suporte a etiquetas de partes do discurso para a língua portuguesa que receba textos quaisquer fornecidos pelo usuário. Adicionando esta funcionalidade como objetivo, juntamente de suas dependências, temos:
\begin{itemize}
\item Possuir extensibilidade através de \textit{plug-ins};
\item Possuir interface web compatível com tamanhos de tela diversos;
\item Processar corpora fornecidos pelo usuário;
\item Etiquetar corpora fornecidos pelo usuário;
\item Possuir um concordanciador.
\end{itemize}
Para gerar as páginas, foi escolhido o \textit{framework} Django em sua versão de longo suporte 1.11. Esta escolha se deve principalmente à prévia familiaridade do autor com a ferramenta. Outros fatores que influenciaram a decisão é a quantidade de bibliotecas disponíveis para a linguagem em que o \textit{framework} é escrito, Python, o que possibilita a inclusão destas nos \textit{plug-ins}.
Para que as páginas geradas sejam compatíveis com tamanhos de tela diversos, foi escolhido o \textit{framework} de folha de estilos Bootstrap em sua versão 4.0b1. Esta escolha também foi influenciada pela prévia familiaridade do autor. Em conjunto com a referida folha de estilos, também foi utilizado o pacote de ícones FontAwesome. Ele se define em sua página inicial como \aspas{um idioma pictográfico de ações relacionadas à \textit{web}} \cite{fontawesome2017home}. Foi adicionado visando melhorar a usabilidade.
Para processar os corpora fornecidos pelo usuário, foi selecionado o utilitário de linha de comando do \textit{software} Unitex/GramLab. É software livre licenciado sobre os termos da GPL, que não impõe restrições quanto ao seu uso. Apesar de possuir um utilitário chamado \aspas{Tagger}, somente durante a implementação foi observado que os arquivos necessários para sua utilização estavam presentes apenas para o idioma francês. Portanto, o etiquetador do Unitex/GramLab foi treinado para a língua portuguesa utilizando os corpora anotados pelo projeto Floresta Sintáctica (mais detalhes na seção \ref{sec:des:train}); em caso de resultados insatisfatórios (menos que 75\% de acertos), seria utilizado os arquivos previamente treinados do projeto Mac-Morpho nos etiquetadores MXPOST e TreeTagger.
\subsection{Classes do domínio do problema}
\label{subsef:des:cdp}
As classes do domínio do problema, quando representadas através da \textit{framework} utilizada, se aproximam muito do modelo lógico. O mapeamento objeto-relacional feito pela plataforma admite herança e classes abstratas; como a solução de persistência padrão é SQLite, e esta não suporta herança entre tabelas, o mapeador objeto-relacional replica os campos definidos na classe pai na classe filho, já classes abstratas não geram tabelas. A figura \ref{fig:class} traz o modelo lógico gerado automaticamente a partir da implementação com algumas alteração quanto à disposição dos elementos. A classe em magenta claro (\textit{User}) é advinda do \textit{framework}, já as demais classes em amarelo claro foram escritas para compor a base da plataforma, as quais os \textit{plug-ins} utilizarão diretamente. As classes com letras em cinza (\textit{Timestampable}, \textit{RequiresIP} e \textit{AttributeMixin}) são abstratas; todas as concretas herdam de \textit{RequiresIP}, devido às obrigações legais anteriormente mencionadas na seção \ref{marcocivil}.
\begin{figure}[h]
\begin{center}
\includegraphics[width=\textwidth]{modelo-classes/model.pdf}
\caption{Modelo lógico gerado automaticamente a partir da implementação}
\label{fig:class}
\end{center}
\end{figure}
%E de forma a encontrar os requisitos especificados nos objetivos (seção \ref{sec:obj}) a partir das principais ferramentas voltadas ao processamento de corpus de texto existentes no mercado. . A comparação completa de funcionalidades está prensente no apêndice \ref{ap:tabcomppln} em formato de tabela. Portanto, são funcionalidades desejáveis num sistema de processamento de linguagem natural:
%Como a proposta é de uma plataforma web, é esperado que seja usável a partir de um navegador como o Google Chrome, Opera ou Mozilla Firefox. Por conta disso, o sistema deverá gerar documentos HTML e transferí-los através do protocolo HTTP, que, segundo \citeonline{ross2013redes}, atua no camada de aplicação do modelo OSI. Portanto, será utilizada uma arquitetura cliente-servidor.
2017-11-21 03:48:01 +00:00
\section{Projeto da navegabilidade}
\label{sec:des:nav}
2017-12-04 01:28:43 +00:00
A navegabilidade no sistema é fundamental para a experiência do usuário. Os documentos de hipertexto formam um grafo, onde cada documento é um nó e cada link é uma aresta \cite{missing}. A forma que adotamos para representar tal navegação é através duma árvore (vide figura \ref{fig:arvnav}), onde a página anterior conhece seus descendentes imediatos e sua página pai, apenas. Embora tal forma não represente com precisão o estado final do sistema, tal modelo exerceu seu papel comunicativo durante o desenvolvimento.
\begin{figure}[h]
\begin{center}
\includegraphics[scale=.625]{navegabilidade/model.pdf}
\caption{Árvore de navegação das páginas do sistema}
\label{fig:arvnav}
\end{center}
\end{figure}
\begin{quadro}[h]
\begin{center}
\begin{tabular}{|l|l|}
\hline
Página & Detalhe não-trivial \\
\hline
\hline
Administração & Administradores não têm acesso \\
\hline
Dados & \subcell[l]{Todos os dados presentes na plataforma e seus \textit{plug-ins} são \\ visíveis e editáveis pelo administrador nesta página} \\
\hline
Corpora & Usuários não \aspas{logados} não têm acesso \\
\hline
Idioma & Onde é feita a troca do idioma da interface \\
\hline
Análise & Todas as opções ofertadas são \textit{plug-ins} \\
\hline
\end{tabular}
\end{center}
\caption{Características não-triviais das páginas}
\label{tab}
\end{quadro}
2017-11-21 03:48:01 +00:00
\section{Projeto do fluxo de informações}
\label{sec:des:flux}
2017-12-04 01:28:43 +00:00
Como ser extensível através de \textit{plug-ins} é um requisito da aplicação
\begin{figure}
\begin{center}
\includegraphics{fluxinfo-dirtree/model.pdf}
\caption{Árvore de diretórios e scripts}
\label{fig:flux:dt}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{fluxinfo-init/model.pdf}
\caption{Sequência de inicialização}
\label{fig:flux:init}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{fluxinfo-no-plugin/model.pdf}
\caption{Requisição sem uso de \textit{plug-ins} para exibir formulário}
\label{fig:flux:base}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{fluxinfo-list-plugin/model.pdf}
\caption{Requisição para exibir lista de \textit{plug-ins} na página \aspas{Análise}}
\label{fig:flux:list}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{fluxinfo-use-plugin/model.pdf}
\caption{Requisição para exibir página gerada por \textit{plug-in} que usa a aplicação}
\label{fig:flux:plugin}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics{fluxinfo-use-plugin-event/model.pdf}
\caption{Requisição para exibir página gerada por \textit{plug-in} que usa outros \textit{plug-ins}}
\label{fig:flux:event}
\end{center}
\end{figure}
\section{Treino do etiquetador}
\label{sec:des:train}
2017-11-30 22:52:26 +00:00
\blindtext[1]
2017-11-21 03:48:01 +00:00
\section{Projeto de implantação}
\label{sec:des:impl}
2017-11-30 22:52:26 +00:00
\blindtext[1]
2017-11-21 03:48:01 +00:00
2017-12-04 01:28:43 +00:00
%\section{Atividades necessárias para o desenvolvimento}
%\label{sec:top}
2017-11-05 03:52:51 +00:00
2017-12-04 01:28:43 +00:00
%A seguir são descritos sucintamente os passos de desenvolvimento deste trabalho:
2017-11-05 03:52:51 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Analisar comparativamente os recursos das principais ferramentas existentes}
%Foi identificado que as plataformas WordSmith, CorpusEye, COCA Online Corpus, Unitex/GramLab e Sketch Engine provém recursos semelhantes aos desejados. Tais recursos desejados são os mesmos citados na seção de objetivos específicos (subseção \ref{obj:esp}), nos itens 2, 3 e 4. Não se limitado apenas às funcionalidades listadas, tais atributos foram anotados na tabela da figura \ref{fig:cfn} presente no capítulo de resultados (seção \ref{res:cfn}).
2017-11-05 03:52:51 +00:00
2017-12-04 01:28:43 +00:00
%\begin{figure}
% \begin{center}
% \includegraphics[width=\linewidth,trim={0 10cm 0 10cm},clip]{apendice/cfn.pdf}
% \caption[Comparação de ferramentas de NLP]{Comparação de ferramentas de processamento da linguagem natural}
% \label{fig:cfn}
% \end{center}
%\end{figure}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Selecionar as tecnologias}
%A ferramenta desenvolvida ser livre é um requisitos expressos no objetivo geral (subseção \ref{obj:ger}). A única ferramenta livre para etiquetagem morfossintática da língua portuguesa é o Unitex/Gramlab, como mencionado no estado da arte dos etiquetadores morfossintáticos para o português na subseção \ref{ea:em}. Portanto o etiquetador escolhido foi o Unitex/Gramlab.
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%Para a interface web, outro requisito expresso no objetivo geral (subseção \ref{obj:ger}), foi escolhido o \textit{framework} Django. Este utiliza a linguagem de programação Python para servir páginas HTML dinâmicas. Tanto a linguagem quanto o \textit{framework} foram escolhas do autor por estes já serem conhecimentos prévios ao início deste trabalho.
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Mapear as funcionalidades da interface gráfica em Java do Unitex/GramLab para ações em linha de comando}
%O Unitex/GramLab possui uma \aspas{janela} em sua interface na qual é possível visualizar todos os comandos \aspas{disparados} na linha de comando. Através da sequência de comandos executados, foi inferido um padrão para cada elemento da interface e seu impacto na linha de comando. Resultados disponíveis na seção (seção \ref{res:clire}).
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Programar o núcleo extensível da plataforma sobre o framework escolhido}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Programar o módulo extrator de lista de palavras}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Programar o módulo extrator de palavras-chave}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Programar o módulo concordanciador, que suporte busca por funções sintagmáticas e morfológicas}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{Integrar os módulos desenvolvidos}
%Todos os módulos desenvolvidos necessitam operar de forma coerente, de modo a priorizar a interdependência entre funcionalidades providas pelos pacotes. Para tanto foi separado os pacotes que definem as interfaces dos pacotes que definem as visualizações e dos pacotes que implementam a funcionalidade, de modo a criar reforçar uma hierarquia de dependências que permitam extensibilidade de funcionalidades. O resultado esperado é reduzir o acoplamento entre diversos \textit{plug-ins}, formando uma árvore de dependências entre pacotes.
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\section{O que falta fazer}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\subsection{programar o núcleo extensível da plataforma sobre o framework escolhido}
%\subsection{programar o módulo extrator de lista de palavras}
%\subsection{programar o módulo extrator de palavras-chave}
%\subsection{programar o módulo concordanciador, que suporte busca por funções sintagmáticas e morfológicas}
%\subsection{integrar os módulos desenvolvidos}
%\subsection{escrever seção de desenvolvimento}
%\subsection{escrever seção de resultados e de conclusão}
%\subsection{revisar texto e enviar para a banca}
%\subsection{defender TCC}
%\subsection{corrigir os pontos levantados durante a defesa}
%\subsection{envio do texto à biblioteca e adequação a eventuais desvios da ABNT}
2017-11-05 03:31:10 +00:00
2017-12-04 01:28:43 +00:00
%\section{Cronograma}
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
% A análise comparativa já está pronta para ser escrita adequadamente com as técnicas de escrita científica.
2017-11-05 03:31:10 +00:00
%
2017-11-05 03:52:51 +00:00
% Para a construção da plataforma modular será utilizada a linguagem de programação Python em sua versão 3 em conjunto ao framework DJango. Isso \aspas{obriga} que os módulos sejam escritos também em Python. O módulo concordanciador usará o software Unitex/GramLab para obter as marcações.
2017-11-05 03:31:10 +00:00
%
2017-11-05 03:52:51 +00:00
% ...apesar do PALAVRAS ser o atual estado da arte, este não pode ser utilizado por não ser completamente livre. Decidimos, portanto, utilizar o Unitex/GramLab, por ser livre.
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-21 03:48:01 +00:00
\chapter{Resultados}
\label{cha:res}
\blindtext[1]
2017-11-30 19:09:02 +00:00
\section{Trabalhos futuros}
\blindtext[1]
2017-11-05 03:52:51 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2017-11-21 03:48:01 +00:00
\chapter{Conclusão}
\label{cha:conc}
\blindtext[1]
2017-11-05 03:31:10 +00:00
2017-11-05 03:52:51 +00:00
\input{tcc_end}