Buscar

TCC - SISTEMAS DE INFORMAÇÃO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 75 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 75 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 75 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal de Santa Catarina
Departamento de Informática e Estatística
Modelo de Entendimento da Leitura de Literatura Brasileira por Meio da Avaliação de Observações Feitas 
Luis Gustavo Saibro da Silva
Florianópolis
2022
RESUMO
Os meios de leitura digital estão cada vez mais comuns e já fazem parte da nossa realidade cotidiana, como no caso de documentos feitos por editores de texto online e também por dispositivos de leitura de livros digitais. Também mudou a forma como se faz anotações, não se usam mais os marcadores de texto, mas sim a seleção de texto que são bem comuns nesses meios digitais, onde o leitor pode escrever anotações, colocar links de materiais de pesquisa e também materiais auxiliares para enriquecer a leitura. Outra grande vantagem dos meios digitais é a facilidade de compartilhamento de informações para diversas pessoas. Uma ferramenta utilizada pelo Núcleo de Pesquisa em Informática, Literatura e Linguística( NUPILL) é o DLNotes que é utilizado por professores e alunos, onde eles podem criar anotações em obras digitalizadas. Com essa grande variedade e quantidade de informações disponíveis torna-se difícil analisar toda essa informação para extrair conhecimento, e é aí que entra a inteligência artificial para auxiliar nesse processo. Inteligência artificial é um campo muito amplo com diversas ferramentas para serem utilizadas nesse processo de análise, como machine learning, ontologias, processamento de linguagem natural. Este trabalho busca desenvolver um modelo de regressão das notas das anotações feitas na ferramenta DLNotes utilizando anotações e o desempenho acadêmico como dados de entrada. Para fazer a classificação será utilizada a nota da anotação como parâmetro de avaliação, criando então um modelo que será treinado utilizando Support Vector Machine, Regressão Linear,etc. A avaliação do modelo será feita por meio de um conjunto de testes obtidos a partir das atividades de uma turma. 
Palavras-chave: DLNotes, Processamento de linguagem natural, Machine Learning, Ontologias, NUPILL
1. INTRODUÇÃO	4
2. OBJETIVOS	9
2.1. OBJETIVO GERAL	9
2.2 OBJETIVOS ESPECÍFICOS	9
3. FUNDAMENTAÇÃO TEÓRICA	10
3.1 PROCESSAMENTO DE LINGUAGEM NATURAL	10
3.2. PRÉ-PROCESSAMENTO	11
3.3. APRENDIZADO DE MÁQUINA	11
3.4. TÉCNICA DE VETORIZAÇÃO	12
4. TRABALHOS RELACIONADOS	13
4.1 TOWARDS ONTOLOGY-BASED NATURAL LANGUAGE PROCESSING	13
4.2 DLNOTES2: ANOTAÇÕES DIGITAIS COMO APOIO AO ENSINO	16
4.3. A FORMAL SPECIFICATION FOR SYNTACTIC ANNOTATION AND ITS USAGE IN CORPUS DEVELOPMENT AND MAINTENANCE: A CASE STUDY IN UNIVERSAL DEPENDENCIES	21
4.4. COMPARAÇÃO ENTRE RESULTADOS DOS TRABALHOS RELACIONADOS	28
5. DESENVOLVIMENTO	29
5.1. ETAPAS DO DESENVOLVIMENTO	29
5.2. APRESENTAÇÃO DOS DADOS	31
5.3. ANÁLISE E VISUALIZAÇÃO DOS DADOS	34
5.4. PRÉ-PROCESSAMENTO DOS DADOS	35
5.5. TREINAMENTO	38
5.6. VALIDAÇÃO DO MODELO	46
6. CONCLUSÃO	53
7. REFERÊNCIAS	55
Lista de Figuras:
	Figura 1 - Figura da interface do DLNotes2 - imagem retirada do artigo original	18
Figura 2 -Figura da interface de criação de uma anotação semântica - imagem retirada do artigo origina	18
Figura 3 - Figura da interface da KB - imagem retirada do artigo original	19
Figura 4 - O predicado neste caso é o verbo “sinks”, o sujeito é “amphibious” e “Lake”.	23
Figura 5 - Diagrama criado na ferramenta Draw.io	29
Figura 6	33
Figura 7	34
Figura 8 - imagem retirada da documentação da biblioteca: https://spacy.io/usage/spacy-101	35
Figura 9	35
Figura 10	36
Figura 11	36
Figura 12	45
Figura 13	45
Figura 14	46
Figura 15	47
Figura 16	47
Figura 17	48
Figura 18	49
Figura 19	50
Lista de Tabelas:
Tabela 1	28
Tabela 2	31
Tabela 3	32
Tabela 4	32
Tabela 5	38
Tabela 6	38
Tabela 7	39
Tabela 8	40
Tabela 9	41
Tabela 10	42
Tabela 11	42
Tabela 12	43
Tabela 13	44
Tabela 14	51
Lista de Abreviações:
NLP – Natural language processing
BERT – Bidirectional Encoder Representation from Transformers
NER – Named Entity Recognition
POS – Part of Speech Tagging
PLN – Processamento de linguagem natural
SVM – Suport Vector Machine
	MT – Machine translation
	KNN – K-nearest neighbors
RD – Repositórios Digitais 
			Agradecimentos
