• Nenhum resultado encontrado

Criando um modelo para extração terminológica automática

N/A
N/A
Protected

Academic year: 2021

Share "Criando um modelo para extração terminológica automática"

Copied!
12
0
0

Texto

(1)

UNIVERSIDADEFEDERAL DORIOGRANDE DOSUL Instituto de Informática

Departamento de Informática Aplicada

INF01179 - Tópicos Especiais em Computação I - Mineração de Dados Professor: Paulo Martins Engel

Criando um modelo para

extração terminológica automática

Carlos Eduardo Ramisch Daniel Emilio Beck Números: 134657/134654

(2)

1

O Problema

O Processamento de Linguagem Natural estuda o tratamento computacional dado à linguagem humana, ou seja, de que forma o computador interpreta informações expressas em português ou em inglês. Um dos problemas dessa área diz respeito à cobertura dos dicionários empregados pelos sistemas, os quais não contém en-tradas suficientes para cobrir, por exemplo, termos específicos às diversas áreas do conhecimento. Por isso mesmo, foram desenvolvidos métodos para o aprendizado automático de unidades lexicais a partir de corpora (conjuntos de textos) especi-alizados e especificamente anotados para esse fim. Em lingüística tradicional, a contrapartida da aquisição lexical automática chama-se terminografia, e trata da construção manual de glossários e dicionários especializados.

O problema abordado por esse trabalho tem por foco a classificação automá-tica de seqüências de palavras, ou seja, de multi-palavras, em duas classes: termo multi-palavras (MWT) ou seqüência aleatória (NonMWT). Por exemplo, dadas as seqüências sistema operacional e sistema preferido, é desejado inferir de forma automática que a primeira é um termo específico em ciência da computação, cujo conceito representado é delimitado de forma não-ambígua, enquanto o segundo é apenas uma combinação randômica de um substantivo com um adjetivo. A meto-dologia empregada consiste em utilizar um conjunto de dados anotados por especi-alistas de determinada área do conhecimento para aprender modelos que permitam (a) prever a classe de uma nova instância, agilizando o trabalho de terminógrafos e terminólogos e (b) descrever (para melhor compreender) os fenômenos lingüísti-cos que permitem a uma combinação qualquer de palavras de receber o estatuto de termo. Para cada instância, um conjunto de atributos é calculado com base nas suas freqüências de ocorrência e de medidas que estimam a força da associação entre as suas palavras. Nesse trabalho, usar-se-á o termo candidato a termo e instância como sinônimos.

Através da ferramenta de mineração e análise de dados WEKA, pretende-se ava-liar um conjunto de algoritmos de aprendizado de máquina. A avaliação será rea-lizada sobre uma parte específica para testes, separada do restante dos dados para esse fim. Para mensurá-la, será levada em conta a acurácia (precisão e cobertura por classe) dos classificadores ou dos agrupamentos aprendidos sobre os dados de treinamento.

Os atributos usados não são lexicalizados, ou seja, as palavras que compõem uma instância não são levadas em conta, mas apenas as medidas de associação e o padrão de classes morfológicas seguido pelo candidato. Dessa forma, os mo-delos aprendidos tornam-se independentes da língua ou do domínio em questão, podendo ser aplicados a diversas configurações sem a necessidade de anotação adicional. Esse fato é uma grande vantagem visto que a anotação manual de candi-datos é uma tarefa bastante onerosa e que seu reaproveitamento através de modelos suficientemente genéricos poderia diminuir ou eliminar esse custo.

Dois tipos de aplicação são podem ser considerados para esses modelos: cri-ação de dicionários e desenvolvimento de sistemas de PLN. O primeiro é um dos

(3)

objetivos dos profissionais em terminologia e, por se tratar de um trabalho dis-pendioso, poderia ter amplos benefícios através do ganho de tempo proporcionado pela identificação (semi-)automática de terminologias. O último é importante na adaptação de recursos lingüístico-computacionais para domínios específicos, por exemplo, para que um sistema de tradução automática tenha desempenho razoável sobre um conjunto de textos de direito ambiental, será necessário que o dicionário do sistema contenha entradas para um grande número de termos que descrevem as leis e os crimes do meio-ambiente.

2

Conjunto de dados

