• Nenhum resultado encontrado

Os trabalhos selecionados e apresentados nesse capítulo, foram definidos com base na literatura seguindo os seguintes critérios de inclusão:

• Ser uma ferramenta para processamento de linguagem natural.

• Realizar pelo menos um tipo de análise linguística em um dos níveis da linguagem (morfológica, léxica, sintática ou semântica).

• Abordar alguma das variáveis de estudo (otimização de processamento, customiza- ção de pipeline, integração de recursos linguísticos).

• Está disponível na internet. • Possui documentação de uso.

• Ser produto ou parte de uma publicação científica.

Muitas ferramentas contemplam esses requisitos, entretanto, não seria possível des- crever todas elas nesse trabalho, sendo assim, destaca-se nesse capítulo somente aquelas que se aproximam do trabalho proposto. Esses trabalhos são discutidos e comparados de acordo com os aspectos elencados a seguir, a saber que tais aspectos foram definidos por estarem presente tanto na literatura como nos trabalhos relacionados e por jugar ser necessários para o desenvolvimento desse trabalho.

• Domínio: Indica se a solução construída é dependente de domínio.

• Análises Linguísticas: indica quais os tipos de análise de PLN que a solução possui. Isto permite aferir o quão abrangente a ferramenta é para analisar dados

textuais, e quais os níveis de análises linguísticas (morfológica, léxica, sintática, semântica, pragmática) ela consegue cobrir.

• Ferramentas Externas: indica se a solução construída faz uso de ferramentas de PLN de terceiros. Isto demonstra se a ferramenta incorpora algorítimos e técnicas adotadas pelos grupos e comunidades de pesquisa em PLN.

• Pipeline Customizado: indica se a solução possui alguma estrutura (Wrapper,

plugins, etc.) que permita, com facilidade, o usuário adicionar novas análises pro-

vindas de outras ferramentas de PLN ao pipeline proposto. Isto demonstra o quanto extensível é a ferramenta.

• API : indica se a solução possui um Application Programming Interface, em portu- guês, significa Interface de Programação de Aplicações, um conjunto de rotinas e padrões estabelecidos para a utilização das suas funcionalidades acessíveis somente por programação. Isso permite que os usuários possam construir novas aplicações, não pretendendo envolver-se em detalhes da implementação, mas apenas usar seus serviços.

• API RESTFul: indica se a solução possui uma Application Programming Inter-

face Representational State Transfer, em português Inteface de Programação de

Aplicações com Transferência de Estado Representacional, uma representação pa- dronizada, verbos e métodos usados, bem como, URLs. Isso permite que o usuário possa criar aplicações que suportam solicitações GET, PUT, POST, DELETE, co- municações frequentemente utilizadas no desenvolvimento de serviços da web para conectar e integrar serviços na web.

• GUI: indica se a solução possui uma Graphical User Interface no português Interface Gráfica para o Usuário. Isto permite uma interação do usuário com a aplicação por meio de elementos gráficos como ícones e indicadores visuais; dessa forma, usuários leigos podem experimentar a ferramenta, sem precisar escrever nenhuma linha de código, e até mesmo utiliza-lá para fins didáticos.

• Estrategia de Processamento: indica se a solução utiliza alguma das técnicas como (threads, multiprocessamento, GPU, computação distribuída, etc.) para oti- mizar o processamento. Tal aspecto demonstra o quanto a solução é robusta para cenários mais complexo, podendo ser usada para processar corpus extensos, com- partilhando recursos de várias máquinas, reduzindo-se assim, o tempo de processa- mento.

• Banco de Dados: indica se a solução possui alguma interface de conexão com banco de dados, pois o uso de banco de dados otimiza o processamento de dados, em relação

50

a armazenamento de dados em arquivos de texto a onde existente de latência 1I/O.

O uso de banco de dados permite também, salvar o resultado da análise do dataset processado e disponibilizar os dados para consulta posteriormente. Em caso de erros durante o processamento dos dados, possibilita ao usuário reprocessar o dataset a partir de uma de um ponto específico, evitando o reprocessamento completo. • Estatísticas do Dataset: indica se a solução possui algum recurso estatístico para

descrever. Isso permite que o usuário possa compreender melhor de forma geral os dados que ele está analisando.

• Anotação do Dataset: indica se a solução possui algum recurso que realiza anota- ção do dataset, seja usando um formato especifico, ou linguagens de marcação como

XML ou JSON.

• Arquitetura/Padrões de Projetos: indica quais as boas práticas da engenha- ria de software utilizadas. Permite visualizar as decisões tomadas para solucionar problemas correntes e recorrentes no desenvolvimento da solução, bem como a sua robustez e flexibilidade, que refletem diretamente no aumento da qualidade do có- digo tornando-o elegante e reusável.

• Requisitos do Sistema: indica quais são requisitos base do sistema. Informa as dependências que o sistema tem (linguagem de programação), o que impacta dire- tamente na sua utilização dependendo do projeto a ser aplicado.

• Formato de Saída: indica quais os formatos de arquivos de saída a ferramenta disponibiliza. Isto indica quais os formato de arquivos são gerados após as análises, tais arquivos (XML, JSON, FoLia, etc.) podem ser consumidos depois por sistemas, aplicações de representações de conhecimento ou aprendizado de máquina.

• Licença: indica a natureza do sistema, se é proprietário ou open source. O software, com código fonte aberto, permite que outros pesquisadores possam estudar e me- lhorar as soluções já existentes, sendo assim, limita-se a discutir apenas estruturas abertas livremente disponíveis.

• Documentação: indica se o artefato construído possui documentação. Isto impacta na qualidade e credibilidade do que foi desenvolvido. A documentação permite ter uma comunicação clara, histórico de ações para avaliações mais minuciosas, maior controle para o desenvolvimento do projeto, alinhamento de informações e base para tomada de decisões.

1 Na ciência da computação, I/O é um termo utilizado para designar os sistemas que fazem uso intensivo