Aos amigos e familiares, por todo o apoio e pela ajuda, que muito contribuíram para a realização deste trabalho, que sempre estiveram ao meu lado, pela amizade incondicional e pelo apoio demonstrado ao longo de todo o período de tempo em que me dediquei a este trabalho.
Aos professores, pelas correções e ensinamentos que me permitiram apresentar um melhor desempenho no meu processo de formação profissional ao longo do curso.
E a todos aqueles que contribuíram, de alguma forma, para a realização deste trabalho
1. INTRODUÇÃO	
A quantidade de informação de textos livres que temos hoje em dia é cada vez maior e extrair conhecimento destes é muito importante, aí entra o processamento de linguagem natural que é cada vez mais utilizado em modelos do mundo real. A área vem se tornando cada vez mais predominante entre os tópicos mais procurados em Sistemas de Informação pois possui uma imensa gama de aplicações. Ela faz parte de uma área maior que é a de inteligência artificial,e é baseada na criação de modelos. Um modelo nada mais é do que um algoritmo ou um conjunto de funções matemáticas que conseguem obter aprendizado com base nos dados de entrada. O mesmo conceito se aplica à área de machine learning, que utiliza modelos de funções matemáticas para obter resultados específicos com base nos dados de entrada. Ontologias também fazem parte do campo da inteligência artificial, mas diferem tanto de machine learning quanto de PLN pois não são baseadas em modelos matemáticos. Segundo Gruber, ontologias são um conjunto de primitivas representacionais que modelam um sistema de conhecimento.[1] São definidos elementos e seus relacionamentos, portanto é preciso definir tudo a priori. 
A construção de um modelo possui diversas etapas, sendo as mais importantes o treinamento e a avaliação, e para fazer esta avaliação é preciso medir a robustez do modelo treinado[2]. Os dados de entrada podem vir de diversas fontes, como textos de blogs, comentários na internet, livros, etc. Os dados que serão abordados neste trabalho vem da ferramenta DLNotes2, que é utilizada para fazer anotações em trechos de livros que são lidos por alunos da graduação nas disciplinas de literatura. 
Para fazer a avaliação e treinamento utilizando técnicas de processamento de linguagem natural é de suma importância que se tenha uma boa fase de preparação dos dados, chamada de pré-processamento. Ela pode envolver a limpeza dos dados, integração dos dados com outras fontes e a transformação dos dados. Os dados podem pertencer a três categorias diferentes, podendo ser dados não estruturados, estruturados e semiestruturados[3]. A criação de um modelo é um processo interativo e adaptativo que envolve o teste de diversos modelos até que se atinja um objetivo específico. 
A ferramenta DLNotes permite a inserção de anotações livres e anotações semânticas em determinados trechos dos livros, onde o professor responsável pode fazer a avaliação destas e também é possível que se compartilhe com outras pessoas. Essas anotações semânticas podem ser utilizadas no contexto das ontologias para criar conjuntos de representação de conhecimento. O professor responsável pela disciplina faz a avaliação das anotações feitas atribuindo uma nota para cada uma delas que são desenvolvidas em atividades. Estes dados são a entrada para o modelo de PLN que será criado, essas anotações serão os dados de entrada para o treinamento e posteriormente avaliação do modelo utilizando machine learning e as anotações semânticas serão utilizadas para a criação dos conjuntos de representação de conhecimento. 
Visto a grande quantidade de dados disponíveis para fazer análise utilizando as técnicas citadas acima, este trabalho propõe responder a seguinte questão de pesquisa: É possível criar um modelo capaz defazer a avaliação destas anotações? 
2. OBJETIVOS
2.1. OBJETIVO GERAL
Criar um modelo capaz de predizer a nota da anotação de alunos de graduação sobre seus estudos em obras literárias utilizando técnicas/métodos de inteligência artificial.
2.2 OBJETIVOS ESPECÍFICOS
· Analisar e entender o estado da arte das técnicas de processamento de linguagem natural (PLN), machine learning e ontologias no contexto de PLN.
· Desenvolver um modelo capaz de predizer as notas dos comentários dos alunos utilizando notas e comentários como entrada. 
· Treinar diferentes modelos e avaliar quais foram os melhores nos resultados utilizando a métrica R2.
· Delinear um experimento para avaliar o desempenho do modelo com diferentes formas de treinamento e limpeza de dados.	
3. FUNDAMENTAÇÃO TEÓRICA
Este capitulo tem por objetivo apresentar o arcabouço teórico para a construção dos modelos que serão criados neste trabalho. Na próxima seção, 3.1 é apresentado o conceito de processamento de linguagem natural.
3.1 PROCESSAMENTO DE LINGUAGEM NATURAL
Com a crescente quantidade de dados de linguagem natural que se tem atualmente, é natural que se busque fazer o processamento desses dados por meio de máquinas, visto que é inviável fazer o processamento manualmente. Porém este é um problema não trivial do ponto de vista computacional, pois o computador é um sistema que utiliza lógica binária para processar informações e fazer a representação de linguagem humana para a binária não é simples. A muito tempo se tem estudado sobre este assunto, o primeiro a propor uma máquina capaz de se comunicar utilizando linguagem natural foi Alan Turing com seu artigo “Computing Machinery and Intelligence”(Turing,1950). 
Desde então vem-se estudando maneiras de fazer com que um sistema computacional processe dados de linguagem humana. Foram feitas diversas tentativas de resolver esse problema de processamento, como a utilização de árvores de decisão, a utilização de estatística com base no vocabulário. Sistemas de representação também foram usados, como é o caso de Ontologias, que criam classes e relações para representar o mundo. O uso desse método vem crescendo nos últimos anos, grandes consórcios como o W3C tentam criar padrões de ontologias para o uso na web, como o OWL 2( 2012, W3C). 
A utilização de outros métodos que são centrados em dados, como machine learning e deep learning foi se popularizando conforme o processamento das máquinas foi melhorando com o passar dos anos. Sendo atualmente o método mais comum para fazer o processamento de dados de linguagem natural, onde linguagens de programação como o Python oferecem todo um ecossistema com diversas bibliotecas prontas como o NLTK, Scipy, Keras, Tensor Flow, PyTorch. Um dos problemas enfrentados pelos modelos baseados em dados é que os dados muitas vezes apresentam erros,como bias, erros nos dados, por se tratarem de dados do mundo real. Isso afeta diretamente o desempenho desses modelos, prejudicando sua aplicabilidade em determinadas situações. 
3.2. PRÉ-PROCESSAMENTO
O pré-processamento dos dados é uma etapa fundamental para se criar um bom modelo, pois quanto melhor for a qualidade dos dados, melhor será o modelo criado. Para dados textuais é de fundamental importância que se tenha uma boa preparação dos dados, já que os dados que são processados nesta etapa vão são entradas para as próximas etapas do processo de modelagem( Kannan; Gurusamy,2014). Existem diversas formas de pré-processar os dados, como tokenização que é o processo de transformar o texto bruto em palavras, frases em tokens que serão utilizados como entrada para a modelagem, aqui também pode entrar o processo de remover step words, que são palavras de ligação, como artigos, preposições, etc. Ainda há a possibilidade de utilizar ontologias na etapa de pré-processamento dos dados, para remover ambiguidades e contextualizar os dados textuais. Também existe o método de “stemming” para processar os dados, este método consiste em utilizar regras gramaticais para retirar palavras que não acrescentam tanto ao contexto do problema. 
3.3. APRENDIZADO DE MÁQUINA
Atualmente existem diversos algoritmos capazes de aprender com base em dados, esses algoritmos tentam simular comportamento humano simulando o processo de aprendizado com base no ambiente(Murphy, J Martín,2015 )[4]. Também existem diversas formas de aprendizado, como o aprendizado supervisionado, não supervisionado e aprendizado por reforço. Os algoritmos mais conhecidos são decision trees, KNN, regressão, suport vector machine(SVM). As decision trees utilizam condições booleanas para a tomada de decisão, o KNN faz o agrupamento dos dados em diversos conjuntos por similaridade, a regressão utiliza um método matemático para aproximar os dados a uma curva. E o SVM utiliza vetores de suporte para separar os dados.
3.4. TÉCNICA DE VETORIZAÇÃO
Para ser possível classificar palavras ou frases nos algoritmos de machine learning, é preciso que se faça a vetorização dessas palavras ou frases, antes de colocá-los nos algoritmos. A técnica de vetorização consiste em fazer a transformação das palavras ou frases em número. Para isto pode ser utilizada a abordagem de transformar cada palavra em um número com base na frequência das palavras contidas em um texto, essa técnica se chama “Bag of Words”, esse é o método mais simples de fazer a vetorização. Também é possível utilizar a técnica de TF-IDF(Leskovec, Jure, et al, 2010)[6], que consiste em estabelecer a importância da palavra contida no texto com base na sua frequência de aparição. Outra forma de vetorização é com a utilização de redes neurais, usando bibliotecas do python como NLTK ou spacy. 
4. TRABALHOS RELACIONADOS
Este capítulo tem como objetivo apresentar trabalhos relacionados ao conteúdo desenvolvido neste trabalho. Apresentando técnicas utilizadas por outros autores em seus trabalhos, fazendo um comparativo com o que se pretende abordar neste trabalho.
4.1 TOWARDS ONTOLOGY-BASED NATURAL LANGUAGE PROCESSING
Este artigo foi escrito por Estival, Nowak e Zschorn, do grupo de integração de sistemas humanos. Nesse artigo os autores descrevem um projeto que utiliza ontologias como um “processo de raciocínio usado por um sistema de gerenciamento de informações e também para apresentação de informações”.
Atualmente a utilização de ontologias vêm sendo reconhecida como uma peça chave nos sistemas de informação e no processamento de informações. Gruber(1995) descreve ontologias como sendo “uma especificação explícita de uma conceitualização”. Logo, a conceitualização de um domínio é de fundamental importância para entendê-lo, para então, posteriormente, processar informação daquele domínio. É aí que entram as ontologias, para auxiliar no processo de conceitualização de um domínio, dando o significado aos termos, para posteriormente processar informação. Neste artigo, os autores apresentam algumas sugestões de como o processamento de linguagem natural pode ser beneficiado pelo uso de ontologias. Sugerem que as ontologias usadas no componente de raciocínio sejam acopladas no componente léxico do processamento de linguagem natural.
O projeto de pesquisa que os autores trabalham é o “Future Operations Centre Analysis Laboratory(FOCAL)” cujo objetivo é criar um “paradigma pioneiro em ambientes de comando por meio de um uso superior de capacidade e de consciência situacional.”. Lá é feito o processamento de queries de linguagem natural e é dada uma formalização do domínio e também de raciocínio. são processadas e mapeadas para uma representação formal, sendo entrada para um subsistema de raciocínio para então o usuário final ter uma resposta em linguagem natural. O FOCAL também utiliza uma arquitetura de agentes, usando “CoABS( Control of Agent Based System) Grid” em sua infraestrutura. Os agentes são implementados usando ATTITUDE e a comunicação entre eles é feita através de mensagens de strings. O uso principal do KR é dar aos usuários o gerenciamento automatizado de conhecimento. 
Lambert(2001) defendeu o uso do frameworkde Dennett(Dennett,1987). Ele identifica as maneiras que as pessoas prevêem situações, elas são três: a física, que usa princípios físicos, a de design que usa princípios de design e por último a intencional, que usa a racionalidade. Porém, Lambert adiciona outras duas camadas, a metafísica e a social, e esses cinco princípios propostos por Lambert sugerem uma forma de conceitualizar um domínio, que são usados como base das ontologias construídas pelo projeto. 
Ontologias explicam o significado das coisas, e para os autores do artigo a linguagem ontológica que foi escolhida foi SHIQ(Description logic SHIQ), do projeto de DAML+OIL(DARPA Agent Markup Language + Ontology Inference Layer). Também foi escolhido FaCT[footnoteRef:1] como raciocinador da lógica SHIQ feita no editor OilEd, também foi implementada no projeto RACER[footnoteRef:2]. Esses frameworks dão o formalismo para a construção de ontologias, mas não o conteúdo, eles devem ter duas coisas: uma linguagem formal que possa ser especificada e também capacidade de prover raciocínio que possa ser demonstrado. Foi escolhido também as frameworks OIL e RACER, sendo as ontologias implementadas pelo editor OilEd e verificadas usando FaCT. Em tempo de execução é usado um agente RACER. [1: O FaCT pode ser encontrado em: http://www.cs.man.ac.uk/~horrocks/FaCT/ 
² O RACER project pode ser encontrado em: https://www.ifis.uni-luebeck.de/~moeller/racer/] [2: 
] 
Porém os autores(Estival, Nowak, Zschorn,2004) ressaltam um ponto importante:a lógica de descrição que escolheram permite apenas relações binárias. Para contornar esse problema eles usam as frameworks de forma a representar n-arrays e lógicas de ordem superior, uma relação entre 4 entidades pode ser representada por meio de duas relações entre outras duas. Então as ontologias servem para representar de forma formal as informações e possibilitam os agentes fazerem queries nessas bases de conhecimento. Os autores apontam que no momento em que foi publicado, o projeto contém por volta de 300 conceitos, 80 relações e mais de 100 indivíduos. 
O input do processamento de linguagem natural é feito por meio de fala ou de texto que o usuário insere no sistema. Os autores escolheram Nuance para o reconhecimento da fala e o pacote Regulus NLP para a gramática. A representação de significado feito pelo processamento de linguagem natural é passado a um agente, que então traduz para uma expressão do framework ATTITUDE. 
Eles(Estival el al,2004) destacam duas formas nas quais ontologias podem ajudar em NLP, a primeira é que elas podem criar diretamente o componente léxico, definindo termos para as palavras e a segunda é que elas são uma base de conhecimento, expressadas em linguagem formal, fornecendo então uma forma de processar coisas mais complexas. Os autores(Estival, Nowak, Zschorn,2004) concluem que ontologias podem ajudar no processamento de linguagem natural para o projeto FOCAL, combinando as frameworks OIL/RACER com o sistema de diálogo deles. Elas fornecem representações semânticas que são usadas para um processamento mais complexo. São uma base de conhecimento que servem para criar os componentes léxicos.
4.2 DLNOTES2: ANOTAÇÕES DIGITAIS COMO APOIO AO ENSINO
Este artigo faz a apresentação da ferramenta DLNotes2, ela possibilita que estudantes e professores façam anotações sobre certos conteúdos nas suas atividades educacionais. Ela gera uma base de conhecimento que pode ser visualizada graficamente, também é possível que se façam alterações nesta base. 
É cada vez mais frequente o uso de Repositórios Digitais(RDs) que oferecem conteúdos de aprendizagem. Mas isto não garante a eficiência no ensino e no aprendizado dos usuários. Por isso deve-se buscar o aprimoramento do uso dessas ferramentas no ensino. Anotações vêm sendo utilizadas há muito tempo pelas pessoas para associarem comentários e ideias a um determinado documento. Essas anotações podem ser de três tipos: 
1. Não estruturadas, que possibilitam marcar uma parte de um texto e associar um texto livre. 
2. Estruturadas, que possibilitam criar estruturas com campos como titulo, descrição, etc.
3. Semânticas, que possibilitam identificar entidades no texto, utilizando ontologias para fazer suas referências. 
A ferramenta DLNotes2 possibilita a criação de atividades de anotação e tipos de anotação, sendo utilizada nas atividades de ensino da área de Literatura da Universidade Federal de Santa Catarina. A grande diferença entre essa ferramenta e outras é que ela permite a anotação semântica que possibilitam identificar entidades no texto que é estudado, podendo usar ontologias de domínios para fazer a associação dos conceitos. Os usuários contribuem para a geração de uma base de conhecimento(Knowledge Base - KB). Essas anotações e a base de conhecimento ajudam a fazer a classificação e análise das atividades educacionais. 
Existem diversas ferramentas parecidas, porém elas não permitem a criação de anotações semânticas. Poder utilizar ontologias nas anotações possibilitam três aspectos: fazer a representação mais robusta entre as entidades e seus relacionamentos, também permitem a troca de conhecimento entre diversos sistemas por meio de uma conceitualização compartilhada e por último possibilitam que tecnologias da Web Semântica sejam utilizadas, permitindo o processamento por máquinas, ajudando no processo de inferências e na busca semântica. A ferramenta DLNotes2 oferece os recursos necessários para criar atividades educacionais que envolvam anotações, também possibilitam a criação de esquemas dessas anotações, permitindo categorizar essas anotações por meio de taxonomias, sem de fato torná-las anotações semânticas. Ela é versátil o suficiente para poder alterar as ontologias de domínio de acordo com o problema estudado, com os usuários colaborando na criação de KBs, gerando indivíduos para essas anotações semânticas. No final ainda existe a possibilidade de ter uma visão gráfica sobre o que foi criado. 
Essa ferramenta pode ser aplicada de duas formas distintas, de forma integrada a RDs, podendo criar uma anotação tanto pública, quanto privada ou então ela pode ser utilizada como uma ferramenta de apoio ao ensino, oferecendo ao professor criar atividades envolvendo anotações digitais. A ferramenta é implementada na linguagem de programação PHP, usando a framework CodeIgniter, utilizando o banco de dados MySQL. Também possibilitam trabalhar com dados no formato RDF, podendo importar ou exportar esse tipo de dado. Já no lado do cliente foi utilizado HTML e JavaScript, e as bibliotecas jQuery e D3.js.
Ela também possibilita importar ontologias, que devem ser representadas usando RDFS(RDF Schema), e também a importação de mapas mentais através da ferramenta FreeMind. Então ela pode ser utilizada até mesmo por usuários que não sejam das áreas de tecnologia. Usuários que têm permissão de administrador podem criar atividades de anotação, nas quais os estudantes podem criar anotações nessas atividades que são dadas como tarefas para eles. 
A integração com outros ambientes virtuais de aprendizagem é um dos requisitos do projeto, sendo assim foi adotado o protocolo IMS Basic LTI (Learning Tools Interoperability). Dentro da terminologia do protocolo, o DLNotes2 é classificado como um produtor LTI, que pode ser usado como uma ferramenta externa em qualquer Consumidor LTI. 
Os usuários dispõem de um documento HTML de uma atividade proposta, no qual ele pode visualizar o documento original junto com as anotações que foram criadas previamente. Existem diversos tipos de anotações estruturadas, como comentário, recomendação, tarefa, etc. A anotação semântica difere das anotações estruturadas pois é tem um único tipo. Então ele pode optar por essas duas classes de anotações, estruturada que é chamada de Livre ou semântica. O tipo Livre é composto de três partes: o tipo de anotação, um título que pode ou não ser escrito e a anotação, que contém um corpo com texto formatado para o aluno digitar de forma livre. Após o aluno criar uma anotação, é criadoum fórum de discussão para os participantes daquela atividade. O tipo Semântica apresenta outra interface, na qual apresenta uma hierarquia de classes da ontologia de domínio, podendo o usuário associar o texto selecionado a essa ontologia. Cada instância é armazenada na KB e pode ser recuperada de forma fácil e precisa, podendo recuperá-la digitando uma parte do seu nome. 
Na interface gráfica da KB pode-se utilizar filtros de determinadas classes, podendo gerar uma visualização customizada da KB. Também é possível que se edite a KB por esta interface. 
Figura 1 - Figura da interface do DLNotes2 - imagem retirada do artigo original 
Figura 2 -Figura da interface de criação de uma anotação semântica - imagem retirada do artigo origina
Para ilustrar o uso dessa ferramenta foi feito um caso de uso na disciplina de Literatura Brasileira. Os pesquisadores (MITTMANN et al, 2013) criaram uma ontologia de domínio de análise literária, que decompõe o texto analisado em suas partes construtivas, podendo assim entender melhor o relacionamento entre as entidades e com isto compreender e interpretar melhor a obra como um todo. Essa ontologia criada, permite categorizar os indivíduos em Personagem, Bairro, Local, Ação e também existem as classes que são usadas para marcação semântica, como Gênero, Estilo. A DLNotes2 vem sendo usada há 2 anos tanto na graduação quanto na pós-graduação, auxiliando os alunos nos questionamentos sobre certos trechos da obra, além de ajudar na discussão da obra, pois cada aluno pode criar anotações das anotações. 
Figura 3 - Figura da interface da KB - imagem retirada do artigo original
Por fim, os autores(MITTMANN et al, 2013) concluem que a ferramenta “oferece à aprendizagem eletrônica recursos para apoiar o ciclo de produção e agregação de conhecimento.”. Ela auxilia na construção e associação do conteúdo que foi lido, por meio das anotações, além da discussão entre os usuários. Além de gerar uma base de conhecimento que é construída de forma colaborativa, podendo ser visualizada para facilitar o entendimento do conhecimento que foi produzido.
4.3. A FORMAL SPECIFICATION FOR SYNTACTIC ANNOTATION AND ITS USAGE IN CORPUS DEVELOPMENT AND MAINTENANCE: A CASE STUDY IN UNIVERSAL DEPENDENCIES
Essa dissertação foi escrita por Guilherme Paulino Passos, para o COPPE, da Universidade Federal do Rio de Janeiro. Ele apresenta um caso de estudo no qual se aplica treebanks para enriquecer os dados para o Processamento de Linguagem Natural( PLN).
Para fazer o processamento de linguagem natural é preciso que se tenha os dados anotados, que provém informações adicionais para os dados linguísticos, sendo necessários para o aprendizado supervisionado, mas também para fazer a avaliação de quaisquer modelos de PLN. O foco deste trabalho é a anotação chamada treebanks. Eles existem em diversas linguagens e domínios, mas não para todos os domínios e a sua qualidade muitas vezes pode ser duvidosa. Produzir esse tipo de dado é muito custoso, tanto monetariamente quanto em custo de tempo de trabalho. Em muitos casos esses dados contém erros, fazendo com que seja preciso de um volume de dados muito maior para compensar esses erros. Para corrigir esse problema existem três possibilidades: (i) melhorar a qualidade desses dados, (ii) reduzir o custo de anotar esses dados seja monetariamente ou em tempo de trabalho, (iii) reduzir a necessidade de dados anotados. 
Neste trabalho o autor( Guilherme, 2018) propõe uma solução para este problema por meio de uma especificação formal de anotações sintáticas padrões, que permite a definição exata das possíveis anotações. Podendo solucionar os três pontos anteriores: (i) essa especificação cria um método de automaticamente detectar erros e melhorar queries nos dados, (ii) essa detecção pode criar novos conjuntos de dados anotados e (iii) pode ser explorada por ferramentas de machine learning, criando modelos mais precisos com uma quantidade menor de anotações.
O autor(Guilherme, 2018) aponta as seguintes contribuições para o campo estudado: Uma OWL-DL para Universal Dependencies( UD), apresentando suas limitações e designs. Faz a avaliação da sua utilidade, respeitando os padrões de conjunto de teste, mostrando uma grande precisão em diferentes linguagens, no fim comparando com outros validadores de UD já existentes. Pesquisam métodos para manter os conjuntos de anotações, criando um contexto de como isso contribui para sua ontologia. 
Dentro das linguagens naturais, a sintaxe é o estudo que faz as relações entre as palavras e em como isso se reflete nas sentenças e nos textos( Van Valin, 2004). Geralmente se usa uma forma de representação, no caso é a análise sintática, na qual se recebe um texto e produz uma forma de representação da estrutura sintática deste texto, descrevendo a relação entre as palavras do texto. Um conjunto de dados de linguagem natural é chamado de “corpus” e um “corpus” anotado com uma estrutura é chamado de “treebank”. Essas anotações são bastante úteis nos estudos topológicos, como na classificação das linguagens, na estrutura linguística. Alguns dizem que essa estrutura sintática pode proporcionar o entendimento da cognição humana ou até mesmo na estrutura da mente( SAG et al, 2003). A análise sintática também pode ser útil nos campos de “machine translation( MT)”( Way, 2010), “information extraction”(Mausam et al., 2012). 
A vantagem de se usar as representações sintáticas para PLN é que possibilita composicionalidade, que é um princípio que diz que o sentido das partes individuais pode dar o sentido de uma parte mais complexa, porém nem todos os aspectos do sentidos são composicionais(Bender et al., 2015). O uso desse método tem vantagens para a consistência, compreensão e escalabilidade( Bender et al., 2015). Atualmente o maior desafiante é o uso de “Neural Machine Translation”, que é o estado da arte em termos de resultados, não precisando fazer a análise morfológica nem sintática, onde se usa uma “Deep Neural Network” para fazer o aprendizado. Para o resto deste artigo será explorada a relevância da análise sintática para as aplicações. 
As representações sintáticas podem vir de duas formas: representações das estruturas das frases e representações de dependências. A primeira é uma representação em forma de árvore na qual as folhas representam as palavras ou strings vazias, e os nós internos vão representar símbolos especiais. Fazendo assim consegue-se representar siside forma mais natural a estrutura sintática, quando se faz a decomposição recursiva das partes menores têm o mesmo papel de uma unidade sintática. Essas partes menores são chamadas constituintes ou frases e elas vão receber uma classificação de acordo com seu papel na sintaxe. Já as árvores de dependência tem em seus nós palavras ou strings vazias, são usadas como dependências sintáticas, que são as relações binárias entre duas palavras, tendo uma representação da sua função gramatical. É possível fazer a representação das dependências linguísticas nas árvores de estrutura de frase por meio de convenções e específicas anotações não terminais e também a estrutura sintática pode ser expressada na forma das árvores de dependência, usando os rótulos de relação e palavras. 
Também existem duas famílias de métodos de análise: as baseadas em gramática e as baseadas em dados. A primeira utiliza gramática formal para atribuir as representações para as palavras e a segunda utiliza dados e algoritmos para gerar a análise sintática. Se utilizar anotações para essa representação sintática, é o caso de aprendizado supervisionado, caso contrário é aprendizado não supervisionado. 
O foco do autor(Guilherme, 2018) com este trabalho é o uso de UD, que é uma iniciativa para ter uma consistência de anotações em múltiplas linguagens, que possibilita fazer comparativos e desenvolver modelos de PLN em múltiplas linguagens. Esse trabalho foi baseado em trabalhos anteriores, como: Stanford dependencies(DE Marneffe et al, 2014), universal Google dependency scheme(Mcdonald et al, 2013)e Google universal part-of-speech tags(Petrov et al, 2008). Na versão atual conta com 122 treebanks para 71 linguagens. O foco de trabalhar com UDs é maximizar o paralelismo entre as mais diversas linguagens, sendo assim, para múltiplas linguagens uma estrutura similar deve ser anotada de forma similar também. É possível criar subtipos para refinar uma análise. O estudo de linguística diferencia entre palavras de conteúdo e palavras de função, esta última apenas complementa a primeira. Essas palavras de complemento servem para dar informação semântica, como quantidade, género e caso. São consideradas uma classe fechada, ou seja, se tem uma lista fixa, sendo pouco frequente a alteração dessa classe, podemos dar o exemplo de preposições, conjunções, pronomes e determinadores. Agora palavras de conteúdo são consideradas de classe aberta, novas palavras são frequentemente incorporadas na linguagem. Podemos dar o exemplo dos substantivos, verbos, adjetivos. 
O autor( Guilherme, 2018) cita um exemplo dessa estrutura na figura abaixo, onde uma oração é representada. Todo o predicado da oração é representado na raiz, o sujeito é um dependente direto. Podendo notar que as palavras de função ficam nas partes inferiores da árvore. 
Figura 4 - O predicado neste caso é o verbo “sinks”, o sujeito é “amphibious” e “Lake”.
	