Para o trabalho descrito, foi utilizado um corpus de domínio biomédico, o GE-NIA. Esse corpus é composto por 2.000 resumos de artigos da área biomédica, onde os termos existentes foram anotados manualmente por especialistas. O tra-balho consiste em extrair candidatos a termos, filtrá-los através de aprendizado de máquina e, então, avaliar os resultados através da comparação com o conjunto de termos anotados. Para isso, é construída uma base de dados utilizando o seguinte algoritmo:

• O corpus é rotulado, ou seja, cada palavra é associada à sua função mor-fossintática (substantivo, verbo, etc.).

• A lista de candidatos é criada, extraindo-se do corpus sequências de pala-vras que sigam determinados padrões morfossintáticos, como por exemplo seqüências de dois substantivos, substantivos seguidos de adjetivos, etc. • Para cada candidato, obtêm-se sua frequência no corpus GENIA e na Web

(utilizando o Yahoo).

• Medidas estatísticas são calculadas, utilizando a informação de frequência, conforme descrito abaixo. No trabalho, foram utilizadas as medidas prob, PMI, teste t e Dice;

• Constrói-se a base de dados, utlizando o padrão morfossintático, as medidas e a informação de classe (retirada da anotação manual)

Para cada candidato w1. . . wn e para cada corpus de tamanho N, a freqüência

simples f (w1. . . wn) e as freqüências marginais f (w1) . . . f (wn) são usadas para

(4)

prob =f(w1. . . wn)

N (Estimativa de Máxima Verossimilhança)

PMI =log2

f(w1. . . wn)

Nn−1f/0(w1. . . wn)

(Informação mútua pontual)

t =f(w1. . . wn) − N n−1f /0(w1. . . wn) p f(w1. . . wn) (Teste t de Student) Dice =n∗ f (w1. . . wn) ∑ni=1f(wi) (Coeficiente de Dice) Em resumo, cada instância da base gerada corresponde a determinada seqüên-cia de palavras e consiste em uma tupla contendo nove atributos preditivos e um atributo de classe. As palavras que compõem o candidato não são usadas como atributo de classificação para manter os modelos tão independentes de língua e de domínio quanto possível. Para fins de avaliação, separou-se 4.685 candidatos para teste (correspondente aos últimos 100 resumos do corpus) enquanto o restante dos dados, ou seja, 60.585 instâncias, foram usadas para treinar os modelos. A distribuição inicial é 37,15% de instâncias positivas no conjunto de treinamento e 24,16% de instâncias positivas no conjunto de teste. Os atributos usados, bem como seus tipos, são:

• Padrão POS - nominal

• Probabilidade (GENIA) - numérico • PMI (GENIA) - numérico

• Teste T (GENIA) - numérico • Dice (GENIA) - numérico • Probabilidade (Web) - numérico • PMI (Web) - numérico

• Teste T (Web) - numérico • Dice (Web) - numérico

(5)

3

Modelos baseados em classificação

Para avaliar os diversos algoritmos de aprendizado testados, existem três dimensões possíveis. Primeiramente, gostaria-se que o desempenho geral do algoritmo fosse bom, ou seja, a quantidade de instâncias classificadas corretamente deve ser alta. Em segundo lugar, pode-se avaliar a acurácia dos algoritmos sobre cada classe. Aqui, no entanto, os dados não são balanceados de forma que os algoritmos, de maneira, geral, tendem a classificar os candidatos como NonMWT quando estão em dúvida, simplismente porque a probabilidade dessa classe é maior. Por isso, a segunda avaliação realizada leva em conta a acurácia apenas sobre a classe MWT, que é também aquela que mais interessa para as aplicações que venham a utilizar os modelos gerados. Finalmente, avalia-se o tempo gasto por cada um dos algoritmos para construir o modelo.

3.1 Algoritmos testados

Os algoritmos usados podem ser divididos em dois sub-grupos: algoritmos simbó-licos, baseados em regras de decisão, e algoritmos numéricos. Entre os primeiros, testou-se o aprendizado baseado em instâncias através do algoritmo dos K vizinhos mais próximos, chamado IBk no WEKA. Testou-se também um algoritmo de cons-trução de árvore de decisão, o J48. Finalmente, o algoritmo JRip, que funciona por aprendizado de regras, foi testado, pois o algoritmo Prism não permite atributos numéricos.