Uma das motivações que levam a criar uma especificação formal é tirar a ambiguidade das descrições e poder fazer inferências sobre ela, sendo melhor ainda se as inferências forem automáticas. Um dos esforços é criar uma documentação para essas anotações, podendo verificar inconsistências. Porém é uma tarefa trabalhosa e não trivial. Essa documentação pode ter uma especificação formal que pode ser automaticamente avaliada de acordo com a documentação das treebanks para avaliar a consistência. Porém criar uma especificação formal requer muito trabalho de um especialista do domínio e se torna caro não só financeiramente, mas também computacionalmente. O autor(Guilherme, 2018) defende dois pontos: criar um conhecimento explícito não é necessariamente uma tarefa manual e também não é só feita por uma pessoa especialista. O segundo é que o padrão de anotações já foi criado por especialistas em linguistas computacionais. Usar ferramentas como OWL dispensam um conhecimento profundo de lógica e uma das motivações por utilizar OWL é que é largamente adotada. O uso prático de ontologias nesse contexto é para dar manutenção ao treebank. A especificação criada possibilita um método de detectar erros nos dados e também a criação de dados anotados, reduzindo assim o custo de criar novos conjuntos de dados. 
No trabalho é utilizado a OWL 2 DL: “The Web Ontology Language, Description Logics semantics(OWL Working group, 2009)” que é o padrão atual adotado pela comunidade e empresas. O motivo de ter escolhido é que é amplamente usado, garante a decidibilidade e tem expressividade para as construções nas dependências universais. O conceito de UD não é uma teoria linguística, mas um compilado de conceitos de forma que entendê-lo é necessário para justificar o design adotado, mas também para aplicá-lo. Para fazer a modelagem é seguido o padrão OLiA, onde as palavras e frases são representadas como uma subclasse de UnitOfAnnotation enquanto que as estruturas morfológicas são representadas pela subclasse de Feature, também sendo representadas com relações OWL. É feito uma conversão de CoNLL-U, onde se produz uma extensão em tempo de execução se elas ocorrerem nos dados. 
Para fazer o processo de validação, o autor(Guilherme,2018) faz a transformação de arquivos CoNLL-U com as anotações em arquivos OWL e faz a verificação de consistência com a ontologia. A pipeline para fazer a validação é feita em três passos: Primeiro se converte o arquivo CoNLL-U em RDF, depois se faz o pré-processamento e por último se faz o raciocínio da ontologia e verificação de consistência. Para testar o método proposto, foi utilizado o treebank em conjunto de treinamento e de teste, fazendo o treinamento no conjunto de treinamento e depois rodando o analisador no conjunto de testes, validando se foi incorreto, contando com o que o analisador considerou como incorreto. 
Os resultados foram que para o Francês GSD e Alemão GSD e para o Portugues Bosque a precisão foi maior que 90%, ficando o Espanhol AnCora perto desse valor. Porém o resultado para o Inglês ETW foi muito pior. A sensibilidade seguiu o mesmo padrão, para o Francês, Alemão e Português ficando entre 14% e 20% para estes três, já para o Inglês ficou por volta dos 30% e para o Espanhol ficou bem alto, ficando em quase 54%. 
Foi feito então uma comparação com o Udapi que é uma framework que provê uma API para UDs, é implementada em várias linguagens porém tem maior suporte na sua implementação em Python. Ela fornece a possibilidade de visualizar os treebanks e também fazer a conversão entre diversos formatos de dados. Foi repetido o mesmo experimento, porém agora utilizando o Udapi ao invés do analisador criado pelo autor(Guilherme, 2018). Esse método tem duas vantagens sobre o analisador, uma delas é que pode utilizar toda a expressividade de uma linguagem de programação e a segunda é que segue um fluxo de controle, sendo mais rápido. 
Os resultados para esse segundo método foram que para o Português a precisão aumentou drasticamente, ficando em torno de 97%, já para o Inglês, Francês e Alemão a precisão diminui bastante, porém teve um aumento na sensibilidade. Para o Espanhol houve um aumento moderado na sensibilidade e um leve aumento na precisão. 
Para NLP é essencial que se desenvolva treebanks, seja para fazer a avaliação, seja para treinar um modelo de ML. Porém treinar os anotadores e garantir sua consistência é um processo difícil. Sendo frequente também a conversão entre especificações de diversos treebanks, o que pode ocasionar ainda mais erros. Uma das ferramentas mais importantes para interagir com um treebank é a query, usando uma ferramenta de busca. 
A verificação de consistência é de suma importância para a produção de novos treebanks e manutenção dos já existentes. Tendo um analisador automático possibilitaria remover as análises rejeitadas e apenas manter as aceitas. Uma das formas de verificar a consistência é por meio de verificação externa e outra é a interna, sendo que a primeira diz respeito a recursos externos ao treebank e a segunda ao treebank em si. O método externo que o autor( Guilherme, 2018) propõe é baseado em ontologias, que não depende dos dados para funcionar, por isso é considerado externo. 
Uma das linhas de pesquisa atual é focada na Web Semântica, com métodos para processar linguagem natural, sendo o principal objetivo criar uma rede de dados linguísticos relacionados. Preferencialmente na web e interoperável. Um dos projetos é a OLiA( Ontologies of Linguistic Annotation), uma de suas aplicações é aumentar a interoperabilidade em corpos de consultas. O autor defende que sua ontologia pode ser útil para o enriquecimento dessas consultas pois esse refinamento possibilitaria buscar mais informações. É apresentado um notebook no Jupyter cujo objetivo é testar essa hipótese, tendo em vista a integração dele com a ferramenta de validação UD. 
A arquitetura do sistema utiliza um notebook Jupyter com um kernel na linguagem Common Lisp, foi desenvolvido um container docker e um docker compose para gerenciar múltiplos containers. A maior parte dos treebanks formatados foram feitos pela biblioteca CLCONLLU. Um serviço REST faz a integração da ferramenta de validação UD com o notebook. 
Um exemplo prático citado no artigo é no domínio de gás e óleo, avaliando informações que foram extraídas neste domínio. Esse corpus tinha 1298 relatórios escritos em inglês. Foi feita uma comparação entre três métodos em 3 documentos:
1. frase de gramática estrutural, implementada com English Resource Grammar( ERG)
2. English Slot Grammar( ESG)
3. UDPipe treinado com UD English EWT 2.0
As gramáticas formais estão sujeitas ao problema de robustez, onde pode serque não se encontre uma análise correta para a frase. Porém relaxando as restrições da gramática, melhorando nesse aspecto, porém piorando no aspecto de ambiguidade, que deve ser resolvido. Outra forma de resolver esse problema é fazendo análises parciais, assim consegue-se utilizar a sensibilidade para avaliar quantas frases foram completamente feitas pela gramática. Já o outro método, que é guiado por dados, como o UDPipe, tem como característica a desambiguação robusta. Fazer comparações entre esses métodos, em relação a sensibilidade, é fácil, enquanto que avaliar a precisão é um processo com mais trabalho braçal. Utilizando um validar os cenários ficam mais próximos, garantindo ao menos um mínimo de qualidade. Então é possível utilizar a sensibilidade de um validador como a proporção de frases analisadas sem erro em relação ao total de frases. 
Utilizando essa técnica em três documentos, o autor(Guilherme, 2018) obteve os seguintes resultados em 203 frases: o ESG analisa corretamente 85% delas, o ERG 63% e por último o UDPipe 60% não foram consideradas inválidas pela ontologia. 
O autor conclui que utilizar ontologias pode ser um dos métodos para achar erros em treebanks e validá-los, independente dos métodos de criação desse treebank. Foi mostrado que para diversas linguagens tem-se um alto grau de precisão para encontrar sentenças erradas. E que uma das vantagens de se utilizar ontologias é que esses erros são encontrados utilizando raciocínio lógico. 
4.4. COMPARAÇÃO ENTRE RESULTADOS DOS TRABALHOS RELACIONADOS
Nos trabalhos relacionados as ontologias são usadas das mais diversas maneiras. Essa seção do trabalho tem como objetivo comparar o uso das ontologias em cada trabalho, na Tabela 1 é mostrada o uso em cada um dos trabalhos:
	Trabalho
	Uso de ontologia
	Domínio
	Dataset
	Métrica
	Towards Ontology-Based Natural Language Processing
	Representação semântica
	Defesa Militar
	Restrito
	-
	DLNotes2: Anotações Digitais como Apoio ao Ensino
	Representação de personagens de literatura e suas relações
	Literário
	Restrito
	-
	A formal specification for syntactic annotation and its usage in corpus development and maintenance: a case study in universal dependencies
	Manutenção dos treebanks
	Domínio genérico
	público
	Sensibilidade e precisão
	Modelo de Entendimento da Leitura de Literatura Brasileira por Meio da Avaliação de Observações Feitas
	Quantidade de aparições das ontologias dentro das anotações
	Literário
	Restrito
	R2
Tabela 1
5. DESENVOLVIMENTO
Neste capítulo do trabalho será apresentado as etapas e o processo de desenvolvimento prático para a criação dos modelos, os levantamentos de perguntas que foram surgindo ao longo do desenvolvimento e as decisões tomadas para cada ponto levantado. É apresentado as métricas de avaliação dos modelos, bem como o processo de limpeza e de construção de um conjunto de dados otimizado para o treinamento do modelo. Por fim, é mostrado o resultado de cada modelo e é feita uma comparação entre os resultados.
5.1. ETAPAS DO DESENVOLVIMENTO
Na imagem a seguir é apresentada a pipeline que será seguida para o desenvolvimento do trabalho. A metodologia adotada é a CRISP-DM, onde há um processo cíclico para a exploração dos dados e o desenvolvimento do modelo. 
Figura 5 - Diagrama criado na ferramenta Draw.io
Na primeira etapa é feita a visualização dos dados, com gráficos que auxiliam a entender os dados e também análises desses dados, usando estatística. Essa é uma etapa fundamental para o processo de criação do modelo, pois com ela é possível entender quais são os dados disponíveis, quais dados possivelmente faltam para a criação do modelo e também são identificados possíveis erros nos dados.
Com a primeira etapa concluída, passa-se então para a segunda etapa, que é a mais importante de todo o processo. É nesta etapa que se concentra a maior parte do tempo e do esforço para a criação de um bom modelo. Nesta etapa é feita a limpeza dos dados, utilizando técnicas como a tokenização, word embeddings, bag of words, entre outras. Porém a proposta deste trabalho é utilizar ontologias, bem como as técnicas clássicas já citadas. O uso de ontologias nesta etapa pode ajudar muito, pois enriquece os dados e também como se trata de dados de linguagem natural, é possível que hajam inconsistências e também ambiguidade nestes dados. Uma outra técnica é utilizar treebanks para enriquecer os dados e extrair a semântica dos dados textuais, criando dois conjuntos de dados pré-processados, um com ontologias e treebank e outro apenas com ontologias, para fins de comparação do modelo.
Na terceira etapa é feita a modelagem dos dados, para isto se utiliza algoritmos de aprendizagem em cima dos dados já pré-processados. Nesta etapa são testados diversos algoritmos no conjunto de dados de treinamento, testando os parâmetros de cada algoritmo para avaliar quais são os que tiveram melhor resultado e também é avaliada a diferença de cada um dos algoritmos conforme a métrica de avaliação que foi escolhida. 
Na quarta etapa é feito o treinamento dos modelos que obtiveram os melhores resultados na etapa anterior. E na última etapa é feito o deploy do modelo para ser testado com dados reais. 
5.2. APRESENTAÇÃO DOS DADOS
O conjunto de dados foi retirado do banco de dados relacional da ferramenta DLNotes2. Os dados principais foram retirados das tabelas de anotações livres, ontologias, anotações semânticas, e atividades. Esses dados foram unidos através da linguagem SQL, e convertidos para um arquivo separado por vírgulas. Os dados retirados do banco de dados contam com o intervalo do texto que o aluno selecionou para fazer a anotação, a anotação livre do aluno e também o nome da atividade que o aluno fez a anotação. Esse é um campo importante pois é com ele que as notas das anotações foram ligadas com o conjunto de dados que saiu do banco de dados. 
Foi obtido um conjunto contendo as notas dadas pelo professor a cada atividade de uma turma. Tendo somente 25 alunos neste conjunto, porém contendo 4 atividades por aluno, totalizando 100 notas. 
A seguir é mostrado um dicionário de dados do arquivo csv gerado:
	Dado
	Descrição
	Exemplo
	exerpt
	Intervalo selecionado para a anotação livre
	A cada canto um grande conselheiro, // Que nos quer governar a cabana, e vinha, // Não sabem governar sua cozinha, // E podem governar o mundo inteiro.
	content
	Conteúdo da anotação
	Nesta estrofe o poeta nos apresenta a realidade das fofocas rotineiras, em cada canto alguém querendo tomar conta da vida alheia sem ao menos tomar conta da sua.
	title
	Título da atividade proposta pelo professor da disciplina
	Poemas de Gregório de Matos