Dada a natureza essencialmente numérica dos atributos usados, testou-se um maior número de algoritmos numéricos com diversos parâmetros. Três deles per-tencem à família do aprendizado Bayesiano, incluindo os algoritmos NaiveBayes e BayesNet. Com relação ao último, que constrói uma rede Bayesiana para modelar os dados e em seguida utiliza um algoritmo de busca heurística para maximizar a probabilidade das classes, variou-se a heurística de busca utilizada entre a árvore de cobertura mínima (spanning tree, chamada TAN no WEKA) e o algoritmo de busca por Simulated Annealing (SA).

Diversos parâmetros foram tentados para o algoritmo de redes neurais de per-ceptron multicamadas (MLP). Primeiro, usou-se os parâmetros default do WEKA, que estabelece, entre outros, um número automático de neurônios na camada oculta. Depois, tentou-se um número fixo de neurônios na camada oculta (50) com uma taxa de treinamento menor (0.1) e um número maior de épocas de treinamento (1000). Por fim, a mesma configuração porém com 100 neurônios na camada oculta, foi tentada. Adicionalmente, avaliou-se um algoritmo simplificado de apren-dizagem, chamado Voted Perceptron (VP).

Finalmente, usou-se máquinas de vetor de suporte (SVM). O algoritmo de aprendizado para as máquinas de vetor de suporte realiza uma otimização esco-lhendo uma fronteira de decisão com distância máxima entre determinadas instân-cias limítrofes, chamadas vetores de suporte. A forma da fronteira de decisão é um parâmetro do algoritmo, e corresponde a uma família de funções. Na

(6)

avalia-Algoritmo Instâncias corretas

IBk 65.0%

J48 75.4%

Jrip 74.9%

NaiveBayes 26.1%

BayesNet (busca SA) 76.5%

BayesNet (busca TAN) 75.4%

MLP h100 73.6% MLP h50 75.6% MLP default 75.6% Voted Perceptron 64.2% SVM (kernel polinomial) 63.2% SVM (kernel radial) 76.7%

Tabela 1: Porcentagem de instâncias corretamente classificadas para cada algo-ritmo indica o desempenho global do mesmo.

ção aqui realizada, usou-se dois tipos de funções de núcleo (kernel), polinomiais e radiais.

3.2 Avaliação global

A tabela 3.2 mostra uma avaliação do desempenho de cada um dos algoritmos e parâmetros testados, medido através da proporção de instâncias classificadas cor-retamente. Apesar de a acurácia em uma das classes ser mais importante do que em outra, essa medida fornece uma idéia geral do desempenho dos algoritmos. No entanto, vale lembrar que a proporção inicial de candidatos da classe NonMWT é igual a 75,84%, portanto um algoritmo “ignorante” que classifique todas as ins-tâncias com o mesmo rótulo de classe poderia ser considerado bom se apenas essa medida de avaliação fosse considerada.

Os resultados mostram que, entre os métodos simbólicos, a árvore de decisão se sai melhor do que os demais algoritmos, superando em 10% o algoritmo IBk, que tem baixo desempenho. Esse resultado era esperado e ilustra uma das razões pelas quais os modelos de árvore de decisão são bastante populares em problemas de mineração de dados. No entanto, modelos numéricos são superiores à árvore de decisão, como se pode observar para ambos os tipos de rede Bayesiana. Apesar de o algoritmo Naive Bayes apresentar um desempenho baixíssimo, os algoritmos que realizam a busca na rede Bayesiana se saem bem, com destaque para a busca por Simulated Annealing.

Os resultados dos testes para as redes neurais são bastante surpreendentes, pois ao que parece um número maior de neurônios na camada oculta pode gerar resul-tados piores, como se pode ver quando se compara as configurações h100 e h50. O

(7)

Algoritmo Precisão Cobertura F-measure

Ibk 33.7% 46.4% 39.0%

J48 47.9% 19.7% 27.9%

Jrip 46.1% 24.1% 31.7%

NaiveBayes 23.3% 90.0% 37.1%

BayesNet (busca SA) 52.4% 28.9% 37.2%

BayesNet (busca TAN) 48.6% 32.1% 38.6%