Tabela 2
Este conjunto de dados foi nomeado como “free_annotations” para ser utilizado na biblioteca pandas. Outro conjunto de dados que foi utilizado no trabalho é o conjunto que contém as ontologias contidas no banco de dados da ferramenta. Esse conjunto conta com apenas duas colunas. Os dados serão apresentados em um dicionário de dados abaixo:
	Dado
	Descrição
	Exemplo
	identifier
	Entidade de uma classe da ontologia
	Aires
	label
	Classe da ontologia
	Autor
Tabela 3
Este conjunto de dados foi nomeado como “ontology_full” para ser utilizado na biblioteca pandas. Por último, o conjunto de dados das anotações semânticas, que contém as anotações livres feitas pelos alunos para as atividades da disciplina. Abaixo o dicionário de dados das anotações semânticas dos usuários:
	Dado
	Descrição
	Exemplo
	excerpt
	Intervalo selecionado para a anotação semântica 
	Luisiana,
	identifier
	Entidade de uma classe da ontologia
	Lusiana
	label
	Classe da ontologia
	Pessoa
Tabela 4
Este conjunto de dados foi nomeado como “semantic_annotations” para ser utilizado pela biblioteca pandas.
O banco de dados conta com muito mais informações, porém para o escopo deste trabalho foi decidido ficar apenas com estes dados. Por se tratar de um tema amplo e também de escopo livre, definir o escopo dos dados é fundamental para se ter uma boa análise e também para criarum bom modelo. 
5.3. ANÁLISE E VISUALIZAÇÃO DOS DADOS
O conjunto de dados “free_annotations” contém 707 anotações, sendo 58 delas links para referências externas. Na etapa de Pré-processamento dos dados será explicado as decisões tomadas com relação a esses links. A seguir é apresentado uma imagem contendo o conteúdo inicial do dataframe “free_annotations: 
Figura 6
Nesta imagem nota-se que o conteúdo da coluna “content” está com tag parágrafo <p> do HTML, e com uma formatação não usual. Após feita uma análise com uma biblioteca chamada “chardet” do python foi descoberto que se trata de um texto formatado em “UTF-8”. Já na coluna excerpt, existem diversos caracteres que podem acabar afetando o modelo caso não sejam removidos, como pontuações, “stepwords”, etc. 
O conjunto de dados “ontology_full” contém 100.000 registros, foram retirados quase todas as ontologias contidas no banco de dados. No banco existem aproximadamente 120 mil registros. Este conjunto de dados contém o identifier que é a identificação da entidade e também possui a classe à qual pertence a ontologia. A seguir são mostrados os primeiros 5 registro do conjunto de dados:
Figura 7
5.4. PRÉ-PROCESSAMENTO DOS DADOS
Por conta do escopo deste trabalho, foi decidido não avaliar as referências externas, visto que precisaria criar um web scraper para obter o conteúdo das páginas e isto demandaria muito tempo. As anotações que contenham links foram retiradas do conjunto para não prejudicar o treinamento dos modelos. Depois disto foi feita a filtragem do conjunto de dados para buscar somente as atividades nas quais continham notas dadas pelo professor da disciplina para os alunos. Após esta filtragem, o conjunto de dados ficou com somente 385 registros. 
Na etapa de análise do conjunto de dados foi identificado um problema com a coluna “content”, os dados contidos nesta coluna estão dentro de uma tag HTML, portanto é preciso processá-los para obter somente o conteúdo de dentro da tag. Para isto foi utilizada a biblioteca do python chamada BeautifulSoup. Com o uso desta biblioteca é possível desencapsular o conteúdo contido em hipertextos. Foi criada uma nova coluna para os dados desencapsulados, chamada “clean_content”.
Como não é possível utilizar textos diretamente nos algoritmos de machine learning, foi utilizada uma técnica de vetorização dessas strings contidas nos conjuntos de dados. Foi utilizada a biblioteca de processamento de linguagem natural do python chamada spacy. Esta biblioteca abstrai a criação da pipeline de PLN, já contendo uma pipeline configurada. 
Figura 8 - imagem retirada da documentação da biblioteca: https://spacy.io/usage/spacy-101
	
As colunas “exerpt” e “content” foram vetorizadas e foram criadas duas novas colunas, contendo os vetores gerados pelo processo de vetorização da biblioteca spacy. Esses conteúdos foram colocados nas colunas “vectorized_excerpt” e “vectorized_content”. O conjunto de dados parcial é mostrado abaixo:
Figura 9
Outro passo importante no pré-processamento é conseguir identificar na estrutura do texto digitado pelo aluno as informações sintáticas contidas neste texto. Para isto foi utilizada a técnica de “part of speech tagging” também da biblioteca “spacy”. Para todos os textos foram retiradas essas informações e foi feita uma contagem simples de quantas vezes cada token do POS aparece no texto. Ficando com o seguinte formato o conjunto de dados parcial:
Figura 10
Também foi utilizada a técnica de “named entity recognition” para identificar se nos textos haviam nomes de personagens, de autores, etc. Foi criada uma coluna contendo esses valores vetorizados para cada um dos textos. Porém foi levantada a possibilidade de introdução de um viés no modelo, visto que nem todos os textos continham essas entidades. O conjunto de dados parcial ficou da seguinte forma:
Figura 11
Após isto foi preciso identificar se nos textos continham entidades representadas no conjunto de dados das ontologias que foram retiradas do banco de dados. Caso fossem encontradas entidades que pertencem ao conjunto de dados das ontologias, elas seriam colocadas em uma nova coluna chamada “found_ontologies”. Porém não foram encontradas nenhuma entidades dessas ontologias nos textos. Sendo assim, essa coluna foi ignorada, visto que não iria acrescentar nenhuma informação relevante para o modelo. Por último, para poder comparar o conteúdo vetorizado de forma simples, com o conteúdo vetorizado de forma mais complexa, utilizando outra técnica mais robusta de vetorização, foi utilizado o modelo BERT[5]. Esse modelo vetoriza o conteúdo mantendo informações semânticas, ou seja, ele mantém as relações entre as palavras do texto. Para isto foi utilizado o framework Tensor Flow para vetorizar o conteúdo da coluna “clean_content”.
5.5. TREINAMENTO
Para realizar o treinamento do modelo foram utilizados os conjuntos de dados obtidos a partir da etapa anterior. Para cada um dos quatro conjuntos de dados criados, foram treinados dois modelos e utilizados dois algoritmos, um deles é a regressão linear simples e o outro é o de suport vector machine. Esse treinamento tem por objetivo a criação de um modelo capaz de fazer a predição da nota de um aluno que realizou uma atividade no DLNotes2. Com base na avaliação do treinamento, é dada uma explicação se aquele modelo chegou ou não a um resultado esperado. Para padronizar o treinamento, foi utilizada a biblioteca scikit learn do python para treinar o modelo, fazendo uso da função Grid Search para criar o estimador, usando cross-validation para o modelo. A métrica padrão para todos os modelos criados é a R2-score, por se tratar de um modelo de regressão, sendo que os melhores resultados para esta métrica são os mais próximos de 1. Para todos os conjuntos de dados foram feitos dez cross-validations, para verificar o desempenho de cada modelo com diferentes partes do conjunto de dados. Os resultados obtidos são mostrados a seguir. 
Para o conjunto de dados com vetorização simples e sem named entity recognition, foram obtidos os seguintes resultados:
	Cross-validation
	Treinamento
	Teste
	1
	0.01317702
	-0.02805015
	2
	0.00668572
	0.02275671
	3
	0.0093325
	-0.00110156
	4
	0.0018191
	-0.0009054
	5
	0.01366754
	-0.14096475
	6
	0.01557015
	-0.05411395
	7
	0.00701348
	-0.00370619
	8
	0.01479468
	-0.07085183
	9
	0.00779218
	0.00311588
	10
	0.0095504
	-0.00465819
Tabela 5	
Portando o melhor resultado obtido no treinamento foi no conjunto 6 e o melhor no conjunto de teste foi no 2.
O próximo conjunto de dados a ser avaliado é o conjunto de vetorização simples e com named entity recognition. Para este conjunto foram obtidos os seguintes resultados:
	Cross-validation
	Treinamento
	Teste
	1
	0.0066293
	-0.05888903
	2
	0.00855604
	-0.05169169
	3
	0.00705026
	-0.27119871
	4
	0.00339333
	-0.06410301
	5
	0.01203419
	-0.21032103
	6
	0.00397295
	0.00837728
	7
	0.00651462
	-0.06482494
	8
	0.00463112
	-0.01540701
	9
	0.00307702
	0.01131277
	10
	0.0080969
	-0.07639024
Tabela 6
O melhor resultado obtido para o conjunto de dados sem o NER foi o 5, porém o melhor resultado de teste do cross-validation foi o 9. Porém os resultados foram ligeiramente piores do que o conjunto de dados anterior, o que indica que a introdução desta nova variável prejudicou o desempenho do modelo. 
O próximo conjunto de dados que foi treinado foi o conjunto com os dados obtidos a partir do BERT. Para este conjunto foram obtidos os seguintes resultados:
	Cross-validation
	Treinamento
	Teste
	1
	0.0352987
	-0.1056165
	2
	0.02491898
	0.06710452
	3
	0.0287754
	-0.01300946
	4
	0.03960965
	-0.12061364
	5
	0.02721073
	-0.01572155
	6
	0.02616248
	0.06799179
	7
	0.0381129
	-0.26804062
	8
	0.03249714
	-0.00740299
	9
	0.02699429
	-0.06211201
	10
	0.02748998
	0.03491842
Tabela 7
O melhor resultado obtido para este modelo foi no cross-validation 7, porém o melhor resultado no teste foi no 6. 
Para o modelo utilizando BERT foi feita a vetorização do texto da anotação utilizandoo pytorch. Com isto foi obtido os vetores da anotação, sendo colocadas no dataset para treinamento posteriormente.
Por último foi feito o treinamento do modelo do BERT com NER, e foram obtidos os seguintes resultados:
	Cross-validation
	Treinamento
	Teste
	1
	0.02662447
	-0.03931249
	2
	0.04115908
	-0.0802361
	3
	0.02495212
	0.06478831
	4
	0.03462393
	-0.09106722
	5
	0.03083761
	-0.15222868
	6
	0.02887339
	0.01079658
	7
	0.03057815
	0.01873522
	8
	0.03049347
	0.01817071
	9
	0.03111803
	-0.00619779
	10
	0.02931912
	0.03353418
Tabela 8
O melhor resultado obtido com a inclusão da coluna contendo NER foi com o cross-validation 2 e o melhor resultado do treinamento foi o 3. Porém, o resultado obtido sem esta coluna ainda é um pouco melhor, mas isto pode estar relacionado a variância do cross-validation. 
O próximo algoritmo escolhido para a criação do modelo foi o suport vector machine, utilizando o SVR da biblioteca sklearn. Foram escolhidos alguns hiperparâmetros para fazer o treinamento do modelo e posteriormente a avaliação. Após o treinamento do modelo foram obtidos os melhores hiperparâmetros para utilizar no conjunto de dados. 
O primeiro modelo a ser treinado foi com o conjunto de dados vetorizados com o spacy e sem named entity recognition, os resultados obtidos são mostrados na seguinte tabela: 
	Cross-validation
	Treinamento
	Teste
	1
	-0.14437718
	-0.47642365
	2
	-0.13697899
	-0.40614173
	3
	-0.17196592
	-0.18337449
	4
	-0.17204288
	-0.09593058
	5
	-0.17948157
	0.01675961
	6
	-0.15192468
	-0.38982532
	7
	-0.15937411
	-0.2421827
	8
	-0.19051784
	-0.10072764
	9
	-0.17115255
	0.16954892
	10
	-0.19280182
	-0.10346498
Tabela 9
Os parâmetros utilizados para obter esse resultado foram com o parâmetro c como 10 e com o parâmetro gamma como 0,01. O melhor resultado do cross validation no treinamento foi o 1 e no teste foi o 9. 
O segundo modelo treinado utilizando o algoritmo SVM foi o conjunto de dados com vetorização usando a biblioteca spacy e com NER. Os melhores resultados são mostrados na seguinte tabela: 
	Cross-validation
	Treinamento
	Teste
	1
	-0.19245536
	-0.02383836
	2
	-0.10496581
	-0.54643933
	3
	-0.15426753
	-0.14732315
	4
	-0.16737526
	-0.14380061
	5
	-0.17621091
	-0.0266287
	6
	-0.13956299
	-0.33821903
	7
	-0.13775449
	-0.47812048
	8
	-0.15024895
	-0.19126039
	9
	-0.16275034
	-0.73352299
	10
	-0.17304967
	-0.14151677
Tabela 10
	Os parâmetros utilizados para obter esse resultado foram com o parâmetro c como 10 e com o parâmetro gamma como 0,01. O melhor resultado do cross validation no treinamento foi o 2 e no teste foi o 1.
	O terceiro modelo treinado com o algoritmo SVM foi o conjunto de dados com a vetorização utilizando o BERT e sem NER. Os resultados obtidos são mostrados abaixo: 
 
	Cross-validation
	Treinamento
	Teste
	1
	0.99941621
	-0.0160289
	2
	0.99942026
	-0.00219745
	3
	0.99941875
	-0.00215759
	4
	0.99941636
	-0.01386169
	5
	0.99941249
	-0.03772102
	6
	0.99940987
	-0.00188825
	7
	0.99939842
	-0.00895501
	8
	0.99941097
	-0.00070625
	9
	0.99940523
	-0.00470501
	10
	0.99941419
	-0.00809863
Tabela 11
	
Os parâmetros utilizados para obter esse resultado foram com o parâmetro c como 10 e com o parâmetro gamma como 0,001. O melhor resultado do cross validation no treinamento foi o 2 e no teste foi o 8.
	O terceiro modelo treinado com o algoritmo SVM foi o conjunto de dados com a vetorização utilizando o BERT e com NER. Os resultados obtidos são mostrados abaixo: 
	Cross-validation
	Treinamento
	Teste
	1
	0.99941716
	-0.55386879
	2
	0.99939663
	-0.31208513
	3
	0.99940811
	-0.21817
	4
	0.9993983
	-0.36797604
	5
	0.99940307
	-2.68842633e-01
	6
	0.99941336
	-0.12393298
	7
	0.99940789
	-0.0021061
	8
	0.99940398
	-0.01561941
	9
	0.99939139
	-0.00029647
	10
	0.99941269
	-0.0159591