MLP h100 32.0% 8.3% 13.2% MLP h50 44.7% 4.9% 8.8% MLP default 27.3% 0.5% 1.0% Voted Perceptron 36.3% 63.8% 46.3% SVM (kernel polinomial) 34.9% 60.1% 44.1% SVM (kernel radial) 52.6% 35.4% 42.3% Tabela 2:

que pode estar ocorrendo aí é um superaprendizado dos dados (overfit), de forma que o modelo aprendido generalize mal as observações pertencentes ao conjunto de treinamento. O algoritmo Voted Perceptron tem baixo desempenho com relação aos algoritmos mais simplificados, que realizam a propagação reversa dos pesos sobre a rede. Finalmente, o melhor desempenho global foi obtido com uma SVM de kernel radial, com desempenho ligeiramente superior ao algoritmo “ignorante” suposto acima. A máquina que utiliza fronteiras de decisão polinomiais se sai mal, com o segundo menor desempenho da tabela.

No entanto, conforme esboçado anteriormente, é necessário encontrar uma ma-neira mais fina de avaliar os algoritmos, pois os dados desbalanceados fazem com que um algoritmo “ignorante” se saia tão bem, em número de instâncias classi-ficadas corretamente, quanto um algoritmo sofisticado de aprendizado real. Um baixo desempenho global significa que o algoritmo é ruim, no entanto um alto de-sempenho global não é necessariamente ligado a um bom algoritmo. Dessa forma, exceto pelo algoritmo Naive Bayes, todos os algoritmos parecem aceitáveis. Por isso, a próxima seção explora a avaliação através da acurácia na classe minoritária, ou seja, os candidatos que realmente pertencem à classe dos MWT.

3.3 Acurácia da classe MWT

O desempenho dos algoritmos de aprendizado de máquina é apresentada na tabela 2. Apenas a acurácia da classe MWT é mostrada, pois, como os dados não são balan-ceados, a classe NonMWT possui acurácia superior a 80% para todos os algoritmos. Os mesmos dados também foram plotados em forma de gráfico de barras na figura 1, em que a precisão e o recall possuem tons de cinza enquanto sua média harmô-nica, a f-measure, está destacada em azul por sumarizar as informações presentes

(8)

Figura 1: Representação gráfica da acurácia dos algoritmos de aprendizado testa-dos

nas outras duas barras.

Curiosamente, a situação dos algoritmos simbólicos se inverte aqui: a pior F-measure é obtida pela árvore de decisão enquanto o algoritmo dos N vizinhos mais próximo é aquele que se sai melhor. A deficiência principal do algoritmo J48 é seu baixo recall, algo que poderia ser tolerado em certos casos porém acaba di-minuindo bastante sua f-measure. No entanto, o desempenho dos três algoritmos pode ser bastante melhorado com o uso de modelos mais sofisticados ou baseados em distribuições de probabilidades. A vantagem de modelos simbólicos é, além do baixo custo computacional, o fato de que eles geram um modelo de dados fa-cilmente interpretável (e.g. uma árvore com 484 nodos). É fácil perceber, por exemplo, que os atributos mais próximos da raiz (mais importantes) são os testes t nos dois corpora, enquanto o menos importante parece ser o padrão morfológico, geralmente nas folhas da árvore. O problema desse e da maioria dos outros algo-ritmos é considerar que ambas as classes possuem o mesmo peso, levando a um baixo desempenho sobre a classe MWT.

Nesse sentido, o aprendizado através da rede Bayesiana é mais eficiente, sobre-tudo com a busca por árvore de dispersão mínima (TAN) ao invés de Simmulated Annealing, mais uma vez contrariando os resultados anteriores. A cobertura de ambos ainda é decepcionante e os métodos sofrem do mesmo problema que os algoritmos simbólicos, isto é, dão igual importância a ambas as classes.

(9)

Algoritmo Tempo (em segundos)

IBk 0.02

J48 9.37

Jrip 27.22

NaiveBayes 1.14

BayesNet (busca SA) 334.63 (5,6 minutos)

BayesNet (busca TAN) 2.69

MLP h100 32395.01 (9 horas)

MLP h500 16022.42 (4,5 horas) MLP default 5346.89 (1,5 horas) Voted Perceptron 434.12 (7,2 minutos) SVM (kernel polinomial) 10102.81 (2,8 horas) SVM (kernel radial) Desconhecido