Tabela 12
Os parâmetros utilizados para obter esse resultado foram com o parâmetro c como 10 e com o parâmetro gamma como 0,001. O melhor resultado do cross validation no treinamento foi o 1 e no teste foi o 7.
Nestes dois últimos modelos, o resultado no conjunto de treinamento foi quase 1, enquanto que no conjunto de teste o resultado foi muito baixo, abaixo de 0. Isto indica que estes modelos que foram treinados tiveram overfitting.
Por último, é apresentado uma tabela mostrando os melhores resultados de cada modelo treinado: 
	Modelo
	Treinamento
	Teste
	vetorização sem NER com regressão linear
	0.01557015
	0.02275671
	vetorização sem NER com SVM
	-0.14437718
	0.16954892
	vetorização com NER com regressão linear
	0.01203419
	0.01131277
	vetorização com NER com SVM 
	-0.10496581
	-0.02383836
	BERT sem NER com regressão linear
	0.0381129
	0.06799179
	BERT sem NER com SVM
	0.99942026
	-0.01386169
	BERT com NER com regressão linear
	0.04115908
	0.06478831
	BERT com NER com SVM
	0.99941716
	-0.0021061
Tabela 13
O melhor resultado obtido dentre todos os modelos treinados foi o que foi treinado usando BERTcom NER usando o algoritmo de regressão linear.
5.6. VALIDAÇÃO DO MODELO 
Para fazer a avaliação do modelo foi utilizado o conjunto de treinamento previamente separado. A métrica de avaliação do modelo que foi utilizada para estas validações é a R2, que é calculada pela própria biblioteca do python. O primeiro resultado avaliado foi o resultado do modelo de regressão linear. Para o conjunto de dados com vetorização simples e sem named entity recognition foram preditas as seguintes notas para os alunos: 
Figura 12
O score das predições foi de -0,038, o que indica que o modelo está classificando as notas para baixo dos valores reais. Como o valor se aproxima muito de 0, também indica que este modelo não faz uma boa predição das notas. 
Já para o conjunto de dados com a vetorização simples, contendo named entity recognition, foi obtido o seguinte resultado: 
Figura 13
O score para este modelo, validado pelo conjunto de testes foi de 0,014, ficando muito próximo de 0. Porém este modelo se aproxima um pouco mais das notas reais por ter um score positivo. 
	O conjunto de dados utilizando a técnica de vetorização com o BERT, sem named entity recognition obteve as seguintes predições: 
Figura 14
O score que este modelo obteve foi de 0,021, se aproximando ainda mais das notas reais, porém ainda é um score muito baixo. 
	Por último, o conjunto de dados de treinamento contendo a vetorização utilizando o modelo BERT e com named entity recognition obteve os seguintes resultados: 
Figura 15
E o score obtido desde modelo foi de -0,042, o que indica que ele predisse as notas dos alunos como notas mais baixas do que as notas reais. 
Os modelos treinados utilizando o algoritmo SVM foram avaliados e os resultados se encontram abaixo. O primeiro modelo avaliado foi o modelo treinado utilizando o conjunto de dados com vetorização utilizando spacy e sem NER. Foi obtido o seguinte resultado na avaliação:
Figura 16
O score do modelo foi de -0,158, o que indica que ele previu notas abaixo das notas reais. 
O segundo modelo avaliado foi do conjunto de dados com vetorização utilizando spacy e com NER. Foi obtido o seguinte resultado:
Figura 17
O score do modelo foi de -0,217, indicando que o modelo previu notas abaixo das notas reais. 
O terceiro modelo avaliado foi com o modelo treinando utilizando o conjunto de dados contendo a vetorização utilizando BERT e sem NER. Os resultados são mostrados abaixo:
	
Figura 18
	O score obtido com este modelo foi de 0,0004. O modelo obteve um resultado muito próximo a 0, o que indica que não está regredindo para as notas reais.
Por último, foi feito o treinamento do modelo utilizando BERT e com NER. Os resultados são mostrados abaixo:
	
Figura 19
	
O score deste modelo foi de -0,0008. Com um resultado muito próximo a 0, o modelo previu notas muito distantes das notas reais. ,
Abaixo é mostrada uma tabela compilando todos os resultados obtidos:
	Modelo
	Score
	vetorização sem NER com regressão linear
	-0,038
	vetorização sem NER com SVM
	-0,158
	vetorização com NER com regressãolinear
	0,014
	vetorização com NER com SVM 
	-0,217
	BERT sem NER com regressão linear
	0,021
	BERT sem NER com SVM
	0,0004
	BERT com NER com regressão linear
	-0,042
	BERT com NER com SVM
	-0,0008