Tabela 3: Custo computacional em termos de tempo total de processamento na criação de cada modelo.

A rede neural multi-camadas com 331 neurônios ocultos tem um desempenho muito ruim: captura apenas 5% dos candidatos positivos. O algoritmo Voted Per-ceptron (VP), apesar de mais simples do que os MLPs, tem desempenho surpreen-dentemente alto, com larga cobertura dos candidatos positivos. Esse foi o melhor desempenho obtido entre os algoritmos testados, apesar de que a proporção de ins-tâncias bem classificadas é menor do que nos demais, mostrando que de alguma forma o algoritmo parece funcionar bem mesmo para dados não balanceados.

Após o VP, os melhores resultados foram obtidos com algoritmos de máquinas de vetor de suporte com núcleo polinomial e radial. Cada uma das configurações testandas privilegia um dos aspectos: a primeira tem boa cobertura, enquanto a última tem uma precisão de 52,6%. Uma das vantagens desse algoritmo é a possi-bilidade de se atribuir pesos diferentes para as classes (algo que o algoritmo IBk, por exemplo, também permite). No entanto, após algumas tentativas de combina-ção de pesos, chegou-se à conclusão que o melhor resultado era obtido quando a máquina considerava ambas as classes igualmente importantes.

3.4 Custo computacional

O custo computacional de cada um dos algoritmos foi medido através do tempo que ele leva para construir o modelo dos dados. A tabela 3 mostra o tempo em segundos, ou em minutos e horas quando mais conveniente. Todos os algoritmos simbólicos são baratos, com destaque para o algoritmo IBk em que os próprios dados são o modelo. Apesar de uma avaliação (teste) mais lenta, o custo não é ele-vado demais. Algoritmos mais sofisticados podem levar desde um ou dois

(10)

Total de clusters Precisão Recall F-measure

16 51.37% 0.24% 0.49%

32 51.77% 0.45% 0.89%

64 53.11% 4.05% 7.52%

128 55.44% 7.53% 13.26%

Tabela 4: Clusters gerados pelo algoritmo K-médias avaliados de acordo com a anotação existente.

Total de clusters Precisão Recall F-measure

16 61.43% 5.86% 10.70%

32 57.08% 16.40% 25.49%

64 57.97% 22.90% 32.83%

Tabela 5: Clusters gerados pelo algoritmo EM avaliados de acordo com a anotação existente.

dos até várias horas. É interessante observar que, dependendo da busca heurística utilizada, o algoritmo Bayes Net pode levar 2,69 segundos (TAN) ou 5,6 minutos (SA).

No entanto, os algoritmos mais caros são sem dúvida os de treinamento de re-des neurais. A rede com parâmetros default leva uma hora e meia para ser treinada, porém quanto mais neurônios na camada oculta e épocas de treinamento, mais o algoritmo demora, chegando a levar 9 horas para treinar uma rede com 100 neurô-nios na camada oculta. Apesar de serem os mais caros, os algoritmos não têm o melhor desempenho. No entanto, o Voted Perceptron tem um custo relativamente baixo com relação ao desempenho que oferece, levando a crer que ele é o algoritmo ideal para esse conjunto de dados. Para uma das máquinas de vetor de suporte, não foi possível calcular o tempo de criação do modelo. No entanto, ele é similar ao da SVM com kernel polinomial, que levou quase 3 horas para ser construída. Apesar de ter um desempenho bastante bom, esses algoritmos também são caros e exigem bastante tempo de processamento.

4

Modelos baseados em clusterização

A criação de uma base de dados com as classes já obtidas foi possível pelo fato do corpus utilizado possuir os termos anotados. No entanto, esse pode não ser o caso para outros corpora. A extração terminológica de corpora “brutos” (raw) é interes-sante quando não se dispõe de recursos para anotação manual dos termos. Nesse caso, foram utilizados como parâmetros somente a informação morfossintática e as medidas estatísticas, sendo que a informação de classe foi utilizada posteriormente

(11)

para avaliação de cada modelo gerado.