Tabela 14
6. CONCLUSÃO
Como visto ao longo deste trabalho, com o aumento dos dados de linguagem natural disponíveis para análise, técnicas de processamento são estudadas e criadas, sendo uma das mais recentes utilizar BERT para processar esses dados, porém esses dados não são triviais para serem processados. Os objetivos deste trabalho foram estudar as técnicas mais recentes, e criar experimentos com os dados retirados de uma ferramenta de anotações chamada DLNotes2. Foi feita uma pesquisa de técnicas de processamento de linguagem natural e de pré-processamento de dados, utilizando técnicas de vetorização, usando tanto uma vetorização simplificada, quanto uma vetorização mais avançada, como no caso do BERT. Após isto, foi separado os conjuntos de dados com as diferentes técnicas e treinado os algoritmos, fazendo então um experimento comparando os resultados.
Após ter sido feito o treinamento e a validação dos modelos, pode-se notar que o desempenho de todos os modelos treinados foram muito baixos. Pode-se notar também que os modelos treinados utilizando os conjuntos de dados contendo named entity recognition tiveram desempenhos ligeiramente piores que os que não continham, isto pode indicar que a introdução destes dados nos modelos podem conter um viés, pois não necessariamente um texto contendo nomes de entidades são melhores dos que os que não contém. 
Outro ponto percebido após a validação, foi que os modelos utilizando o algoritmo de suport vector machine obtiveram um resultado ligeiramente melhor, exceto os que foram treinados utilizando a vetorização BERT. Isto se dá ao fato de que o score no treinamento ficou muito alto, indicando um overfitting do modelo que foi treinado utilizando a vetorização do BERT. Com isto o modelo perde a capacidade de generalização. Mesmo com o melhor resultado obtido, que foi com o modelo treinado utilizando suport vector machine e sem named entity recognition não se pode afirmar que seria um bom modelo para se utilizar no mundo real, pois seu score foi muito baixo. 
Estes resultados podem ser explicados pela baixa quantidade de dados no conjunto de dados e também pela utilização de modelos simples para o treinamento. Com modelos mais complexos como redes neurais profundas é possível que se obtenha um resultado melhor. Então foi concluído que nenhum dos modelos treinados devem ser utilizados para fazer a predição das notas de alunos em um ambiente real. Esses resultados podem ser explicados por conta do pré-processamento dos dados, realizar novas pesquisas com diferentes técnicas de pré-processamento podem ajudar a melhorar o desempenho dos modelos. 
Outro problema encontrado ao longo deste trabalho foi a quantidade de dados, sendo poucos para treinar modelos de machine learning, onde o volume dos dados é muito importante para se melhorar o resultado do modelo. Um possível trabalho futuro poderia criar um data warehouse com os dados já pré-processados, com isto a criação dos modelos seria simplificada e também seria possível realizar os testes com mais algoritmos, como colocá-los em redes neurais. 
7. REFERÊNCIAS
[1] Gruber, R. Thomas: Toward Principles for the Design of Ontologies Used for Knowledge Sharing
[2] Zuezhi, Wang; Haohan, Wang; Diyi, Yang: Measure and Improve Robustness in NLP Models: A Survey
[3] Nayak, Arjun Srinivas; Kanive, Ananthu P: Chandavekar, Naveen; Balasubramani R: Survey on Pre-Processing Techniques for Text Mining
[4] El Naqa, I., Murphy, M.J. (2015). What Is Machine Learning?. In: El Naqa, I., Li, R., Murphy, M. (eds) Machine Learning in Radiation Oncology. Springer, Cham. https://doi.org/10.1007/978-3-319-18305-3_1
[5] Tenney, Ian; Dipanjan, Das; Pavlick, Ellie: BERT Rediscovers the classical NLP Pipeline 
[6] Leskovec, Jure; Rajaraman, Anand; Ullman, Jeffrey: Mining of massive data			
Apêndice I
Código utilizado disponivel para download em:
https://github.com/GustavoSaibro/TCC
Apêndice II
Abstract: With the increasing amount of data of annotated texts available, processing this material to generate knowledge is important to create new applications for society. One tool used by Nucleon of Research in Informatics, Literature and Language is DLNotes2, with is used by students and professors, where they can create annotations on books. This paper is a piece of research with goal of create a few regressions models with can predict grades of students and in at the end compare those different models and verify which model got the best results.
Resumo: Com a quantidade de dados de anotações cada vez mais disponiveis, processar esse material para gerar conhecimento é fundamental para criar aplicações que gerem conhecimento para a sociedade. Uma ferramenta utilizada pelo Núcleo de Pesquisa em Informática, Literatura e Linguística( NUPILL) é o DLNotes que é utilizado por professores e alunos, onde eles podem criar anotações em obras digitalizadas. E este trabalho tem como objetivo criar modelos de regressão utilizando diversas tecnicas e no final ser capaz de predizer as notas dos alunos e por fim comparar esses diferentes modelos para verificar qual que obteve o melhor resultado.
INTRODUÇÃO
A quantidade de informação de textos livres que temos hoje em dia é cada vez maior e extrair conhecimento destes é muito importante, aí entra o processamento de linguagem natural que é cada vez mais utilizado em modelos do mundo real. Ai entra um dos topicos mais estudados na atualidade em computação, o processamento de linguagem natural. Ontologias trazem uma nova ótica dentro do processamento de linguagem natural ao criar insumos para auxiliar o treinamento dos modelos. A construção de um modelo possui diversas etapas, sendo as mais importantes o treinamento e a avaliação, e para fazer esta avaliação é preciso medir a robustez do modelo treinado[1]. . Ela pode envolver a limpeza dos dados, integração dos dados com outras fontes e a transformação dos dados.
A ferramenta DLNotes permite a inserção de anotações livres e anotações semânticas em determinados trechos dos livros. Estes dados são a entrada para o modelo de PLN que será criado, essas anotações serão os dados de entrada para o treinamento e posteriormente avaliação do modelo utilizando machine learning e as anotações semânticas serão utilizadas para a criação dos conjuntos de representação de conhecimento.
FUNDAMENTAÇÃO TEÓRICA
A muito tempo se tem estudado sobre este assunto, o primeiro a propor uma máquina capaz de se comunicar utilizando linguagem natural foi Alan Turing com seu artigo “Computing Machinery and Intelligence”(Turing,1950). Foram feitas diversas tentativas de resolver esse problema de processamento, como a utilização de árvores de decisão, a utilização de estatística com base no vocabulário. Sistemas de representação também foram usados, como é o caso de Ontologias, que criam classes e relações para representar o mundo.
O pré-processamento dos dados é uma etapa fundamental para se criar um bom modelo, pois quanto melhor for a qualidade dos dados, melhor será o modelo criado. Para dados textuais é de fundamental importância que se tenha uma boa preparação dos dados, já que os dados que são processados nesta etapa vão são entradas para as próximas etapas do processo de modelagem( Kannan; Gurusamy,2014). Um dos problemas enfrentados pelos modelos baseados em dados é que os dados muitas vezes apresentam erros, por se tratarem de dados do mundo real. Os algoritmos mais conhecidos são decision trees, KNN, regressão, suport vector machine(SVM).
Existem diversas formas de pré-processar os dados, como tokenização que é o processo de transformar o texto bruto em palavras, frases em tokens que serão utilizados como entrada para a modelagem. Ainda há a possibilidade de utilizar ontologias na etapa de pré-processamento dos dados, para remover ambiguidades e contextualizaros dados textuais. Para ser possível classificar palavras ou frases nos algoritmos de machine learning, é preciso que se faça a vetorização dessas palavras ou frases, antes de colocá-los nos algoritmos
.
TRABALHOS RELACIONADOS
Este capítulo tem como objetivo apresentar trabalhos relacionados ao conteúdo desenvolvido neste trabalho.
TOWARDS ONTOLOGY-BASED NATURAL LANGUAGE PROCESSING
Este artigo foi escrito por Estival, Nowak e Zschorn, do grupo de integração de sistemas humanos. Nesse artigo os autores descrevem um projeto que utiliza ontologias como um “processo de raciocínio usado por um sistema de gerenciamento de informações e também para apresentação de informações”.
Atualmente a utilização de ontologias vêm sendo reconhecida como uma peça chave nos sistemas de informação e no processamento de informações. Gruber(1995) descreve ontologias como sendo “uma especificação explícita de uma conceitualização”. Neste artigo, os autores apresentam algumas sugestões de como o processamento de linguagem natural pode ser beneficiado pelo uso de ontologias. Elas são processadas e mapeadas para uma representação formal, sendo entrada para um subsistema de raciocínio para então o usuário final ter uma resposta em linguagem natural. Os agentes são implementados usando ATTITUDE e a comunicação entre eles é feita através de mensagens de strings. O uso principal do KR é dar aos usuários o gerenciamento automatizado de conhecimento. 
O input do processamento de linguagem natural é feito por meio de fala ou de texto que o usuário insere no sistema. Os autores escolheram Nuance para o reconhecimento da fala e o pacote Regulus NLP para a gramática. Os autores(Estival, Nowak, Zschorn,2004) concluem que ontologias podem ajudar no processamento de linguagem natural para o projeto FOCAL, combinando as frameworks OIL/RACER com o sistema de diálogo deles. Elas fornecem representações semânticas que são usadas para um processamento mais complexo.
DLNOTES2: ANOTAÇÕES DIGITAIS COMO APOIO AO ENSINO
Este artigo faz a apresentação da ferramenta DLNotes2, ela possibilita que estudantes e professores façam anotações sobre certos conteúdos nas suas atividades educacionais. Ela gera uma base de conhecimento que pode ser visualizada graficamente, também é possível que se façam alterações nesta base. 
É cada vez mais frequente o uso de Repositórios Digitais(RDs) que oferecem conteúdos de aprendizagem. Mas isto não garante a eficiência no ensino e no aprendizado dos usuários. A ferramenta DLNotes2 possibilita a criação de atividades de anotação e tipos de anotação, sendo utilizada nas atividades de ensino da área de Literatura da Universidade Federal de Santa Catarina.
Existem diversas ferramentas parecidas, porém elas não permitem a criação de anotações semânticas. Poder utilizar ontologias nas anotações possibilitam três aspectos: fazer a representação mais robusta entre as entidades e seus relacionamentos, também permitem a troca de conhecimento entre diversos sistemas por meio de uma conceitualização compartilhada e por último possibilitam que tecnologias da Web Semântica sejam utilizadas, permitindo o processamento por máquinas, ajudando no processo de inferências e na busca semântica.
A ferramenta DLNotes2 é versátil o suficiente para poder alterar as ontologias de domínio de acordo com o problema estudado, com os usuários colaborando na criação de KBs, gerando indivíduos para essas anotações semânticas. A ferramenta é implementada na linguagem de programação PHP, usando a framework CodeIgniter, utilizando o banco de dados MySQL. Também possibilitam trabalhar com dados no formato RDF.
A FORMAL SPECIFICATION FOR SYNTACTIC ANNOTATION AND ITS USAGE IN CORPUS DEVELOPMENT AND MAINTENANCE: A CASE STUDY IN UNIVERSAL DEPENDENCIES
Essa dissertação foi escrita por Guilherme Paulino Passos, para o COPPE, da Universidade Federal do Rio de Janeiro. Ele apresenta um caso de estudo no qual se aplica treebanks para enriquecer os dados para o Processamento de Linguagem Natural( PLN).
Para fazer o processamento de linguagem natural é preciso que se tenha os dados anotados, que provém informações adicionais para os dados linguísticos, sendo necessários para o aprendizado supervisionado, mas também para fazer a avaliação de quaisquer modelos de PLN. . Em muitos casos esses dados contém erros, fazendo com que seja preciso de um volume de dados muito maior para compensar esses erros.
Neste trabalho o autor( Guilherme, 2018) propõe uma solução para este problema por meio de uma especificação formal de anotações sintáticas padrões, que permite a definição exata das possíveis anotações. Podendo solucionar os três pontos anteriores: (i) essa especificação cria um método de automaticamente detectar erros e melhorar queries nos dados, (ii) essa detecção pode criar novos conjuntos de dados anotados e (iii) pode ser explorada por ferramentas de machine learning, criando modelos mais precisos com uma quantidade menor de anotações.
O autor conclui que utilizar ontologias pode ser um dos métodos para achar erros em treebanks e validá-los, independente dos métodos de criação desse treebank. Foi mostrado que para diversas linguagens tem-se um alto grau de precisão para encontrar sentenças erradas. E que uma das vantagens de se utilizar ontologias é que esses erros são encontrados utilizando raciocínio lógico. 
DESENVOLVIMENTO
Neste capítulo do trabalho será apresentado as etapas e o processo de desenvolvimento prático para a criação dos modelos, os levantamentos de perguntas que foram surgindo ao longo do desenvolvimento e as decisões tomadas para cada ponto levantado. É apresentado as métricas de avaliação dos modelos, bem como o processo de limpeza e de construção de um conjunto de dados otimizado para o treinamento do modelo. Por fim, é mostrado o resultado de cada modelo e é feita uma comparação entre os resultados.
ETAPAS DO DESENVOLVIMENTO
Na imagem a seguir é apresentada a pipeline que será seguida para o desenvolvimento do trabalho. A metodologia adotada é a CRISP-DM, onde há um processo cíclico para a exploração dos dados e o desenvolvimento do modelo.
APRESENTAÇÃO DOS DADOS
O conjunto de dados foi retirado do banco de dados relacional da ferramenta DLNotes2. Os dados principais foram retirados das tabelas de anotações livres, ontologias, anotações semânticas, e atividades. Esses dados foram unidos através da linguagem SQL, e convertidos para um arquivo separado por vírgulas.
Foi obtido um conjunto contendo as notas dadas pelo professor a cada atividade de uma turma. Tendo somente 25 alunos neste conjunto, porém contendo 4 atividades por aluno, totalizando 100 notas. 
O banco de dados conta com muito mais informações, porém para o escopo deste trabalho foi decidido ficar apenas com estes dados. Por se tratar de um tema amplo e também de escopo livre, definir o escopo dos dados é fundamental para se ter uma boa análise e também para criar um bom modelo.
ANÁLISE E VISUALIZAÇÃO DOS DADOS
O conjunto de dados “free_annotations” contém 707 anotações, sendo 58 delas links para referências externas. Na etapa de Pré-processamento dos dados será explicado as decisões tomadas com relação a esses links.
Após feita uma análise com uma biblioteca chamada “chardet” do python foi descoberto que se trata de um texto formatado em “UTF-8”. Já na coluna excerpt, existem diversos caracteres que podem acabar afetando o modelo caso não sejam removidos, como pontuações, “stepwords”, etc.
O conjunto de dados “ontology_full” contém 100.000 registros, foram retirados quase todas as ontologias contidas no banco de dados. No banco existem aproximadamente 120 mil registros.
PRÉ-PROCESSAMENTO DOS DADOS
Por conta do escopo deste trabalho, foi decidido não avaliar as referências externas, visto que precisaria criar um web scraper para obter o conteúdo das páginas e isto demandaria muito tempo. As anotações que contenham links foram retiradas do conjunto para não prejudicar o treinamento dos modelos. Depois disto foi feita a filtragem do conjunto de dados para buscar somente as atividades

Continue navegando

Outros materiais