Para a construção dos modelos, foram testados os algoritmos K-médias e Ex-pectation Maximization(EM). Apesar de sabermos o número de classes de ante-mão (dois), esse número não necessariamente é igual ao número de clusters presen-tes no espaço do problema, já que ele pode não ser linearmente separável. Sendo assim, foram feitos testes variando o número de clusteres gerados (16,32,64 e 128). Para avaliar o modelo, os clusteres foram separados em dois grupos. Aqueles em que a quantidade de MWTs era maior do que os candidatos falsos foram para um grupo e os demais para outro. A informação sobre cada candidato foi reti-rada da anotação manual. Finalmente cada grupo foi avaliado com as métricas de precisão e cobertura. Os resultados são mostrados nas tabelas 4 e 5

5

Conclusões

Os resultados apresentados neste trabalho demonstram que a extração termino-lógica automática pode se valer bastante dos algoritmos de mineração de dados. Apesar de, num primeiro momento, eles parecem baixos, são resultados melho-res do que se obteria através dos métodos já existentes, que freqüentemente usam apenas regras heurísticas de padrões morfossintáticos e filtros de freqüência.

Além disso, os resultados também dependem dos dados. A base utilizada pos-sui apenas quatro métricas de associação para cada corpus, mas existem inúmeras outras que poderiam ser aplicadas, por exemplo, medidas mais robustas que usam tabelas de contingência. Além disso, poderíamos extrair frequências dos candi-datos em outros corpora além do GENIA e da Web. Finalmente, outros atribu-tos simbólicos além do padrão morfossintático poderiam ser utilizados, como por exemplo, informações relativas ao contexto de ocorrência das multi-palavras. Um número maior de atributos tem usualmente impacto positivo para os resultados, porém é sempre necessário ter em mente que um número exagerado de atributos pode levar a situações de super-treinamento em que os dados não são aprendidos mas “decorados”.

No entanto, mesmo que se aprimore a base de dados, a escolha do algoritmo adequado para a criação do modelo também é importante. Isso é possível verificar pela diferença encontrada nos resultados entre os algoritmos testados. Os algorit-mos simbólicos oferecem um bom custo-benefício, porém são inadequados quando se exige resultados mais precisos. Algoritmos como o BayesNet podem ter bom desempenho porém a escolha correta dos parâmetros é fundamental. Com relação ás redes neurais de múltiplas camadas, os resultados observados foram supreen-dentemente baixos, levando a duas hipóteses possíveis: (a) o algoritmo está mal configurado e oscila muito, levando a um comportamento praticamente aleatório ou (b) o modelo não possúi um número suficiente de neurônios nas camadas ocul-tas. Enquanto a primeira hipótese é sustentada pelo fato de que um algoritmo muito mais simples, o Voted Perceptron, possui desempenho superior ao MLP, a última é decorrência da observação de que o recall aumenta conforme o número de

(12)

neurô-nios da camada oculta aumenta. Uma investigação aprofundada sobre esse pro-blema poderia ser feita se houvessem recursos computacionais disponíveis, visto que a rede com 100 neurônios levou 9 horas para ser treinada e que, por exemplo, dobrar o número de neurônios poderia dobrar o tempo necessário para treiná-los. Finalmente, as SVMs são populares no meio acadêmico em parte porque ofere-cem custo relativamente alto e resultados relativamente bons, parecendo também oferecer um bom compromisso entre precisão e recall. Dentre todos os algoritmos testados, a maior acurácia foi obtida pelo VP mas o desempenho global é melhor para o SVM de kernel radial. No entanto, não existe uma resposta única para es-colher o algoritmo a ser usado para essa tarefa. A escolha do algoritmo deve levar em conta não somente a F-measure mas também as medidas de precisão e recall tomadas individualmente, pois as aplicações da terminologia possuem diferentes requisitos para os quais pode ser mais ou menos interessante privilegiar precisão ou recall. Além disso, os recursos computacionais e o tamanho dos conjuntos de dados podem impôr restrições que impeçam ou favoreçam o uso de determinado algoritmo em detrimento de um que ofereça melhor desempenho.

Referências

Documentos relacionados

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

Nas últimas décadas, os estudos sobre a fortificação alimentar com ferro no país têm sido conduzidos na tentativa de encontrar uma maneira viável para controle da anemia

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Seja o operador linear tal que. Considere o operador identidade tal que. Pela definição de multiplicação por escalar em transformações lineares,. Pela definição de adição