Resumos de aula: PLN - 2019


Nota: Arquivo gerado por um programa.

Nome Resumo
Daniel Vieira Batista Classificação de Textos: Classifica-se coisas com o intuito/objetivo de organizar objetos semelhantes em termos de características, aspectos ou comportamentos. Por consequência, ao categorizá-los (os objetos, as coisas), determina-se uma separação de objetos que não possuem propriedades parecidas que estão distribuídos em classes, categorias ou grupos. Para classificar objetos é necessário um histórico de dados deste mesmo objeto com suas informações de classe. Em outras palavras, é necessário um histórico de objetos previamente categorizados, para que seja possível a compreensão de padrões de classe. Esse histórico deve possuir volume (quantidade de objetos) suficiente para garantir aprendizado estatístico e que possa ser possível capturar características importantes para discriminar os padrões de classe. Formalmente, classificar um objeto X em um conjunto finito de categorias Y = {y_1, y_2, y_3, ..., y_n}, dado um conjunto de objetos rotulados B = { ( X_1, y_1 ), ( X_2, y_2 ), ( X_3, y_3 ), ..., ( X_n, y_n ) } e um conjunto de objetos alvo (que precisam ser rotulados) B' = { ( X_1', ?_1 ), ( X_2', ?_1 ), ( X_3', ?_1 ), ..., ( X_k', ?_n )}, é o mesmo que aproximar uma função F' de uma função F real (classificador perfeito) com um erro E. Sabemos que o objetivo é predizer C' = [ ?_1, ?_2, ?_3, ..., ?_n ], realizando F'( B, B' ) = J, onde J é igual ou semelhante a C' (sabemos que J e C' possuem elementos de Y) e F = F' + E ( F( B, B' ) = C' ). Quando o objetivo é classificar novos textos/documentos (de texto) de acordo com um tema ou assunto já previamente mapeado então esta tarefa dá-se o nome de categorização de textos. Exemplos de categorização de textos: classificações de mensagens de e-mail como spam ou não spam, classificação de tema para filmes de acordo com suas sinopses, etc. Há diversas formas de desenvolver um classificador para textos: \- Regras lógicas que podem ser definidas por um profissional com expertise de domínio; \- Análise de termos/tokens específicos do problema; \- Utilizando algoritmos de aprendizado de máquina: árvores de decisão, Naive Bayes, Support-vector machine, K-nearest neighbors, etc. \- Entre outros; Para utilização de algoritmos de aprendizado de máquina é necessário representar os dados de entrada como vetores de características/features do objeto de estudo. Neste sentido, classificadores de textos precisam de estratégias para lidar com dados não estruturados. Uma abordagem para estruturar estes dados é representar os textos em uma estrutura de dados chamada bag-of-words (saco de palavras), a estratégia adotada consiste em mapear todo vocabulário de palavras (conjunto de palavras únicas) e, para cada documento realizar a contagem dos seus termos no vocabulário. A estrutura de dados final é uma matriz onde cada linha (ou coluna) representa um documento e as colunas representam as palavras contidas no vocabulário, cada célula da matriz representa o encontro de um documento com um termo no vocabulário. A interpretação da matriz é a seguinte: para uma dada linha da matriz (bag-of- words) têm-se um documento com n termos únicos ( n está contido no vocabulário ), numa coluna temos os termos do vocabulário e no encontro da linha-coluna temos a frequência do termo/palavra (que representa a célula). Portanto, temos uma matriz de frequência termo-a-termo para um dado documento do nosso corpus. Analisando a estrutura de dados final é possível identificar alguns problemas. O primeiro deles consiste na dimensionalidade que esta matriz pode apresentar, pois caso tenha-se um vocabulário extenso a matriz pode inviabilizar a aplicabilidade de algoritmos (pode ser corrigida com a exclusão de termos específicos adotando algum critério, remoção de stopwords, uso de stemming ou lematização, remoção de palavras com acentuação, correção ortográfica, etc...). Além disso, como o bag-of-words trabalha contando termos em cada documento espera-se que ele perca características semânticas e de contexto dos textos (pode-se utilizar a estratégia de n-grams para driblar um pouco deste problema). Após a normalização da estrutura dos dados, o próximo passo consiste em utilizar um classificador para categorizar o texto alvo. O categorizador visto em sala de aula foi o Naive Bayes (classificador bayesiano ingênuo), trata-se de um classificador probabilístico que baseia-se no teorema de Bayes e utiliza como entrada a matriz resultante do bag-of-words. O classificador Naive Bayes é considerado ingênuo pois sustenta-se na hipótese de que os atributos são condicionalmente independentes. Em outras palavras, a premissa sustentada diz que o valor de um atributo não está relacionado ao valor de um outro atributo, na nossa problemática isso pode ser um problema pois algumas palavras podem ser relacionadas, por exemplo "São Paulo". O teorema de Bayes é a base do classificador Naive Bayes, neste sentido precisamos enunciá-lo: P( C | D ) = P( D | C ) * P( C ) / P( D ), para um documento D e uma classe C quaisquer. Isto quer dizer: qual a probabilidade de ser da classe C dado um documento D. Para isso, precisamos computar a probabilidade de um documento D dado a classe C (probabilidade a posteriori), probabilidade da classe C ocorrer e a probabilidade do documento D. Analisando a expressão, podemos notar que P( D ) é a probabilidade de um documento D aparecer, supondo que só possuímos documentos únicos (normalmente isso acontece) então esta probabilidade é constante e podemos removê-la: P( C | D ) = P( D | C ) * P( C ). Além disso, possímos C classes/categorias (C_1, C_2, ..., C_n) portanto precisamos computar esta probabilidade para todas as categorias e a probabilidade maior é a de interesse: P( C | D ) = argmax P( D | C ) * P( C ). Devemos também lembrar que um documento está representado numa estrutura bag-of-words então um documento é um vetor de termos-frequências D = [w1, w2, w3, ..., wn]: P( C | D ) = argmax P( [w1, w2, w3, ..., wn] | C ) * P( C ). Por fim, como assume-se a hipótese de independência condicional de cada termo então a probabilidade torna-se P( C | D ) = argmax ( P( w1 | C ) * P( w2 | C ) * ... * P( wn | C ) * P( C ) ) = argmax P( C ) * Produtório( w_i | C ). Para simplificar a expressão anterior podemos aplicar o log de ambos os lados da equação: log( P( C | D ) ) = argmax ( log ( P( C ) ) + Somatório( log( P( w_i | C ) ) ) ). A interpretação desta equação é a seguinte P( C ) = Count ( C ) / SUM ( Count ( C_i ) ) e P( w_i | C ) é a probabilidade de um termo w_i ter uma frequência | w_i | dado que é da classe C (isso pode ser computado com uma contagem simples, P( w_i | C ) = Count( w_i, C) / (SUM ( Count( W, C ) ) ) ). Caso algum termo/palavra seja desconhecida no treinamento podemos usar um estratégia de smoothing ( correção laplaciana ) que adiciona um alpha iniciando a contagem do termo não existente. Alpha = 1 / ( SUM ( Count( W, C ) ) + 1 ), ficando P( w_i | C ) = ( Count( w_i, C) + 1 ) / (SUM ( Count( W, C ) + | V |). Podemos usar o algoritmo para várias coisas além da classificação, como identificação de idioma, análise de sentimento, etc.
Rodrigo Hiroaki Ideyama Nessa aula sete de processamento de linguagem natural, o tema foi “Classificação de textos”. Como referência, a aula foi baseada no capítulo quatro, Naive Bayes Classification and Sentiment, do livro Speech and language processing: an introduction to natural language processing, computational linguistics, and speech recognition da editora Pearson/Prentice Hall dos autores Daniel Jurafsky & James H. Martin. No começo da aula, ele explicou sobre como preencher em cada campo do formulário do projeto da disciplina que devemos fazer e mostrou gráficos que diziam quais os sites que são mais utilizados e mais confiados para pesquisar. Para dar início ao assunto relacionado ao tema da aula, o Jesús mostrou um diagrama que representa a classificação de animais. Disse que no reino dos animais, existem os vertebrados e os invertebrados que, por sua vez, neles há subníveis. No primeiro, animais que possuem coluna vertebral, existem as classes répteis, peixes, anfíbios, aves e mamíferos. Já no segundo, animais que não tem coluna vertebral, temos os protozoários, platelmintos, nematelmintos, anelídeos, equinodermas, celenterados, moluscos, aracnídeos, crustáceos, insetos e miríades. Isso serviu de analogia para o melhor entendimento de como funciona a classificação de texto ou, como sinônimo, categorização de textos, definido como um processo de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos) conforme seu conteúdo. Esse método desperta o interesse tanto de cientistas que pesquisam na área de aprendizado de máquina e recuperação de informação quanto em desenvolvedores de aplicações que precisam trabalhar com grandes quantidades de documentos, isso aumentado drasticamente com a ajuda da internet que permite alta conectividade e disponibiliza diversas bases de dados contendo documentos de diferentes tipos e com variadas quantidades de informação. No slide seguinte, ele falou do fluxograma que demonstrou de como funciona o sistema de categorização de textos. Este opera da seguinte forma: primeiramente, acontece o pré-processamento do texto que foi recebido de uma coleção de documentos, depois as representações iniciais das páginas são enviadas ao módulo de seleção de termos, que diminui consideravelmente a dimensão das representações que, consequentemente, cria o conjunto de treinamento que este, por sua vez, é enviado ao algoritmo de aprendizagem, que ao fim, há a inclusão de novas regras de categorização na base de conhecimento. De maneira formal, o processo de classificação de texto descrito é dada uma entrada d (documento) e um conjunto finito de classes C = {c1, c2, , cn}, determinar, para d, uma classe c que pertence a C. Como exemplo, o professor falou do sistema de classificação de e-mails que, primeiramente, dado as mensagens normais, com spam ou com vírus recebidas, são pré-processados e processados com técnicas de mineração de dados, como transformação dos dados numa matriz documento-termo, remoção de stopwords, etc, depois utiliza-se de um classificador como Naive-Bayes, Redes Neurais, Máquina de Suporte Vetorial e K-vizinhos mais próximos para fazer a classificação binária, isto é, dizer se tal e-mail é spam ou não ou tem vírus ou não tem, por exemplo. Se a mensagem for classificada como spam ou tiver vírus, o sistema já joga automaticamente para a lixeira. No próximo tópico da aula, o Jesús começou a explicar sobre os métodos de classificação que pode ser tanto por meio de regras ou utilizando aprendizado de máquina. O primeiro faz-se o uso de regras definidas baseadas em palavras ou combinação de palavras (ou outras características). Se estas forem elaboradas por um especialista, o resultado da classificação pode ser resultar em uma acurácia alta, porém a manutenção/atualização das regras pode ser muito cara. Agora, ao usar aprendizado de máquina, o desafio é conseguir construir um classificador que seja capaz de mapear o novo documento d à sua classe correta c. Esse processo se dá da seguinte forma: primeiramente, desenvolvedor gera um número de exemplos com técnicas de pré-processamento e faz a descrição dos mesmos. Estes exemplos são enviados ao algoritmo de aprendizagem que seus hiperparâmetros são pré-estabelecidos pelo desenvolvedor. As regras geradas ao final são acrescentadas no modelo. O desenvolvedor pode avaliar o desempenho do agente inteligente com seu novo conhecimento e realizar análises com base na performance. Todo esse fluxo pode ser repetido quantas vezes for necessário. Existem muitos tipos de algoritmos classificadores, dentre eles: Naive Bayes, Regressão Logística, Support-vector Machines (SVM) e K-Nearest Neighbors (KNN). Na aula foi explicado sobre o agente inteligente Naive Bayes que estima a probabilidade de um texto pertencer a uma determinada categoria e é um dos mais utilizados em razão da sua eficiência e capacidade de lidar com grande quantidade de dados. Ele é baseado com a seguinte expressão matemática: P(Ck|x) = P(Ck). P(x|Ck)P(x) Sendo que, as categorias Ck e o documento x a ser classificado, desejamos determinar a probabilidade de que Ck seja a categoria do documento x, denotada por P(Ck|x) . Porém, esse algoritmo é considerado ingênuo porque considera os atributos condicionalmente independentes, isto é, o valor de um atributo não está relacionado ao valor de um outro atributo. Então podemos reescrever a probabilidade do documento em função de seus termos tj da seguinte forma: P(x|Ck) = jtjxP(tj|Ck) O documento é classificado na categoria que apresentar a probabilidade máxima, desconsiderando o divisor constante P(x): C(x) =argmax(P(Ck) jtjxP(tj|Ck)) É possível fazer as estimativas das probabilidades com base nos dados de treinamento P(c) = NcNdoc onde Nc é o número de documentos cuja classe é igual a c e Ndocé o número de documentos totais (no treinamento). P(wi|c) = count(wi,c)wVcount(w,c) onde V é o vocabulário de todo o corpus, isto é, de todas as palavras de todos os documentos. Depois de explicado esses conceitos, o professor Jesús passou uma atividade para a classe que precisava utilizar essas duas últimas expressões matemáticas citadas anteriormente para conseguir resolver. E, por fim, fez-se as considerações finais, falando das aplicações que utilizam a técnica de classificação de texto, sendo elas: atribuição de categorias, tópicos ou gêneros, detecção de spam, identificação de autoria de escrita, identificação de idade do autor do texto, identificação de idioma e análise de sentimento em texto. Além disso, ele falou da categorização de textos, mostrando o gráfico Google N-gram, patentes e método e sistema para a categorização e processamento de e-mails.
Michelle Kaori Hamada Antes de iniciar a aula conversamos sobre o projeto, sobre o formulário que devemos entregar até dia 04 de julho, sobre também a revisão bibliográfica do artigo que escolhemos, que por exemplo, até o ano do nosso artigo é fácil vermos e identificarmos os artigos que levaram ao que escolhemos, enquanto que para ver os artigos que vieram do que escolhemos é mais difícil. Vimos também mais sobre as ferramentas de pesquisa acadêmicas que utilizamos, que atualmente existe praticamente o monopólio do google, sendo que existem melhores e que estes são bem menos utilizados (ex: DBLP, ACM digital library, IEEE, Arxiv, Scielo, Portal de Periódicos CAPES, CiteSeerX, Semantic Scholar). Com o google, os artigos são indexados pelo seu título (e search snippets) o que dá menor ênfase para a revista na qual foram publicados, e os artigos que possuem maior número de citações possuem rankeamento superior. Dessa forma, os artigos mais antigos possuem maior impacto, e as revistas que não são da elite também passaram a ter maior impacto. O problema disso é que os artigos que já possuem grande impacto vão passar a ter cada vez mais impacto, enquanto que para os outros alcançarem a mesma "alta" que estes torna-se mais difícil. Voltando para a aula, o tema foi “Classificação de textos”, capítulo 6 do livro Speech and Language Processing de Dan Jurafsky and James H. Martin. O ser humano sempre realizou a classificação em diversos âmbitos (distribuição por classes, categorias ou grupos com características semelhantes), nesta aula vimos a classificação de textos. A categorização de textos é a classificação de textos inteiros à um rótulo (pertencente a um conjunto finito de rótulos). Enquanto que um sistema de categorização de textos consiste em classificar novos documentos considerando categorias pré-estabelecidas e documentos rotulados. Em aprendizado máquina a tarefa de classificação é definida da seguinte forma: "dada uma entrada x, e um conjunto finito de classes Y = {y1, y2, , yn}, determinar para cada x, uma classe y que pertence a Y. Em classificação de texto também ocorre da mesma forma só que x no caso é um documento e Y um conjunto de classes, então fica da seguinte forma: "Dada uma entrada d (documento), e um conjunto finito de classes C = {c1, c2, , cn} (classe n), determinar para cada d uma classe c pertencente a C". Dentro da metodologia de classificação existem regras que podem ser seguidas, se forem determinadas por especialistas a acurácia pode ser maior, entretanto a manutenção ou atualização das regras impostas pode ser bem custosa. Pode-se utilizar regras baseadas em palavras ou combinação de palavras (ou outra características). O maior desafio de um método de classificação é construir um classificador capaz de mapear o novo documento d à sua dada classe c, para isso utilizamos aprendizado de máquina supervisionado. Entre os grandes classificadores encontramos o Naive Bayes, regressão logística, support-vector machines (SVM) e o K-Nearest neighbors (KNN). Nesta aula, estudamos o classificador de texto Naive Bayes. Nele usamos nos documentos o modelo simples de representação bag-of-words (conjunto não-ordenado de palavras, sua desvantagem é que ele desconsidera a gramática, mas mantém a multiplicidade), ele mostra a lista de palavras/stopwords e quantas vezes ela aparece no documento. Pode-se aplicar em imagens, neste caso chamamos o modelo de bag-of- visual-words. Com o bag-of-words podemos rotular cada palavra a uma dada classe. O classificador Naive Bayes (ou Classificador Bayesiano "simples" ou "ingênuo) é um classificador probabilístico que considera os atributos condicionalmente independente, ou seja, "ingênuo" pois pressupõe que o valor de um atributo não está relacionado ao valor de um outro atributo. Para melhor classificarmos um documento d representado por um conjunto de características, vejamos ele como C, para determinarmos a classe de C: C = argmax P(c) SUM(P(f|c)), sendo P(f|c) a probabilidade da classe c aparecer no corpus durante o treinamento P(f|c) = (quantidade da palavra f)/(o total de total das palavras dado o documento/classe), e P(c) a probabilidade condicional dado o documento d P(c) = (número de documentos cuja classe é igual a c)/(número de documentos totais - no treinamento). Como os valores de probabilidade serão sempre menores que 1, podemos aplicar log para que seja mais fácil analisar o resultado final. Quando uma palavra é desconhecida durante o treinamento o seu valor é zero então podemos desconsiderá-la. Aplicamos então os conhecimentos adquiridos em uma atividade: na primeira questão de acordo com um corpus (conjunto de treinamento) com duas classes (c1 = 'pos' e c2='neg) calcular o P(c1), P(c2), vocabulário, tamanho do vocabulário e categorizar em 'pos' ou 'neg' um documento S com a frase "predictable with no fun" dado o que calculamos anteriormente; enquanto que no exercício seguinte de acordo com as likelihoods - probabilidades - dadas para cada palavra de um corpus de treinamento, ver se a frase " I always like foreign films" pertence a classe Pos ou Neg utilizando um classificador Bayesiano "ingênuo". Como considerações finais vimos as aplicações de Naive Bayes que pode ser a atribuição de categorias, tópicos ou gêneros, para detecção de SPAM, identificação de autoria de escrita, idade do autor do texto, idioma e sentimentos em textos, como por exemplo classificar opiniões, notícias e disciplinas.
Thiago Henrique Gomes Panini Resumo 7 – PLN A sétima aula de Processamento de Linguagem Natural teve início a partir de comentários do professor Jesús a respeito do projeto final da disciplina. Algumas orientações foram dadas como forma de guiar os alunos no desenvolvimento adequado do projeto em todas as suas etapas. Assuntos como forma de busca dos artigos, fontes de consulta e suas respectivas confiabilidades, implementações do projeto com base nos artigos, entre outros temas. Em seguida, dando continuidade aos tópicos da aula, utilizaremos um algoritmo de classificação de texto para análise de sentimentos. Para introduzir o assunto, o professor comentou sobre a importância universal da classificação, seja esta aplicada em qualquer área do conhecimento. Entretanto, trazendo este conceito para o contexto da disciplina, como classificamos texto? De certa forma, a categorização de texto é a tarefa de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos). Dada uma base de conhecimento, um sistema de categorização permite a recepção de um conjunto de elementos e, no fim, irá associar um rótulo para cada uma das entradas. Algumas possibilidades: análise de sentimento, identificação de idiomas, intenção do texto (positiva ou negativa), entre outras aplicações. Como exemplo prático, temos um sistema de classificação de e-mails entre spam ou não spam. Neste caso, estamos falando de um classificador binário, ou seja, com apenas duas possibilidades na variável target. Várias técnicas podem ser aplicadas e, entre elas, o processamento de linguagem natural. Ainda sem entrar a fundo em critérios de classificação, podemos associar algumas frases como mal intencionadas como, por exemplo, “Prezado ganhador”, “Super Desconto”, “Prêmio a ser retirado”. Formalmente, o objetivo é determinar, para cada entrada “x”, uma classe “y” que melhor se associa a esta entrada. Quando falamos de texto, “x” se transforma em “d” (documento) em um conjunto finito de classes “C”, sendo o objetivo determinar a classe “c” para cada entrada “d’. Em uma primeira abordagem, é possível realizar essa classificação sem utilizar técnicas de Processamento de Linguagem Natural, definindo regras para serem aplicadas aos documentos. Entretanto, a manutenção dessas regras pode ser extremamente custosa. Assim, o grande desafio é construir um classificador que seja capaz de mapear o novo documento “d”, dada uma base de treinamento contendo diversos documentos e suas respectivas classes. Dessa forma, o objetivo é construir uma função capaz de determinar a classe associada ao novo documento de entrada. Para realizar esse procedimento, temos alguns algoritmos: Naive Bayes, Regressão Logística, Support Vector Machines (SVM), K-Neares Neighbors (KNN) entre outros, fazendo deste um problema de aprendizagem supervisionada. De alguma forma, precisamos realizar transformações nos textos para podermos inserir esses dados ao classificador para que este possa interpretar as informações passadas. Os caracteres precisam ser transformados em números e, para tal, existe uma técnica chamada Bag of Words. Nessa abordagem, expressões regulares, lematizadores e diversas outras técnicas de PLN podem ser aplicadas para que, no final, seja obtida uma saída que traduza as palavras em um conjunto numérico. Algumas desvantagens: a dimensão da saída é muito alta e o algoritmo ignora totalmente o significado semântico das palavras. De fato, um documento pode ser representado em uma bag of words. É possível obter uma matriz para representação dos documentos onde os índices representam as palavras contidas no bag of words e as demais colunas contém um flag binário para identificar, em cada um dos N documentos (representados em cada coluna), se determinada palavra do índice está (flag = 1) ou não está (flag = 0) no documento. Em seguida, a técnica de Naive Bayes foi exemplificada e traduzida no contexto de classificação de textos. Em um problema desse tipo, temos um documento “d” como entrada para que o modelo possa calcular, de forma individual, a probabilidade condicional de cada uma das features, sendo estas representadas pelas palavras contidas no bag of word. O treinamento de um classificador de texto com Naive Bayes foi exemplificado pelo professor e, logo após isso, uma atividade foi passada em sala para fixação dos conhecimentos. Na atividade aplicada pelo professor, duas questões foram dadas com exemplos sobre classificações de texto utilizando a probabilidade de Bayes. Na primeira questão, foi necessário analisar o conteúdo dos vocabulários em duas classes diferentes (positiva e negativa) através da construção de um conjunto de palavras e a classificação de um trecho textual.
Mauro Mascarenhas de Araujo Resumo da aula do dia 27/06: "Classificalção de textos" [Capítulo 4]. Iniciou- se com um tira-dúvidas a respeito do projeto final, onde devemos preencher um formulário disponível no site da disciplina (Google Forms até o dia 05/07), informando os dados do grupo formado e o artigo escolhido para realizar a reprodução como trabalho final. Também foram mostradas outras ferramentas para realizar busca de artigos (apresentando dados a respeito da confiabilidade de cada uma delas), dentre elas: DBLP, ACM Digital library, IEEE Computer society digital library, Arxiv, Semantic scholar e Baidu scholar, além do Google Scholar. Agora, já no conteúdo da aula, foi apresentado um exemplo de classificação: a de animais por tipos, fornecendo, logo em seguinda, a definição geral de classificação: distribuição por classes, categorias ou grupos com características semelhantes. Logo após foi apresentada a definição de categorização de textos: Corresponde à tarefa de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos). Um sistema de categorização de textos deve permitir categorizar novos documentos, considerando categorias pré-estabelecidas e documentos já rotulados. Um exemplo de classificação binária é o classificador de emails (filtro de SPAM) que, dado um texto de entrada indica se é SPAM ou não. A definição formal da tarefa de classificação pode ser dada por: Dada uma entrada x, e um conjunto finito de classes Y = {y1, y2, ... , yn}, deve-se determinar, para x, uma classe y que pertence a Y. Portando a definição para classificação de texto, basta considerar x = um documento d e Y = conjunto finito de classes. Um dos possíveis métodos de classificaçao é fazendo a utilização de regras, que é baseado em palavras ou combinação de palavras, pode ter uma acurácia alta se as regras forem definidas por um especialista, porém sua manutenção ou alteração das regras é muito cara. A outra possível aproximação é fazer o uso de classificadores, dentre as possibilidades tem-se o Naive Bayes, a Regressão Logística, Support-Vector Machines (SVM), o K-Nearest Neighbors (KNN), que são os mais utilizados. Antes de aprender o de Naive Bayes deve-se entender o conceito de Bag Of Words, que nada mais é do que um conjunto não ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade), ou seja, o objetivo é dado um documento, obter um vetor de contagem de frequência de palavras. Para obter esta Bag Of Words, pode-se aplicar um Lemmatizer e retirar as stopwords. Já a ideia de aplicação em imagens usa uma aproximação similar: Dado um conjunto de imagens, picota-se elas de forma aleatória, construindo um histograma com os recortes; é válido notar que, cada recorte comporta-se como um unigrama. Logo após, foi apresentado o classificador Naive Bayes (Bayesiano), também chamado de classificador simples/ingênuo de Bayes. Trata-se de um classificador probabilístico que usa a Bag Of Words e considera os atributos condicionalmente independentes (i.e., o valor de um atributo não está relacionado ao valor de um outro atributo), por isso é chamado de ingênuo, pois, não considera dados viciados. A fórmula simplificada é dada por c=argmax(P(c)* ? P(f|c)), que embora seja ingênua, permite resolver grandes problemas na prática. É válido notar que, por se tratar de um classificador probabilístico, quanto maior for o corpus utilizado no treinamento, melhor será a classificação realizada. Uma das características da fórmula probabilística é que P(w|c) quando w for desconhecido no treinamento é 0, isso faz com que seja necessário fazer o uso do fator de smoothing, a fim de evitar que o numerador seja 0. Por fim, foi dada uma atividade na qual dado um corpus de treinamento, deveríamos identificar a probabilidade de uma classificação ocorrer na classe positiva e negativa: no caso, foram 2/5 e 3/5, respectivamente. Também foi pedido para indicar o vocabulário do corpus e seu respectivo tamanho, que foi 20, se as stopwords fossem mantidas e 17, caso contrário. Por fim, foi pedido para classificar duas strings cada uma com seu corpus de treinamento, que no caso, foram ambas dadas como 'negativa'. Por fim, foi apresentado um algoritmo classificador e foram feitas considerações a respeito de aplicações adicionais e categorização de textos e imagens.
Jair Edipo Jeronimo No início da aula, falamos sobre o projeto da disciplina, onde foi apresentado que a forma de entrega da primeira parte, que equivale a 10% da nota, será via um formulário com diversas informações iniciais do trabalho. Além disso, foi mostrado outras formas de se obter artigos, para que não sejamos influenciados por utilizar certos sites de busca, dentre eles temos DPLB, ACM Digital Library, IEEE, CAPES, Scielo, Semantic scholar, entre outros. Após isso, vimos o conceito de classificação que pode ser definida como a distribuição por grupos ou categorias que possuem características semelhantes. Dessa forma, classificar textos significa categorizar seu conteúdo atribuindo um rótulo. Mas para que exista um sistema que categorize esses textos é necessário ter uma base com categorias estabelecidas e documentos já classificados, assim baseando-se nesses documentos o sistema consegue identificar sua semelhança e atribuir um novo rótulo. Um exemplo de aplicação para um sistema desse tipo, é a classificação de e-mails para identificar possíveis spans. Definindo formalmente, a classificação é uma tarefa que recebe uma entrada x e um conjunto finito de classes C = {c1, c2, ..., cn} e tem como objetivo atribuir a x uma classe c pertencente ao conjunto C. Existem diversos métodos para auxiliar na classificação de textos, um deles é usar regras baseadas nas palavras ou em combinações de palavras. Tais regras, se definidas por especialistas, podem obter uma acurácia alta, porém o custo de manutenção ou atualização pode ser alto. Há também métodos de aprendizado de máquina que são utilizados para classificação, como Naive Bayes, regressão logística, support-vector machines (SVM) e k-nearest neighbors (KNN). Além disso, podemos representar um documento como uma bag-of-word, ou seja, um conjunto de palavras a qual utilizamos também a sua quantidade, mas não levamos em conta a gramática. A partir daí, podemos verificar se dois textos possuem palavras semelhantes e comparar suas quantidades, podendo também remover as stopwords para evitar que realize uma comparação não muito lógica. Essa forma de comparação pode ser utilizada também em imagens, onde as palavras seriam um fragmento da imagem e que formariam uma base de consulta para classificar outras imagens. Um tipo de classificador que utiliza a representação de textos através do bag- of-words é o Naive Bayes, também conhecido com classificador bayesiano, ele utiliza probabilidade e considera atributos condicionalmente independentes, isto é, não relaciona os valores dos atributos. Para seu cálculo podemos utilizar uma fórmula condicional, onde a melhor classe possível para um documento é definida como a maior probabilidade de dado um documento d eu ter um rotulo c (P(c|d). Dessa forma, utilizando algumas propriedades matemáticas, podemos reescrever a fórmula como o produto da probabilidade da frequência daquela classe na base pela produtória da probabilidade de dado uma classe c ter a palavra w, para toda palavra w pertencente ao corpus. Entretanto, existe a possibilidade de uma palavra não ter sido colocada na base de treino, o que torna sua probabilidade nula. Para tratar este caso, podemos simplesmente desconsiderar a palavra ou somar na proposição condicional o valor 1 na parte superior e inferior da expressão. Após toda a apresentação desses conceitos realizamos uma atividade com duas questões, onde a primeira nos dava uma base de treino com relação a opinião de pessoas ao ver um filme e se sua classificação positiva ou negativa. A partir disso, tínhamos de calcular as frequências das classes no corpus, o tamanho do vocabulário e quais palavras estavam presentes nele e ao final classificar uma frase utilizando o método de Naive Bayes. Já na segunda questão, as probabilidades de cada palavra aparecerem em uma certa classificação já estavam calculadas, era necessário apenas realizar o produto das probabilidades para identificar a qual classe a frase pertencia. Por fim, a categorização pode ser aplicada em diversos outros casos, como para análise de sentimentos, identificação de idiomas ou idade do autor do texto, ou até mesmo da autoria de escrita, mas além de textos também existem casos que necessitam de outras formas de identificação, como por exemplo para artigos científicos que podem conter imagens que influenciam em sua rotulação.
Renato de Avila Lopes Classificação de textos Classificação Distribuição por classes, categorias ou grupos com características semelhantes Categorização de textos Tarefa de classificar textos inteiros atribuindo um rótulo de um conjunto finito de rótulos Sistema de categorização de textos permite classificar novos documentos Considera categorias pré-estabelecidas e documentos rotulados Formalmente definida como: Dada um entrada x (documento) e um conjunto finito de classes Y = { y1, y2, ..., yn (classe n) } Determinar para cada x uma classe y que pertence a Y Classificação binária Sistema de classificação de spam em e-mails Baseadas em palavras ou combinação destas (ou outras características) Back-list-address OR ("dollars" AND "have been selected") Alta acurácia se definida por especialista (s) porém manutenção (atualização) das regras pode ser muito cara O desafio: Usando aprendizado de máquina construir um classificador que seja capaz de mapear um novo documento d à sua classe c Classificadores: Naive Bayes, regressão logística, support-vector machines (SVM), K-Nearest Neighbors (KNN) Usando Naive Bayes (aprendizado supervisionado) Classificador Bayesiano simples ou ingênuo Classificador probabilístico Utiliza Bag-of-words Bag-of-words conjunto não ordenado de palavras (desconsidera gramática, mantêm multiplicidade) Pode ser utilizado para classificar imagens Ingênuo, considera os atributos condicionalmente independentes (valor de um atributo não está relacionado ao valor de um outro atributo) Probabilidade condicional dado um documento d ? = argmax P (c | d) onde c pertence a C, ? é a melhor classe, d é um documento Maximum a posteriori ? = argmax P (c | d) = P (d | c) P (c) / P (d) = argmax P (d | c) likelihood P (c) prior Documento d representado por um conjunto de característica = argmax P (f1, f2, ..., fn | c) P (c) (probabilidade de c aparecer no corpus treinamento) = argmax P (c) ? P (f | c) onde c pertence a C e f pertence a F Simplificação ingênua que na prática permite resolver grandes problemas CNB = argmax P (c) ? P (f | c) Classificador Bayesiano ingênuo Aprendizado (treinamento) CNB = argmax P (c) ? P (wi | c) onde c pertence a C e i pertence a positions Considerando um corpus rotulado composto de Ndoc Exemplo (doc1, c6), (doc2, c5), ..., (docn, c2) P (c) = Nc (número de documentos cuja classe é igual a c) / Ndoc (número total de documentos) P (wi | c) = count (wi, c) / ? count (w, c) onde w pertence a V e V é o vocabulário de todo corpus (todas palavras de todos documentos) Qual seria o valor de P (wx | c) quando wx é desconhecida? zero (não importando os outros termos) Alternativa Laplace add-1 smoothing P (wi | c) = count (wi, c) + 1 / ? count (w, c) + |V| Atividade Teste de avaliação Duas classes c1 = "pos" e c2 = "neg" Negativo: just plain boring, entirely predictable and lacks energy, no surprises and very few laughs Positivo: very powerful, the most fun film of the summer P (c1) = 2 / 5 P (c2) = 3 / 5 Vocabulário: just plain boring entirely predictable and (2 vezes) lacks energy no surprises very (2 vezes) few laughs powerful the (2 vezes) most fun film of summer Tamanho do vocabulário: 20 (com stopwords) 16 (sem stopwords) Determine se "predictable with no fun" é da classe positiva ou negativa S = predictable with no fun P (predictable | pos) = 0 + 1 / 9 + 20 P (no | pos) = 0 + 1 / 9 + 20 P (fun | pos) = 1 + 1 / 9 + 20 P (predictable | neg) = 1 + 1 / 14 + 20 P (no | neg) = 1 + 1 / 14 + 20 P (fun | pos) = 0 + 1 / 14 + 20 P (pos) P (S | pos) = 2 / 5 x (1 x 1 x 2) / 29³ = 3.2 x 10-? P (neg) P (S | neg) = 3 / 5 x (2 x 2 x 1) / 34³ = 6.1 x 10-? S deve ser classificada como negativa Testando predictable with no fun Teste 1: negativa I always like foreign films P (positiva) = 0.00000585 P (negativa) = 0.00000950 Considerações finais Aplicações Atribuição de categorias, tópicos ou gêneros Detecção de SPAM Identificação de autoria de escrita Identificação de idade do autor do texto Identificação de idioma Análise de sentimentos em texto
Matheus Tulio Pereira da Cruz Na aula houve um certo questionamento do monopólio de busca por artigos que o Google possui. Talvez os métodos de rankeamento dos artigos não seja o melhor possível, ainda mais quando o método utilizado não é mostrado, ou seja, o algoritmo de busca é desconhecido. Se por um acaso o Google quiser omitir a indexação de certos tipos de artigos ou de certas reigões, nunca saberemos que isso acontece. Então é interessante que utilizemos outras ferramentas de buscas, como por exemplo: - Semantic scholar; - Baidu Scholar; - IEEE - Entre outras Métodos de classificação exigem que as categorias selecionadas tenham características similares. Categorização de textos é a tarefa de classificar textos inteiros atribuindo um rótulo, sendo que existe um conteúdo finito de rótulos. Um sistema de categorização de textos permite classificar novos documentos dados categorias e rótulos pré-estabelecidos. Definição de uma tarefa de classificação: - Dada uma entrada x, - Um conjunto finito de classes Y = {y1, y2, ...yn} - Determinar, para x, uma classe y que pertence a Y. Definição de uma tarefa de classificação de texto: - Dada uma entrada d, - Um conjunto finito de classes C = {c1, c2, ...cn} - Determinar, para d, uma classe c que pertence a C. Onde d é que um documento, C um conjunto de classes, cn um tipo de classe específica. Um dos métodos de classificação é usar regras, como por exemplo, regas baseadas em palavras ou combinação de palavras(ou outras características). A acurácia desse método pode ser altar, mas ela é muito cara por conta de ter que ocorrer uma manutenção/atualização das regras. Por exemplo, classificação de spam, hoje os spans cada vez mais estão sendo desenvolvidos para passar pelos algoritmos de classificação, por isso é necessário um trabalho rotineiro de manutenção/atualização. Outro método de classificação é usar aprendizado de máquina. Podemos usar classificadores como Naive Bayes, regressão logística, Support-vector machines(SVM), K-Nearest Neighbors(KNN). Esse tipo de classificação por aprendizado de máquina são normalmente aprendizados supervisionados. Podemos representar um documento através de um bag-of-words, que siginifica um conjunto não-ordenado de palavras associadas ao número de vezes que a mesma aparece no documento. O problema do bag-of-words é que ele não considera o contexto do documento, apenas mantém a multiplicidade. O BoW também é utilizado para imagens, que é o Bag-of-visual-words. o BoVW segue muito a ideia do BoW, ele picota a imagem em vários pedaços e conta a quantidade de pedaços iguais e monta um histograma. O Classificador de Naive Bayes é conhecido como Classificador Bayesiano "simples" ou "ingênuo" COISAS MATEMÁTICAS QUE PRECISAM SER COLOCADAS c^ = argmax P(d|c) P(c) P(c) = Priori - Probabilidade de uma palavra aparecer do corpus P(d/c) = Verossimilhança c^ = argmax P(f1,f2, ...,fn| c) P(c) c^ = argmax P(c) PRODUTORIA P(f|c) Por conta das probabilidades serem valores menores do que 1 e a multiplicação de várias probabilidades faz o número ser muito próxima de 0, usa-se o cálculo de log para facilitar a conta. c^ = argmax log P(c) + Somatória( log P(wi|c)) Usando uma base de treinamento temos as seguintes equações: P^(c) = Nc / Ndoc Nc = Número de documentos cuja classe é igual a c Ndoc = Número de documentos totais P^(w|c) = count(wi,c) / Somatória (w pertence V) count(w,c) V = Vocabulário de todo o corpus Existe um problema, a probabilidade de uma palavra aparecer se ela não está no treinamento é 0. Para driblar esse problema existem muitas maneiras, uma dela é o smoothing, que deixa a equação desse jeito. P^(w|c) = (count(wi,c) + 1) / ((Somatória (w pertence V) count(w,c)) + |V|) O smoothing é importante para não deixar que novas palavras que não estão no treinamento atrapalhem toda a análise da frase em questão, dessa forma, é colocado um peso pequeno na palavra nova e, dessa forma, a análise pode ser feita.
Elsio Antunes Junior A aula 27/06 - "Classificação de textos" dentro do tópico do livro "Speech and Language Processing" de D. Jurafsky e J.H Martin, "Naive Bayes Classification and Sentiment" começa com os conceitos básicos de classificação, dando uma ideia bem ilustrativa vinda da biologia onde a classe dos animais tem como primeira classificação a característica de ser ou não dotado de vértebras, uma das próximas seria ter ou não sangue quente, etc; Segue-se a formalização do que é classificação: (dada uma entrada x e um conjunto finito de classes Y={y1, y2, .. yn}, determinar para x uma classe y que pertence a Y) e a sua especificação para o caso de textos: (dado um documento d e um conjunto finito de classes C={c1..cn} determinar para d uma classe c que pertence a C); O professor exemplificou que podemos querer classificar um conjunto de textos, por exemplo artigos, por sua categoria principal de assuntos como tecnologia, esportes, entretenimento etc, ou seja, classificar textos inteiros atribuindo um rótulo de um conjunto finito de rótulos; Num segundo momento um classificador poderia também classificar novos documentos, considerando categorias pré-estabelecidas e documentos já rotulados; Métodos de classificação: usando regras; uso de regras baseadas em palavras; a acurácia pode ser alta mas as regras precisam ser definidas por especialistas, tornando a manutenção muito cara; Outro método de classificação é o aprendizado de máquina: um classificador capaz de mapear o novo documento a sua classe de forma automática; O professor cita os métodos Naive Bayes, Regressão Logística, SVM e KNN que basicamente procuram features nos dados de treino capazes de diferenciar nos dados de teste a que classe eles pertencem; Segue- se o detalhamento do funcionamento de uma estratégia de aprendizado supervisionado chamada Naive Bayes; Inicialmente o professor nos mostra a estratégia de tratar os dados numericamente de forma estatística; o método bag-of-words simplesmente representa o documento como um conjunto não ordenado de palavras, desconsiderando a gramática mas mantendo a multiplicidade, ou seja, basicamente um histograma de palavras; em imagens, o método bag-of- visual-words faz algo similar contabilizando pequenos recortes que nos ajudam a reconhecer os objetos comparando com algo similar cujos dados temos já compilado; O classificador Naive Bayes utiliza-se da estratégia bag-of-words para a representação de entrada de texto no algoritmo; é um classificador probabilístico e é chamado de naive (ingênuo) pois considera os atributos condicionalmente independentes; c' = argmaxP(c|d), c pertencente a C, onde c' é a melhor classe P(c|d) é a probabilidade condicional dado um documento d; desenvolvendo a expressão P(c|d) em P(d|c)P(c)/P(d) e desconsiderando P(d), dado que será o denominador comum de todos cálculos, chegamos ao desmembramento das variáveis likelihood e priori onde a representação do documento d em um conjunto de características e a probabilidade da classe c aparecer no corpus são definidas separadamente; Segundo Bayes, a simplificação é ingênua mas nos permite resolver grandes problemas; O classificador Bayesiano será agora definido por c_nb = argmaxP(c)produtória de P(w_i|c), para c pertencente a C e i pertencente a positions; Na implementação em pseudocódigo o professor destaca o cálculo de proir e de likelihook; Segue-se uma atividade de fixação e sua posterior solução e, nas considerações finais, as aplicações, a saber: atribuição de categorias, detecção de spam, identificação de autoria de escrita, identificação de idioma, análise de sentimento do texto, dando alguns exemplos de cada tema; No fim dos slides uma abordagem do professor sobre o projeto que, na verdade, foi feita no início da aula; O professor indicou sites de buscas de dados científicos e artigos e tivemos uma pequena discussão sobre o viés de informação obtida pelo Google.
Igor Neres Trindade Na aula de hoje, 27/06/2019, aprendemos sobre classificação de textos. Como referência bibiliog?afica, recomenda-se a leitura do capítulo 4 do livro “Speech and Language Processing”, de Dan Jurafsky. Começamos por entender o que é a classificação de texto. Também chamada de categorização de textos, é a tarefa de classificar textos atribuindo rótulos, dentre um conjunto específico finito de rótulos, também chamados de categorias. Um sistema como esse deve permitir a classificação de novos documentos considerando o que já foi rotulado. Um exemplo prático é a classificação de e-mails. Ao lermos alguns e-mails, podemos facilmente categorizá-los como spam ou não de acordo com nossas experiência passadas, pois reconhecemos alguns padrões no texto. Mas podemos automatizar todo esse processo também! Uma forma seria consultar um conjunto de regras e padrões, o que pode ter uma acurácia alta se definida por especialistas, mas e se os padrões mudam a todo momento? Pode ser muito custoso fazer a manutenção de um sistema como esse. Assim, buscamos nessa aula criar sistemas que aprendam com as classificações feitas, que sejam treinados, e possam categorizar e-mails, ou qualquer tipo de texto, automaticamente. Para desenvolver nossos algoritmos, precisamos entender um conceito essencial, que é a “bag-of-words” e serve como uma representação de um corpus. É um conjunto não-ordenado de todas as palavras de um documento, com suas posições ignoradas, mantendo somente sua frequências. Tal representação não traduz a dependência entre palavras, e entre as palavras e suas posições, o que será importante para nosso modelo, como veremos posteriormente. Para nosso modelo de aprendizado de máquina, foi utilizado o classificador bayesiano simples ou ingênuo, ou Naive Bayes. Existem muitos outros, como regressão logística, support-vector machines (SVM) e K-nearest neighbors (KNN), mas na aula, abordamos somente o primeiro. Tal classificador, dado um documento d qualquer, de todos os rótulos de nosso conjunto de rótulos, retorna a classe com maior probabilidade a posteriori, ou seja, com maior probabilidade P(c | d). Podemos aplicar o teorema de Bayes nessa fórmula, como vimos na aula anterior, o que resulta em (P(d | c) * P (c)) / P(d). Note que, como buscamos a classe que maximiza essa probabilidade e o documento é o mesmo para todos os cálculos de todas as classes, podemos simplesmente ignorar P(d), calculando somente o produto da verossimilhança, P(d | c), pela probabilidade a priori da classe, P(c). Podemos dar um passo extra e, sem perder generalização, representar o documento d como um conjunto de palavras w. Dessa forma, a verossimilhança será dada por P(w1, w2, , wn | c), o que é MUITO custoso para se computar, principalmente com um número grande de palavras. É por esse motivo que usamos o classificador “ingênuo” de Bayes: ele simplifica a fórmula da verossimilhança assumindo que não há dependência das palavras e suas posições (usando bag-of-words) e que cada probabilidade P(w | c) é condicionalmente independente. Assim, conseguimos reduzir nossa fórmula geral a simplesmente P(w1 | c) * * P(wn | c) * P(c) Cada probabilidade dessa pode ser facilmente calculada computacionalmente. A probabilidade da classe c a priori, ou P(c), é dada pela porcentagem de corpora treinados que estão na classe c, enquanto que cada probabilidade P(w | c) da verossimilhança é dada pela quantidade de vezes que a palavra w aparece entre todas as palavras contidas nas corpora com rótulo c. É puramente uma contagem! Ao final da aula, fizemos uma atividades que cobriam os cálculos das probabilidades e discutimos sobre as inúmeras aplicações. Além de detectar spams, pode-se identificação autoria de escritas, idioma e até analisar sentimentos em textos!
Tamiris Gabriele da Silva Lira A sétima aula de Processamento de Linguagem Natural tratou de Classificação de Textos, baseado no capítulo 4 da bibliografia recomendada, mas iniciou com alguns esclarecimentos sobre o projeto, com ênfase em dicas de pesquisa bibliográfica para auxiliar na definição do artigo a ser trabalhado. A classificação de elementos é uma atividade que pode ser aplicada em diversas áreas e consiste em separar esses elementos de acordo com características em comum. Na biologia, por exemplo, pode-se realizar a classificação de animais (vertebrados, invertebrados etc.). A classificação de textos consiste em, ao considerar um conjunto FINITO de rótulos, atribuir um desses rótulos a um texto inteiro. Considerando notícias, por exemplo, podemos considerar se ela é relacionada a esportes, entretenimento, política, etc.. Sistemas de categorização de texto possibilitam a classificação de novos textos com base em outros já rotulados de acordo com categorias já estabelecidas. O exemplo dado de classificação de emails permite determinar se um email recebido é spam ou não. A classificação de textos é definida, portanto: dado um documento de entrada e um conjunto finito de classes, determinar a que classe do conjunto o documento pertence. Regras podem ser utilizadas para ajudar a classificação e, se elas forem determinadas por um especialista, são muito eficientes, apesar de em alguns casos serem de cara manutenção. No caso dos emails, por exemplo, as estratégias de spam estão sempre mudando e, dessa forma, as regras devem ser atualizadas constantemente. Após essa introdução à classificação de textos, começamos a verificar como ela pode ser feita utilizando Naive Bayes. Para isso, exploramos o conceito de Bag-of-words, que pega as palavras do documento e as coloca em um vetor não- ordenado que associa palavra e quantidade de vezes que ela foi encontrada no texto. Esse conceito também pode ser aplicado em imagens (Bag-of-visual- words). O Classificador Bayesiano Simples considera que o "o valor de um atributo não está relacionado ao valor de um outro atributo" e por esse motivo é considerado ingênuo. É probabilístico e usa representações de texto como a bag-of-words. Considera a fórmula C=argmaxP(c|d), que significa que, dado um documento d, sua classe será a de maior probabilidade entre as classes disponíveis. No treinamento, consideramos que a probabilidade de uma classe c será o número de documentos que pertencem a classe c dividido pelo número total de documentos [P(c) = Nc/Nd]. Para que possamos evitar o evento de uma palavra desconhecida no treinamento ter probabilidade igual a zero, usamos a técnica de smoothing e calculamos a probabilidade de uma palavra pertencer a uma classe como [P(wi|c) = (count(wi,c)+1)/(?w?V(count(w,c)) + |V|)], ou seja, a probabilidade de uma palavra pertencer a uma classe c é igual ao número de vezes que a palavra aparece na classe mais 1, dividido pelo número de palavras totais na classe mais o tamanho do vocabulário do texto. Após essa explicação tivemos uma atividade na qual pudemos aplicar o conceito de treinamento bayesiano simples. Assim, a primeira questão nos pedia a probabilidade de duas classes c1 e c2 dado um texto, qual era o vocabulário desse texto e o tamanho desse vocabulário. A segunda questão pedia que identificássemos a classe (c1 ou c2) da frase "predictable with no fun" e, por fim, a última questão perguntava a que classe a frase "I always like foreign films" deveria ser atribuída utilizando um classificador bayesiano ingênuo. Por fim, vimos que a classificação de texto pode ser utilizada em diversas aplicações, desde identificação de idioma até análise de sentimentos.
Marcela Akemi Yamashita Esclarecimentos acerca do projeto: data de entrega foi adiada para 04/07. Não é necessário implementar os algoritmos e técnicas completas do paper, somente ideia central. Apenas um membro do grupo deve preencher o formulário contendo nome e RA de outros participantes e informações sobre o paper. Buscar em outras fontes além do Google, que pode não cobrir todas as fontes relevantes, apesar de cobrir a maioria. Com o Google(a partir de 2004): impacto de revistas que não são da elite aumentou. Aumentou impacto de artigos antigos. Artigos são indexados pelo título, dando menor ênfase a revista onde foram publiciados. Artigos com maior número de citações apresentam maior ranking. Google é mais utilizado, porém não é o mais confiável segundo pesquisa. Principais plataformas e bases de dados para computação: DBLP, ACM Digital library, IEEE, Arxvis. Outros: CAPES, Scielo. Semantic Scholar, CiteSeerX. Baidu: buscador chines com ampla cobertura. Classificação de textos. Capitulo 4 do livro do Jurafsky. Classificação: distribuição por classes, categorias ou grupos com características semelhantes. Classificação de textos: atribuição um rótulo ou número finito de rótulos. Sistema de categorização de textos permite classificar novos documentos, considera categorias pré-estabelecidas e documentos rotulados. Ex: sistema de spam de emails. Classificação binária: é ou não é spam. Formalmente: eterminar se uma entrada x pertence a um elemento y de um conjunto finito de classes Y. Classificação de texto: uma entrada d(um documento), Donjunto finito de classes C. Eeterminar, para d, uma classe c que pertence a C. Métodos de classificação usando regras: uso de regras baseadas em palavras ou combinação delas (ou outras características). Acurácia pode ser alta se regras forem definidas por especialista. Manutenção/atualização das regras pode ser custosa. Aprendizado de Máquina: classificador que seja capaz de mapear um novo documento d a sua classe correta ci. Diversos tipos: Naive Bayes, regressão logística, SVM, KNN. Classificador bayesiano ingênuo ou simples(Naive Bayes): Aprendizado supervisionado, probabilístico, representação do documento como bag-of-words (conjunto não ordenado de palavras, desconsidera a gramática, mas mantém multiplicidade), desconsidera stopwords. Possível utilizar em imagens. Ingênuo porque considera atributos condicionalmente independentes. Melhor classe ?=argmaxP(c|d)=P(d|c)P(c)/P(d). Envolve multiplicação de vários termos menores que zero, utilizar escala log. C(NB)=argmax*log*P(C)+(somatório sobre i)*log P(wi|c), considerando bag-of- words, posição da palavra não importa. P(wp,c) são independentes. Treinamento: P(c)=Nc/Ndoc, onde Nc: número de documentos cuja classe é c. Ndoc: número de documentos totais no treinamento. P(wi|c) = count(wi,c)/((soma em w)count(w,c)) e w pertence a V. O valor de P(wx|c) vai a zero quando wx é palavra desconhecida pelo treinamento, por isso P(wi|c) = count(wi,c)+1/(somatório sobre w)count(w,c)) + |V|. Slides exibindo pseudocódigo para funções de treinamento (TRAIN NAIVE BAYES (D, C)) e de teste (TEST NAIVE BAYES (testdoc, logprior, loglikelihood, C, V)). Atividade para classificar textos em neg ou pos. Aplicações: atribuição de categorias, tópicos ou generos. Detecção de SPAM. Identificação de autoria de escrita. Identificação de idade do autor do texto. Identificação de idioma. Análise de sentimentos em texto. Exemplos de aplicações em português.
Ricardo Gomes Esta aula abordou a classificação de textos e como ela ocorre. Há a tentativa em diversas áreas de classificar todas as coisas existentes seguindo certos conjuntos de regras, a ideia é juntar inúmeros elementos similares em um conjunto finito definido de categorias. Em processamento de linguagem o mesmo ocorre, onde textos são classificados de acordo com palavras e contexto presentes neles, resultando na atribuição de um rótulo para os mesmos. Como exemplos de classificação textual, temos o caso dos emails, que são analisados com objetivo de categorizá-los como spam ou não, e de gêneros textuais, para identificação de livros sobre romance, suspense, ficção científica, entre outros exemplos. Retornando à definição do problema, o intuito é, dado um texto de entrada, desenvolver um classificador capaz de atribuir uma classe a esta entrada a partir de um conjunto finito de classes pré definidas. A identificação feita pelo classificador pode usar regras baseadas em palavras, ou combinação delas, e apresentam uma acurácia alta caso essas regras sejam definidas corretamente. Existem vários classificadores para este tipo de tarefa, como as SVMs e regressão logística. Um exemplo de classificador bem simples é o Naive Bayes, que depende de um aprendizado supervisionado, ou seja, requer uma entrada classificada previamente para ser usada no treinamento do modelo. O Naive Bayes recebe um documento na forma de Bag Of Words, ou seja, todas as palavras contidas no texto estarão em um conjunto desordenado, porém mantendo multiplicidade. Devido a essa forma de representação, o classificador é ingênuo, pois considera os atributos da entrada independentes. Ele também é probabilístico, definindo a melhor classe como aquela que maximiza a probabilidade de ser esta a correta dado um certo documento. Modificando, pode-se definir a melhor classe como aquela que maximiza a probabilidade de uma classe multiplicado pelo produtório das probabilidades de todos os elementos dado sua classe. Os elementos são as palavras quando são utilizados textos e o uso de logaritmo no cálculo pode melhorar a representação dos valores sem perdas de dimensionalidade. A probabilidade de uma certa classe pode ser definida como o número de vezes em que aquela classe aparece dividido pela quantidade de documentos no treinamento, enquanto a probabilidade de uma palavra dado sua classe é calculada através do número de vezes que esta palavra, com esta classe, aparece, dividido pela quantidade de todas as palavras com a mesma classe da palavra desejada no vocabulário. Existe uma chance de uma palavra nunca surgir em um texto, resultando em uma probabilidade igual à zero, e para contornar esse problema, modifica-se o cálculo para sempre incluir pelo menos uma ocorrência de qualquer palavra. Para testar este classificador, foi passada uma atividade em aula com objetivo de simular os cálculos e as classificações desse modelo. No cotidiano, modelos como esse são bastante usados na classificação de emails como spam, como já mencionado anteriormente, e também em casos que envolvem identificação de um idioma ou então análise de sentimentos em opiniões. Recentemente ocorreu um crescimento no desenvolvimento de técnicas tanto de categorização quanto de classificação de textos devido à grande quantidade de informações disponíveis.
Bruno Menezes Gottardo Ladeia Na última aula de Processamento de Linguagem Natural foi descorrido sobre Classificação de Textos, focando em técnicas, implementações e ganhos advindos da utilização dos exemplos práticos demonstrados. A classificação é um assunto de bastante interesse dentro da área de Aprendizado de Máquina, ela consiste em, a partir de uma entrada x e conjunto de classes enumeráveis Y = {y1, y2, y3, ..., yn}, determinar para todo x a qual classe y pertencente a Y, x pertence. Classes neste contexto são separados por algumas características e propriedades que a distinguem entre si, então é análogo a um rótulo. Isso significa que a partir de um conjunto de classes previamente estabelecidas, o trabalho do classificador será colocar x na classe na qual ele tenha maior afinidade. Para a classificação de textos utiliza-se uma notação um pouco diferente, no lugar da entrada x, utiliza-se d de document e no lugar das classes y, utiliza-se c de classe. Existem alguns métodos de classificação, dentre eles temos: com utilização de regras, com aprendizado de máquina (neste há algumas variações de modelos de aprendizagem). Classificação pelo método de regras consiste em definir um conjunto de regras baseadas em palavras ou combinação de palavras (ou outras características) e comparar a entrada contra este conjunto de regras. Caso estas regras sejam definidas por um especialista do assunto, o classificador pode vir a ter uma acurácia alta. Este método possui um custo caro de manutenção, visto que sempre que precisar de alguma alteração, ou atualização do classificador, será necessário fazer a alteração das regras um a um, pelo especialista responsável. Classificação utilizando aprendizado de máquinas segue a definição descrita acima e podemos definir diferentes tipos de classificadores como: Naive Bayes, Regressão Logística, Support-vector Machines (SVM) e k-nearest neighbor (KNN). O método de exemplo e apresentado na sala foi o de Naive Bayes, também comumente chamado de Bayes ingênuo ou simples. É um classificador probabilístico e é ingênuo pois ele considera os atributos como condicionalmente independentes (os valores não tem relações entre si). Para fazer uso do Naive Bayes na classificação de textos podemos considerar um documento de entrada como uma estrutura bag-of-words, onde é enumerado o conjunto de palavras do mesmo, porém é desconsiderado sua gramática (diferentemente do n-grama). Para o bag-of-words a escolha de remoção dos stop words é de critério de quem está construindo o classificador. Para a classificação consideramos ctio = argmax P (c | d) onde c pertence a C e podemos expandir isso para ctio = argmax P(d | c)P(c) = argmax P(f1, f2, f3, ..., fn | c)P(c), onde podemos simplificar isso como um produtório dos termos independentes ao utilizar o teorema de Bayes. Desta estrutura conseguimos definir que P(c) = Nc / Ndoc, onde Nc é o número de documentos cuja classe é igual a c e Ndoc é o número de documentos totais e para calcular a probabilidade de um novo documento utiliza-se P(wi|c) = count(wi,c) / sum(count(w,c)). Por fim a aula foi resumida dizendo que classificação e categorização de textos são sinônimos.
Guilherme Beo Arqueiro A última aula de PLN, realizada no dia 27/06, teve como tema o uso de processamento de linguagem natural para classificação de textos, referente ao capítulo 4 do livro seguido na disciplina. A categorização de textos é uma técnica correspondente à classificação de textos completos, atribuindo um rótulo pertencente a um conjunto finito de rótulos conhecidos. Em geral, um sistema de categorização de textos permite a classificação de novos documentos, considerando categorias pré-estabelecidas e documentos rotulados previamente. Vimos um tipo de classificação binária, como a classificação de emails, que classifica se um email é spam ou não, baseado em seu conteúdo. A classificação é uma tarefa definida por: dada uma entrada x e um conjunto finito de classes (Y = {y1, y2, , yn}), determinar para x uma classe y, pertencente a Y. Em classificação de textos, substituímos x por um documento, a ser definido em um conjunto de classes de textos. Para esse tipo de classificação, vimos alguns métodos, como uso de regras baseadas em palavras ou combinação de palavras, que permite uma alta acurácia se as regras forem definidas por especialistas, mas que demanda muito esforço para atualizar e manter as regras. Outro método de classificação explorado foi o aprendizado de máquina, que consiste em um classificador capaz de mapear um documento “d” à sua classe correta “ci”. Atualmente, existe uma grande quantidade de classificadores, mas o detalhado em aula foi o método de Naive Bayes, ou Bayes ingênuo. Utilizando o conceito de bag-of-words, onde um documento é representado como um saco que contém um conjunto não-ordenado de palavras (desconsiderando a gramática e mantendo a multiplicidade), podemos aplicá-lo ao classificador Bayesiano. Esse é um classificador probabilístico, que é considerado ingênuo, pois considera os atributos como condicionalmente independentes, isto é, o valor de um atributo não se relaciona ao valor de um outro atributo. A probabilidade é calculada por ? = argmax P(c|d), sendo c?C, onde ? é a melhor classe e d é o documento, de forma que é calculada uma probabilidade condicional dado um documento d. Vimos também que é possível treinar o algoritmo, de forma que será possível determinar as probabilidades das palavras, considerando um corpus rotulado composto de Ndoc, conseguimos calcular: P(c) = Nc/Ndoc, onde Nc é o número de documentos cuja classe é igual a c, e o número de documentos totais no treinamento. Na forma que é feito o cálculo, o valor de P(wx|c) quando wx é uma palavra desconhecida no treinamento é zero, mas é possível tratar esse resultado indesejado ao realizar o “Laplace add-1 smoothing”, que é uma técnica que soma 1 à fórmula, evitando esse problema. Outra alternativa para esse caso é desconsiderar a palavras, caso ela não seja conhecida no treinamento. Ao final da aula, realizamos uma atividade para aplicação desses conhecimentos e vimos algumas aplicações dessa classificação, como detecção de SPAM, identificação de autoria de escrita, de idade do autor, de idioma e até mesmo uma análise de sentimentos em um texto, além de classificação de notícias, de disciplinas, entre outras.
Rodolfo Azevedo Dos Santos Classificação de textos: O problema de classificação é um problema natural do ser humano – que todos aprendem. Exemplo: Classificação de animais: Vertebrados e Invertebrados (são separados por um elemento) Text classification: É uma tarefa de atribuir um rótulo a um conjunto de documentos, de modo a categorizá-los. O conjunto de rótulos (classes) é FINITO. Não pode ser infinito. Um sistema que permite categorizar, dado uma base de conhecimento classifica os elementos a seus respectivos rótulos. Exemplo: Descobrir se um comentário a respeito de um filme é positivo ou negativo (baseado em palavras presentes no texto. Ex: “ruim” – Categoriza como negativo. “bom” – Categoriza como positivo. Alguns desafios: Alguém escrever “espetacularmente ruim” – São necessárias estratégias para lidar com isso. Outro exemplo: Classificar um email em spam ou não spam. (Utilizado por Gmail etc) Formalmente: Dada uma entrada x (sendo x qualquer coisa – livro, texto etc) Um conjunto finito de classes Y = {y1,y2...,yn} Determinar para cada x, uma classe y que pertence a Y. Y é finito. Classificação de texto (Formalmente): Dada uma entrada d Um conjunto finito de classes C = {c1,c2,..,cn} Determinar, para cada d, uma classe c que pertence a C. Métodos de classificação: Usando regras Uso de regras baseadas em palavas ou combinação de palavras Uso de OR, AND etc São regras definidas por um especialista (que possui um conhecimento sobre um dado assunto) São boas mas são altamente dependentes do especialista – Portanto, a manutenção/atualização de regras pode ser muito cara. Fácil de fazer porém a manutenção é cara. Não utilizaremos esse método. Tuplas de documento,classe (para treinamento): Aprendizado de máquina. Cria uma função ? : d – c Existem diversos classificadores: Bayes, Regressão logística etc. Muitas ferramentas já possuem classificadores (Ex:: NLTK) Classificação de texto utilizando Bayes: O aprendizado citado acima é chamado de supervisionado (pois possui um gabarito – tuplas). Um documento pode ser representado como uma bag-of-words. Separa o texto por palavras (retirando sinais de pontuação, stopwords e pode ser aplicado um stemmer ou lemmatizador). O resultado é um bag-of-words no qual está associado a frequência (de ocorrência). Desvantagem: Dimensão muito grande, desconsidera o contexto. Para tentar analisar contexto: Criar utilizando n-gramas. Vetor binário: 1 (está no texto), 0 (não está) O conceito de bag_of_words já foi utilizado muito em imagens. Classificação Naive Bayes (ingênuo) É probabilístico, utiliza representação de textos. É ingênuo porque considera que as palavras (atributos) não dependem do outro ? = argmaxP(c|d) utiliza simplificação para cálculo do MAP. Calcula em log (porque quanto maior o vocabulário, menor a probabilidade). Aprendizado (treinamento): Definimos todas as probabilidades Dados de treinamento: Corpus rotulado Teste: dada uma entrada, verifica se a entrada pertence a uma classe. P (de palavra que não está no treinamento): ZERO. Isso não é bom porque o cálculo é uma produtória. Estratégias: Desconsiderar a palavra, adicionar um valor pequeno, smoothing (+1). Vocabulário: Conjunto de palavras únicas (sem repetição). Aplicações: Identificação de idioma, detecção de spam, identificação de autoria de escrita etc.
Leonardo Nascimento Classificação é a distribuição por classes, categorias ou grupos com características semelhantes. Assim, atribuir rótulos a um texto é uma tarefa de classificação de textos, também conhecida como categorização de textos. Um sistema de categorização de textos permite classificar novos documentos considerando categorias pré-estabelecidas e documentos rotulados. A categorização binária em um filtro de spams, onde e-mails são marcados como spam ou não spam, pode ser um exemplo, assim como sistemas para identificação de autoria de escrita, identificação de idade do autor do texto, identificação de idioma e análise de sentimentos em texto. Formalmente, uma tarefa de classificação de texto consiste em atribuir para cada documento de entrada uma classe pertencente a um conjunto finito de classes. Essa classificação pode ser feita tanto com o uso de regras quanto com o uso de aprendizado de máquina. Com o uso de regras, baseadas em palavras ou a combinação destas, a acurácia pode ser alta se definida por especialistas no domínio, porém a manutenção das regras tende a ser uma tarefa custosa. Usando aprendizado de máquina, o desafio é construir um classificador que seja capaz de mapear um documento de entrada para a classe correta. O classificador é um algoritmo de aprendizado supervisionado. Existe uma grande quantidade de classificadores que pode ser utilizada, naive Bayes, regressão logística, máquinas de vetores de suporte (SVM) e K vizinhos mais próximos (KNN) são alguns exemplos. Algoritmos de aprendizado supervisionado são modelados para receber atributos numéricos como entrada, e por isso a classificação de texto usando aprendizado de máquina exige que seja feita a transformação do texto para atributos numéricos. O modelo bag-of-words pode ser utilizado para essa transformação. O texto é representado como um conjunto de palavras que mantém a multiplicidade, mas desconsidera gramática e ordem. Stopwords são comumente desconsideradas nesse modelo. Ainda, a ideia do modelo bag-of-words também pode ser vista em classificadores para visão computacional, e é conhecida como bag-of-visual- words. Com a representação de textos como bag-of-words, é possível utilizar o classificador probabilístico naive Bayes. Apesar desse classificador ser considerado ingênuo porque considera os atributos como condicionalmente independentes, essa é uma aproximação que, na prática, tem bons resultados. Com um classificador naive Bayes, a melhor classe para um documento é aquela que tem maior probabilidade condicional de um documento ser daquela classe. Tendo um conjunto de dados rotulados para o treinamento, a probabilidade de um documento pertencer a uma classe é o número de documentos dessa classe sobre o número total de documentos, e a probabilidade de uma palavra pertencer a uma classe é o número de vezes que esta aparece na classe sobre a soma de todas as palavras que aparecem na classe. Para cuidar de casos onde a palavra é desconhecida no treinamento, utilizamos como alternativa a técnica Laplace add-1 smoothing para evitar que numerador ou o denominador sejam iguais a zero.
Arthur Veloso Kamienski Classificação de textos: classificação, ou categorização, é o ato de agrupar objetos (como pessoas, animais, palavras, etc) com características comuns, de forma que todos os que se assemelham pertencem a um mesmo grupo. Quando falamos de classificação de textos, especificamente, buscamos atribuir rótulos a documentos (os objetos, constituídos de conjuntos de palavras), de forma a identificá-los de acordo com algum critério. É importante ressaltar que os rótulos pertencem a um conjunto finito de opções. Desta forma, podemos definir formalmente a tarefa de categorização como: dada uma entrada X e um conjunto finito de classes (rótulos) Y = {y1, y2, ..., yn}, determinar para cada x pertencente a X uma classe de Y. Essa tarefa pode ser realizada utilizando um conjunto de regras baseadas em palavras ou combinação de palavras. No entanto, esse conjunto de regras não é fácil de ser determinado e pode não resultar em resultados satisfatórios se não forem escolhidas por especialistas. Portanto, técnicas de aprendizado de máquina são normalmente utilizadas. Essas técnicas tentam construir um classificador para mapear um novo documento (nunca antes visto), para sua classe correta, baseado em outros documentos já rotulados observados anteriormente. Uma das técnicas amplamente utilizadas para classificar textos é o classificador probabilístico Naive Bayes. Esse classificador é chamado de "ingênuo" pois considera que os atributos são condicionalmente independentes, isto é, o valor de um atributo não se relaciona com o valor de outro. Apesar disso, os resultados obtidos são satisfatórios. Para ser utilizado por esse classificador, utiliza-se a representação do documento como Bag-Of-Words, um conjunto não ordenado de palavras que também apresenta o número de vezes que cada uma foi observada no documento. Essa abordagem tem a desvantagem de que desconsidera o contexto e a gramática. Dado o documento, o classificador calcula a probabilidade de cada classe dado o conjunto de features (P(c|d)) e seleciona a classe de maior probabilidade, ou seja, calcula argmax(ceC)P(c|d). Essa conta pode ser reduzida a argmax(ceC) P(c) P(f1|c)P(f2|c)...P(fn|c). Para estimar as probabilidades, utilizamos a contagem de ocorrências no conjunto de documentos de treino. Assim, a probabilidade de uma classe é dada pelo número de ocorrências da classe pelo total de documentos, enquanto a probabilidade de uma feature dada uma classe é a contagem da palavra pelo total de palavras daquela classe. Quando não existem ocorrências da palavra, a resultante será zero. Assim, podemos utilizar a técnica de smoothing, que considera que todoas as palavras do texto aparecem mais uma vez, adicionando um em suas contagens de ocorrência. A classificação de texto pode ser aplicada para a detecção de SPAM, da autoria de escrita, de idioma, de idade do autor e de sentimentos no texto.
Pedro Ricardo Bronze Há uma grande discussão a respeito de como a utilização de ferramentas de busca como google podem enviesar o rumo da ciência, considerando que se trata de um algoritmo fechado e que pode ter interesses privados na forma com que apresenta os resultados. Outras fontes que podem ser utilizadas para pesquisa bibliográficas de artigos de periódicos científicos, algumas delas são Semantic scholar, Baidu Scholar, DBLP, ACM, IEEE, Arxiv, Portal CAPES e Scielo. A aula de hoje focaremos no capítulo 4 do Jurafsky, utilização de Classificação via algoritmo Naive Bayes (Probabilístico). Para categorizarmos devemos considerar que o conjunto de rótulos é finito (contável). Um sistema de classificação permite classificar documentos ainda não vistos baseados nos que já foram classificados e os padrões dos anteriores. Formalmente a definição de classificação pode ser que dada uma entrada x e um conjunto de classes Y = {y1,y2,..,yn} determinar para cada x uma classe y que pertencem a Y. Em se tratando de conjunto de regras, estas precisam ser definidas por especialistas, podem estar expostas a vieses e sua manutenção é cara. Utilizando ferramentas de aprendizado de máquina podemos criar uma função que dado um conjunto de características de um documento de entrada esta função nos retorne a classe de determinado documento. Diferentes algoritmos utilizando variadas formas de se criar estas funções, baseados na distância no espaço de características, probabilidade, ganho de informação etc. Quando consideramos textos, a primeira fase é separar o documento em palavras, então pre-processar retirando pontuação, tokenizar, lematizar, retirar stopwords etc. Utilizando Bag-of-words contamos frequências, mas perdemos informação gramatical. Podemos criar uma matriz de frequência de termos em cada documento. Bag-of-visual- words é um conceito já conhecido na análise de imagens onde podemos criar vocabulários visuais. No caso do Naive Bayes ele é probabilístico, ele utiliza representação do texto em forma de Bag-of-Words, e considerado ingênuo porque considera os atributos condicionalmente independentes (valores de atributos não relacionados ao valor de outros atributos). Uma forma de mitigar o problema de palavras que não estão no nosso corpus é adicionar um termo de 'smoothing'. Na atividade multiplicamos (a contagem de documentos de cada classe dividida pela quantidade de documentos totais) * (probabilidades de cada palavra para cada classe). Na atividade 2 realizamos uma produtória para cada classe e a que retornar o maior valor é a classe escolhida pelo classificador. Algumas aplicações da classificação de textos são detecção de SPAM, atribuição de categorias/gêneros/tópicos, identificação do autor/idioma/sentimentos de textos. No jornalismo classificar notícias, identificar disciplinas e idiomas, categorização de textos e classificação de textos (que são sinônimos). Algumas das grandes companhias como Xerox e IBM detêm diversas patentes de métodos e e sistemas para classificação de textos.
Paula Keiko Miyashita A aula 7 tratou de classificação de texto. A aula se iniciou com uma introdução ao conceito de classificação, utilizando como exemplo a classificação de animais e sua classificação como vertebrados e invertebrados que, dentro de cada classe, possui subclasses. A classificação de textos pode ser entendida como sua categorização/rotulação. Assim, um sistema de categorização de texto pode ser descrito como um sistema que permite classificar novos documentos com base em categorias pré-estabelecidas e documentos previamente rotulados. Um exemplo seria um sistema de categorização de e-mails que, baseado em algumas frases frequentes em spams, classifica e-mails como spam ou não spam (classificação binária). A classificação pode ser feita utilizando regras baseada em palavras ou combinações de palavras (ou outras características), este método pode ter alta acurácia em casos em que as regras são definidas por especialistas da área em questão, mas a manutenção/atualização das regras pode ser muito cara. Também é possível fazer a classificação utilizando aprendizado de máquina, o desafio é desenvolver um classificador capaz de mapear o novo documento à sua classe correta. O exemplo dado em aula utilizou o classificador Naive Bayes, mas antes de passar os dados para o classificador, é necessário processar o texto. Utilizando bag-of- words, cria-se um vetor com todas as palavras e sua quantidade de ocorrências. Ou seja, o bag-of-words perde o significado das palavras, mas mantém sua multiplicidade. Bag-of-words também pode ser adaptado para imagem, quebrando uma imagem maior em pedaços e verificando sua presença, é chamado de bag-of- visual-words. Uma vez que os dados (documentos) foram preparados, pode-se aplicar o Naive Bayes, o Naive Bayes é um classificador probabilístico que assume que os valores dos atributos são independentes (por isso Naive). O algoritmo deve primeiramente ser treinado para que depois possa realizar classificações, assim devem ser informados os dados e a classe do documento durante a fase de treinamento. Assim, com base nos dados de treino, o algoritmo calcula a probabilidade de um novo documento pertencer a cada uma das classes e o classifica para o maior valor. Foram feitos alguns exercícios para fixação do conteúdo e então passou-se para as considerações finais. A classificação de texto pode ser utilizada para detecção de spam, identificação de autoria de escrita, identificação de idioma, análise de sentimentos do texto, entre muitas outras. Um outro ponto discutido foi da categorização de, por exemplo, e-mails apenas com base no texto, e que esta prática tem crescido muito no século XXI. Os maiores detentores de patentes nessa área são a Microsoft e a IBM.
Laura Cestavo Borges Dos Santos Categorizar textos corresponde à tarefa de classificar textos inteiros atribuindo um rótulo. Um sistema de categorização de textos permite classificar novos documentos e também considera categorias pré-estabelecidas e documentos rotulados. Um exemplo de classificação binária seria um sistema de classificação de e-mails, que checa se um determinado e-mail é SPAM ou não. Formalmente, podemos definir a classificação como uma entrada d, que seria o documento, e um conjunto finito de classes, C e para cada d, deve-se determinar uma classe c que pertença a C. Existem alguns métodos para a classificação, um deles é o uso de regras baseadas em palavras ou combinação delas (ou outras características). Esse método pode ter alta acurácia se as regras forem definidas por um especialista, porém a manutenção/atualização das regras pode ser cara. Outro método, que é mais utilizado, é o que usa aprendizado de máquina. Porém há um desafio, que é construir um classificador que seja capaz de mapear o novo documento d a sua classe correta c. Existem vários classificadores como: Naiva Bayes, regressão logística, Support-vector machines (SVM) e K-Nearest Neighbors (KNN). Em sala de aula, focamos no Naive Bayes, que é um algoritmo de aprendizado supervisionado. Um documento pode ser representado como uma bag-of-words, que é um conjunto não-ordenado de palavras e essa bag desconsidera a gramática, mas mantem a multiplicidade. Bag-of-words também podem ser usadas para imagens. No Naive Bayes, que é um classificador probabilístico também conhecido como Classificador Bayesiano “simples” ou “ingênuo”, usa-se a representação de textos como bag-of-words. Ele é considerado ingênuo porque considera os atributos condicionalmente independentes, isto é, o valor de um atributo não está relacionado ao valor de outro, ou seja, palavras como rio e janeiro não são consideradas relacionadas, apesar de sabermos que em muitos casos estarão ligadas. O classificados de Naive Bayes determina a melhor classe, pegando o argumento máximo das probabilidades condicionais de um documento d com uma classe c. Um classificador de Naive Bayes primeiro terá um conjunto de treinamento em um corpus rotulado, esse conjunto é composto de vários documentos. Em sala de aula, houve uma tarefa onde simulamos o processo do Naive Bayes, definindo as probabilidades, o vocabulário e calculando a probabilidade de uma frase ser de uma classe positiva ou negativa. Existem diversas aplicações para classificadores, são algumas: atribuição de categorias, tópicos ou gêneros, detecção de SPAM, identificação de autoria de escrita, de idade do autor do texto, de idioma, classificação de notícias, disciplinas e analise de sentimentos em texto.
Felipe de Campos Mesquita O resumo da aula 7 do dia 27/06 é sobre classificação de textos, sendo a bibliografia a mesma das outras aulas, o capítulo 4 do livro Speech and language processing: In introduction to natural language processing, computational linguistics, and speech recognition de Daniel Jurafsky e Jame H. Martin. Da definição retirada da aula, a categorização de textos corresponde à tarefa de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos). Um sistema de categorização permite categorizar novos documentos de categorias pré-estabelecidas. Um exemplo dado em aula foi o de classificação de e-mails, no qual os e-mails que chegam devem ser classificados entre bons e-mails e spams. Uma abordagem possível da classificação de textos é fazer o uso de regras, tal como usar palavras ou combinações de palavras no caso de uma black-list, mas tenha em mente que a manutenção ou atualização das regras pode ser muito cara, porém a acurácia pode ser alta em caso de regras definidas por especialistas. Outra abordagem possível para classificação de textos é usar aprendizado de máquina (machine learning), neste caso o desafio consiste em construir um classificador que seja capas de mapear o novo documento à sua classe correta. Existem uma série de classificadores, tais como Naive Bayes, regressão logística, support-vector machines (SVM), K-nearest Neighbors (KNN). Trabalhamos bastante em aula a classificação de textos usando Naive Bayes (aprendizado supervisionado). Vimos a definição para bag of words, um conjunto não ordenado de palavras que desconsidera a gramática, mas mantém a multiplicidade. Também foi visto em aula sobre o bag of words em imagens para identificação e classificação como exemplo. O classificador de Naive Bayes muitas vezes é conhecido como “simples” ou “ingênuo”, mas ele também é muito poderoso e bastante utilizado. Nos slides da aula é possível encontrar toda a base matemática para utilização do modelo, tal como definições e as fórmulas matemáticas. Na UFABC, muitas vezes vimos Naive Bayes nas aulas de estatística, é um conceito bastante comum de encontrar nas disciplinas. Nos slides também podemos encontrar pseudocódigos para este modelo de classificação de textos. A atividade em sala consistiu em dois exercícios, a atividade um fornece um corpus (conjunto de treinamento) com duas classes, positiva e negativa, e então é pedido que você classifique uma frase dada baseada no corpus, o segundo exercício ao invés do corpus, fornece as probabilidades. Na aula também foi falado sobre o projeto e como podemos buscar os artigos e algumas ferramentas para isso.
Lucas Ferraz Nicolau A tarefa de classificação é natural no estruturamento humano de conceitos, dividindo elementos de um grupo em categorias com relação a alguma característica semelhante. Por exemplo, um resultado clássico da biologia é a classificação de animais em vertebrados e invertebrados e, em seguida, em diferentes classes (mamíferos, répteis, insetos etc). De modo similar, a classificação de textos corresponde à atribuição de um rótulo a textos inteiros onde esses rótulos pertencem a um conjunto finito de elementos, isto é, são enumeráveis. Um sistema de categorização de textos deve permitir a classificação de novos documentos considerando categorias pré-estabelecidas e documentos rotulados anteriormente. Um exemplo de classificador binário seria um identificador de vírus e spams em e-mails que, avaliando uma base de e-mails, consegue determinar se um novo e-mail é um spam ou não. De modo formal, a tarefa de classificação pode ser definida como, dada uma entrada d e um conjunto C finito, a determinação um c pertencente a C para d. Existem diferentes maneiras de classificar textos. Uma primeira abordagem seria a utilização de regras baseadas em palavras, combinação de palavras ou outras características que é um método de alta acurácia quando as regras são estabelecidas por especialistas, mas de difícil manutenção conforme é atualizado com o tempo. Outra possibilidade para classificação seria usando métodos de aprendizado de máquina supervisionados como Naive Bayes, a regressão logística, as máquinas de vetor de suporte (SVMs) e os vizinhos k-próximos (KNNs). Concentrando-se no aprendizado por Naive Bayes, utilizamos o conceito de bag-of-words que se trata de estruturar as palavras do texto em um conjunto não ordenado que contabiliza a ocorrência de cada palavra, assim, desconsidera a gramática e o contexto original de cada palavra. Podemos notar que tal modelo não se aplica apenas a palavra se estendendo, por exemplo, a identificação de imagens através do bag-of-visual-words. O Classificador Bayesiano “simples” ou “ingênuo” é um classificador probabilístico que utiliza o bag-of-words, logo, avalia cada atributo de maneira independente. Esse classificador utiliza então um conjunto de corpus rotulados para treinamento de seu modelo, determinando os valores que serão utilizados nos cálculos de predição da classe de novos corpus. Diferentes aspectos de implementação podem variar entre classificadores como o tratamento realizado em palavras não encontradas em um texto que pode, por exemplo, usar a estratégia de smoothing. Diferentes aplicações são possíveis para esta ferramenta como identificadores de idioma, identificadores das idades dos autores dos textos e analisadores de sentimentos em texto.
Felipe Rigo Yoshimura A aula 7 de Processamento de Linguagem natural abordou o tema de classificação de textos. Classificação por si só é a separação de elementos por uma ou várias características únicas, como pode-se ver na classificação de animais. Para a classificação de texto, dado um texto de entrada e utilizando um conjunto de textos já classificados, atribui-se uma classe de um conjunto limitado já pré-definido para esse texto. Pode-se realizar a tarefa de classificação de textos com base em regras definidas por um especialista, apesar desse método poder chegar em uma alto acurácia, ele tem alto custo de manutenção. Outra abordagem para fazer a categorização dos textos é a utilização de algoritmos de aprendizado de máquina, como naive bayes, regressão logística, SVM e KNN. Com base na extração de características dos documentos, esses algoritmos comparam o texto de entrada com um corpus já classificado e atribuem uma classe para o novo texto. Um método simples e prático de extração de características de um texto é o bag-of-words, no qual cria um vetor com a contagem das palavras presentes desconsiderando a gramática. Esse método pode ser acompanhado com a remoção de stop words e pode ser aplicado em outros contextos, como classificação de imagens. O classificador naive bayes utiliza a representação do texto em bag-of-words, ele é considerado ingênuo pois considera os atributos condicionalmente independentes. Sua equação final retorna o argumento da classe com a maior probabilidade calculada, essa probabilidade é o produto da probabilidade da classe entre os documentos e o produtório de cada palavra do texto avaliado ocorrer na classe analisada. Caso a palavra não aparece no corpus de treinamento ela pode ser desconsiderada, e uma correção dessa equação normalmente utilizada é o Laplace add-1 smoothing, o qual previne que uma palavra de frequência zero, zere o cálculo da probabilidade de todo o conjunto. Os conceitos mostrados nessa aula podem ser aplicados na atribuição de categorias, tópicos e gêneros de textos; detecção de SPAM em e-mails; identificação de autoria, idade do autor, idioma do texto; análise de sentimento. O histórico de citações mostra que o termo categorização de texto é mais utilizado do que classificação de texto. Para realizar a categorização pode-se utilizar outras informações como dados do autor. Ferramentas de pesquisas comumente utilizadas como o google podem não ser as melhores devido a vieses. Algumas alternativas são o semantic scholar e o baidu scholar.
Eracton Ferreira Ramalho Nesta aula 7 do curso de PLN iniciamos com uma explicação sobre a primeira parte do projeto. Foi criado um formulário do Google para padronizar a submissão da mesma. Sendo assim, apenas um integrante do grupo irá responder as perguntas referente à primeira entrega. O prazo foi adiado em uma semana para aumentar a qualidade e a tranquilidade dos alunos em relação à escolha do tema. O professor deixou bem claro que não precisamos ficar reféns do Google como única fonte de artigos. Exemplos de fontes são: DBLP (computer science bibliography), ACM Digital library, IEEE Computer society digital library, Arxiv( Computing research repositor), entre outros. Isso para o nosso caso especifico de computação. O tema da aula é classificação de textos. Continuamos utilizando a bibliografia do Daniel Jurafsky & James H. Martin, e estamos situados no capitulo 4, na terceira edição. Primeiramente vimos que a classificação ocorre em vários estudos, até nos animais que são classificados por classe, espécie, vertebrados e invertebrados. Da mesma forma isso ocorre com um texto. Isso é feito através da criação de rótulos para cada texto. Assim já se começa a criar categorias. Para fazer isso se acaba criando um sistema para caracterizar os textos. Assim permite classificar novos documentos considerando categorias pré-estabelecidas e documentos rotulados. Há métodos distintos de classificação. O primeiro é custoso, em relação a atualização e manutenção, e funciona utilizando regras baseadas em palavras ou em combinação de palavras (ou outras características). Outra forma é utilizando aprendizado de maquina, com o desafio de construir um classificador que seja capaz de mapear um documento d à sua classe correta c. Existe uma grande quantidade de classificadores, como por exemplo: Naive Bayes, regressão logística, support-vector machines (SVM) e K-Nearest Neighbors (KNN). Vamos falar da classificação de texto usando Naive Bayes. Nele podemos entender que um documento pode ser representado com uma bag-of-words. Podemos definir isso como um conjunto de palavras, não ordenado, que desconsidera a gramática, mas mantem a multiplicidade. Nisso você tem um mecanismo que acaba contando quantas vezes uma palavra qualquer apareceu no documento a ou b. Há também a classificação de palavras em imagens, chamada de bag-of-visual-words. O classificador de Naive Bayes é conhecido como Classificador Bayesiano simples ou ingênuo. Ele é um classificador probabilístico que é considerado ingênuo, pois considera atributos condicionalmente independentes, ou seja, acaba considerando muito mais do que seria o correto se fosse criterioso.
Denildo Veloso Braga Sétima aula: tema: classificação de textos. Classificação em classe, categorias: categorizar elementos que compartilham características semelhantes. O conjunto de elementos deve ser finito. Dado uma base de conhecimento, o sistema de categorização associa um rótulo para os documentos de entrada. Usado para análise de sentimentos, identificar idiomas, análise de comentários positivos e negativos (como resenhas de filmes), sistema de classificação de email para identificar spams e vírus, entre outras aplicações. De modo geral, dado uma entrada x e um conjunto finito de classes Y, a tarefa é determinar para cada x uma classe y em Y. Métodos de classificação: uso de regras baseadas em palavras e suas combinações e características, com operadores lógicos. Apesar desse método ter alta acurácia e ser fácil de construir, a manutenção das regras por ser muito trabalhosa. Usando aprendizado de máquina: dado o documento a ser classificado e uma base com documentos classificados, o sistema de classificação cria um função de categorização e aplica ao documento. Possíveis algoritmos: Naive Bayes, regressão logística, Support-vector machines (SVM), K-nearest neighborhoods (KNN). Essa técnica é um aprendizado supervisionado, pois existe uma base de treinamento, existem outras técnicas que não são supervisionadas. Bag-of- words: conjunto não ordenado de palavras, ignora a gramática, pontuação, stopwords e mantém a frequência de cada palavra, retornando então um dicionário com cada palavra e sua frequência. Seu problema é que desconsidera o contexto das palavras. Pode ser utilizados com n-gramas para considerar parte do contexto. Pode ser utilizado para comparar a frequência do vocabulário entre documentos diferentes. Pode ser utilizado com imagens, recortando a imagem em partes do tamanho dos elementos do vocabulário e construindo um histograma das partes da imagens. Classificador Naive Bayes: conhecido por ser simples/ingênuo, é ingênuo pois assume que os elementos são independentes, é um classificador probabilístico, utiliza a representação do bag-of-words. Esse classificador, geralmente, é dividido em duas partes: treinamento e teste. O treinamento é feito com um corpus com vários documentos e suas respectivas classificações. Quanto maior o corpus, mais preciso é o classificador. Quando um elemento não está no corpus, sua probabilidade de ser de cada categoria é zero, para contornar isso, podemos usar técnicas como smoothing, que soma ou multiplica o numerador e denominador do cálculo da probabilidade por algum número para evitar probabilidade zero. A categorização pode considerar outras informações além do texto, como a data de publicação, autores, entre outras características.
Amanda Cruz Francesconi O problema de classificação é natural do aprendizado humano, como por exemplo classificar animais em dois grupo: vertebrados ou invertebrados, nesse caso o critério de classificação é o esqueleto, um grupo contempla os animais que tem esqueleto e o outro não. A tarefa de classificação consiste em determinar se uma instância está associada a uma classe utilizando texto como parâmetro.Por exemplo, dado um conjunto de documentos, categorizá-los em quais documentos são relacionados a tecnologia, esportes ou entretenimento, ou seja, atribuir um determinado rótulo a cada um dado uma base de conhecimento e categorias pré estabelecidas. A definição: dado uma entrada x (um livro, vídeo, entrada numérica) e um conjunto finito de classes determinar para cada x uma classe y correspondente. É possível criar um modelo de classificação utilizando apenas regras como por exemplo um sistema binário de classificação de spam, ou um email É ou NÃO É spam. Pode-se usar palavras chaves como regras para essa classificação como por exemplo: promoção, caro cliente, etc. Apesar da simplicidade desse método, é necessária a atualização dessa lista de regras que pode ser caro. Um documento pode ser representado como um bag of words, dado um texto, são retirados pontuação, stopwords e assim separado palavra em palavra, como saída temos um vetor com todas as palavras utilizadas e quantas vezes cada uma aparece. Porém, perde-se o sentido semântico, desconsidera-se o contexto, em versões mais complexas são utilizados n-gramas. Outro método é o aprendizado de máquina: dado alguns pares de documento e a respectiva classe para treinamento,é criada uma função que relaciona a entrada às classes. Um dos algoritmos utilizados é o Naive Bayes, um algoritmo supervisionado. O estudado nessa aula, conhecido como classificador bayesiano simples ou ingênuo utiliza a representação como bag of words, seguindo a fórmula: c’= argmax P(c|d) ou seja, maximizar a probabilidade de uma classe c aparecer no documento d. As etapas para o funcionamento desse algoritmo são: Treinamento: determina todas as probabilidades a partir de um corpus onde probabilidade da classe c será o número de documentos cuja classe é igual a c, dividido pelo número de documentos totais presentes no treinamento. Teste: rodar o algoritmo com dados novos e verificar a acurácia dos resultados da classificação obtida. Esse modelo utilizando contagem apesar de simples tem diversas aplicações, identificador de emoções ou opiniões, classificador de spam, identificar idioma, entre outros.
Marcelo Schirbel Gomes Aula 07 - Classificação de Textos Classificação implica separar indivíduos baseados em uma distribuição por classes, com uma característica que os diferencia. O fato de categorizar o texto implica que, atribuimos um rótulo a um conjunto dos elementos. Mas sempre tendo em mente que temos um conjunto finito de rótulos. Para parametrizar isso precisamos de um sistema. Esse sistema de categorização agirá sobre uma base e permite a recepção de um conjunto de elementos e no final irá associar um rótulo para cada um dos elementos. É algo poderoso que podemos categorizar qualquer coisa, desde sentimentos até idiomas. Um exemplo do mundo real é a categorização de e-mails. Podemos categorizar os emails e os spams. E isso implica um categorizador binário. Ou um e-mail é spam, ou não é. Podemos definir essa tarefa como: *Dada uma entrada X e um conjunto finito de classes Y. Determinamos X para uma classe Y.* Usando Regras Podemos usar uma regra baseada em combinações de palavras para obtermos a classificação. Um problema disso é a manutenção, pois depende de um especialista para realizar a modificação. No exemplo do e-mail, isso seria um problema com imagens, pois elas mascarariam o problema do spam. Ou seja, nosso desafio é fazer um mapeamento de X para Y. Podemos usar alguns classificadores: 1\. Naive Bayes 2\. Regressão Logística 3\. SVM 4\. KNN Naive Bayes É uma técnica de aprendizado supervisionado. Geralmente os classificadores usam números para compararem os textos. Uma forma de transformar um texto em um número é a *bag-of-words*. Nessa técnica, primeiramente seramos as palavras dos sinais de pontuação e stopwords. A saída é um vetor ao qual está associado a frequência de cada palavra. Esse vetor é o *bag-of-words*. Isso desconsidera o contexto. O classificador ingênuo de Bayes é probabilístico e usa um bag-of-words. Ele considera atributos condicionalmente independentes. Ou seja, podem ou não estar relacionados. A primeira etapa do algoritmo é fazer um treinamento. Para isso precisamos de um conjunto de dados já rotulados. Chamamos de *corpus rotulados*. A segunda é fazer os testes. Um dos problemas é que, caso uma frase não esteja no treinamento, sua probabilidade será 0. Isso implica que todo o produto será 0. Para resolver isso, usamos uma técnica chamada de Smoothing, que adiciona 1 no numerador da probabilidade e o tamanho do vocabulário no denominador.
Diego Pereira de Lima Na aula do dia 2707 do professor [Jesús P. Mena- Chalco](http://professor.ufabc.edu.br/~jesus.mena/), foi ministrado, modos de realização de classificação de texto. Dado um conjunto de texto, há vários métodos para realizar a classificação, sendo eles que dependem do seu contexto ou não. Isso é muito utilizado em identificação de e-mails classificação de notícias. Dado uma entrada x, estas técnicas identificam um conjunto de saída Y = {y1 , y2 , , yn } o qual determine que y pertence x. Dentre as regras, os mais conhecidos classificadores são: Naive Bayes; Regressão logística; Support-vector machines (SVM); K-Nearest Neighbors (KNN). O naive Bayes realiza a comparação considerando a formula probabilística de bayes extraindo a mais possível classe com s probabilidades dependentes analisadas; a regressão logística dependendo da curva sigmoide realiza a sua distinção ou classificação; e os métodos SVM E KNN deve-se ser utilizados quando há características intrínsecas do texto, que pode-se ser plotadas em um gráfico. O naive bayes também pode ser usado em conjunto com um Bag of words (BOW) para a classificação, porém este considera apenas um conjunto não-ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade). Já o naive bayes padrão utiliza apendas um conjunto de dados de treino rotulado realizando a produtória da probabilidade de ocorrência de seus elementos que o compõem. A atividade proposta no segundo estágio da aula, na primeira questão visava classificar uma frase tendo como referencia 5 frases, dentre elas 3 negativas e 2 positivas. Para isso era necessário contar a quantidade de palavras presentes em cada uma e verificar sua ocorrência em cada classe para utilizar a formula e identificar o conjunto mais provável. Na segunda questão já com as probabilidades em mão era necessário identificar a classe mais provável. Para fechamento, o número de aplicações em classificação de texto é enorme, sendo eles: identificação de notícias, detecção de spam de email, identificação de autoria de escrita, identificação da idade do autor, identificação de idioma, analise de sentimento de textos. Sendo tais técnicas referidas ultimamente com a ajuda do “Google” como o termo text categoritzation ou text classification. E a maior empresa que possui patentes nesta área é a Microsoft. Além disso por fim também foi re-explicado como será a entrega da primeira fase do projeto de implementação do algoritmo de um artigo atual.
Yago Sorrilha Classificação de textos ou Text classification corresponde à tarefa de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos). Um sistema de categorização de textos permite classificar novos documentos, considerando categorias pré-estabelecidas e documentos rotulados. Um exemplo de aplicação é um sistema de classificação de e-mails, que faz a classificação binária, por exemplo se é ou não um SPAM. Formalmente a tarefa de classificação pode ser definida como sendo: dada uma entrada x, e um conjunto finito de classes Y = {y1, y2..}, determinar, para x, uma classe y que pertence a Y. Em classificação de texto, dado uma entrada d(documento) e um conjunto finito de classes C, determinar para d, uma classe c que pertence a C. Métodos de classificação Usando Regras: O método consiste em uso de regras baseadas em palavras ou combinações de palavras (ou outras características), por exemplo, Blacklist- address OR ("dollars" AND "have been selected") Nesses casos a acurácia pode ser alta se as regras são definidas por especialistas. Porém, a manutenção e atualização das regras pode ser muito cara. Usando Aprendizado de Máquina: nesse caso o desafio é construir um classificador Existe uma grande quantidade de classificadores como Naive Bayes, Regressão Logística, SVM, KNN Classificação de texto usando Naive Bayes: um documento pode ser representado como uma bag-of-words, que é um conjunto não ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade), gerando por exemplo um vetor que mostra a frequência das palavras. Há também o bag-of-visual-words que diz respeito ao agrupamento de imagens e que conta quantas vezes aparecem determinadas imagens dentro de outras imagens, fazendo um histograma das frequências das imagens. Classificador Naive Bayes, Classificador Bayesiano "simples" ou "ingênuo" é um classificador probabilístico que usa a representação de textos como bag-of- words. É considerado ingênuo porque considera os atributos condicionalmente independentes (i.e. o valor de um atributo não está relacionado ao valor de outro atributo), a classe é atribuída pela maior probabilidade dado um documento. Treinamento: considerando um conjunto de dados de treinamento (corpus rotulado) composto de N documentos a probabilidade de uma classe é a razão de número de documentos classificados como c e o número de documentos totais. Aplicações: atribuição de categorias, tópicos ou gêneros; detecção de SPAM; análise de sentimentos; identificação de idiomas, etc.
Luiz Gabriel Correia Podemos classificar animais por semelhanças de entre os grupos. Vamos fazer o mesmo com texto. Dado um conjunto de documentos de diferentes fontes tentar atribuir um determinado rótulo, categorizando-os. O conjunto dessas classes é finito, contável. Exemplo, classificar se e-mail é ou não spam. Ou classificar se avaliação de um filme é positiva ou negativa. Formalmente definimos classificação como dado um entrada x, um conjunto finito de classes Y, determinar qual classe y de Y x pertence. Usando aprendizado de máquina para classificar spam. Usamos um conjunto de treinamento que tenha e-mail já classificados, como spam ou ham. Pode-se usar Naïve Bayes, Regressão Logística, SVM, kNN. Isto é aprendizado supervisionado. Para uso nestes algoritmos, podemos representar o documento como números usando diversas técnicas. Uma destas técnicas é bag-of-words. A ideia é "jogar" todas as palavras em uma sacola, e abstrair apenas para um vetor de saída associando cada palavra a sua frequência. Essa técnica desconsidera o contexto em que a palavra repete. Podemos também considerar mais de um texto em uma matriz com atributos binários indicando se aquela palavra está ou não represente naquele documento. A mesma estratégia tem seu análogo para imagens, chamado bag-of- visual-words. Com o classificador Naïve Bayes, ou classificador Bayesiano Ingênuo, que considera que as probabilidades são independentes. Definimos o classificador como a função que nos dá o argumento d a classe que maximiza a probabilidade de um dado documento pertencer a classe c. No fim temos uma produtória da qual é fácil estimar as probabilidade a partir de dados de treinamento. Geralmente quanto maior o corpus melhor a classificação. Para dados que não estão presentes na base de treinamento, teremos problemas, assim é necessário usar um estratégia de smoothing para não ter probabilidades zeradas. Como obtemos números muito pequenos com o produto, utilizamos o log para obter valores maiores mantendo as proporções. Aplicações: análise de sentimentos, identificar autor, idioma etc. O algoritmo não estima bem as probabilidades, mas costuma acertar bastante a classe de frases novas. Tudo com o mesmo ferramental, mudando apenas o conjunto de amostras usadas como treinamento. Com um catálogo de disciplinas, podemos identificar qual disciplinas estão relacionadas a um determinado texto de busca. Não é necessário classificar apenas texto, há patentes para considerar dados do emissor juntamente do texto.
Marcelo de Souza Pena Iniciamos a aula falando um pouco sobre o projeto e sobre o poder do Google sobre a produção científica atualmente por meio do Google Acadêmico, além de falarmos sobre outras fontes onde buscar artigos, especialmente sobre computação. O tema da aula 7 foi classificação ou categorização de textos, presente no capítulo 4 do livro. Exemplo de classificação de animais entre vertebrados e invertebrados, além de outras subcategorias. Categorização de textos consiste em classificar textos inteiros atribuindo um rótulo utilizando categorias pré-definidas e documentos já rotulados para classificar novos documentos. Por exemplo, os e-mails são classificados em spam ou não spam. Formalmente classificação é atribuir uma classe y do conjunto de classes Y a uma entrada x. Métodos de classificação podem ser implementados usando regras, como no caso de blacklists, mas tendo o custo de manutenção muito alto, ou por meio de aprendizado de máquina, onde um classificador deve mapear um novo documento à sua classe. Dentre os algoritmos de classificação usados estão Naive Bayes, Regressão Logística, SVM e KNN, dos quais veremos Naive Bayes. Um documento pode ser representado como uma bag of words, um conjunto não- ordenado de palavras, podendo ou não retirar stopwords, desconsidera contexto. Também pode ser usado em imagens. Alguns termos estão mais relacionados a certos tópicos da computação, como machine learning e PLN. O método Naive Bayes é chamado de ingênuo porque considera cada atributo como independente para efeito de simplificação. Na atividade tínhamos um corpus com 5 frases, três classificadas como negativas e duas como positivas, foi meio difícil acertar a conta de primeira, mas entendi a ideia e cheguei perto da resolução certa. Probabilidade de cada classe, palavras no vocabulário e tamanho do vocabulário também foram cobrados, então classificarmos uma frase com base nesse corpus. Vimos ainda rapidamente um exemplo prático, então partimos para as considerações finais. A classificação pode ter diversas aplicações, algumas já mencionadas, mas outras como identificar autor do texto, opiniões positivas e negativas, idioma, etc. Alguns exemplos deles são a classificação de opiniões positivas ou negativas utilizando palavras comumente relacionadas a algo positivo ou a algo negativo, como “ruim” = negativo, identificar idiomas tendo um corpus grande para aprender, classificar notícias e disciplinas por palavras chave. O termo text categorization é até mais usado que text classification.
Lucas Zanoni de Oliveira Na aula em questão, foi apresentado o recurso de classificação de texto que corresponde ao ato de denominar todo um texto por meio da atribuição de rótulos finitos. Desta forma, para que esse sistema funcione adequadamente, o mesmo considera uma série de categorias preestabelecidas além dos documentos com rótulos. Um exemplo de sistema classificador de documentos, é um filtro de spam que determina se um e-mail é bom ou é um spam/vírus, por meio de uma classificação binária. De forma formal, dizemos que a classificação trata-se da determinação de um “x” à qual pertence a uma classe y que pertente a Y (sendo Y o conjunto de classes). Para que a execução dessa atividade seja otimizada são utilizados alguns métodos de classificação, que por sua vez se baseiam no conceito de aprendizado de máquinas. Um destes modelos é o Naive Bayes, que define que um documento pode ser representado como uma sacola de palavras (bag-of-words) que se trata de um conjunto não ordenado de palavras, onde a gramática é desconsiderada, porém a multiplicidade é mantida (há também o bag-of-visual- words que trabalha com imagens). Esse classificador probabilístico é também conhecido como ingênuo devido ao fato de considerar os atributos condicionalmente independentes, e para que calculemos a probabilidade de cada palavra levamos em consideração as funções P(c)=Nc/Ndoc, onde Nc é o número de documentos cuja classe é “c” e Ndoc é ó número de documentos total, e P(wi|c)=count(wi,c) \+ 1 / (somatória)count(w,c) \+ |V|, onde o count(wi|c) se dá à quantidade de uma certa palavra na classe do documento, count(w|c) a quantidade de palavras existentes na classe e |V| a quantidade de palavras existentes no documento total. Para que encontremos a probabilidade de uma frase pertencer a uma classe, precisamos multiplicar a probabilidade de cada palavra na respectiva classe pelo percentual da quantidade total de palavras pertencentes à classe em relação a todo o documento. Como considerações finais, temos como possíveis aplicações a atribuição de categorias, tópicos ou gêneros, a detecção de spam, a identificação do autor de uma escrita e a idade dele, a identificação do idioma, além da análise do sentimento do documento/texto.
Humberto Vagner Tondinelli Correa Na aula 7 vimos sobre classificação de textos. Categorização de textos corresponde à tarefa de classificar textos inteiros atribuindo um rótulo. Um sistema de categorização de textos permite classificar novos documentos e considera categorias pré estabelecidas e documentos rotulados. Um bom exemplo é um sistema de classificação de e-mails que analisa e envia para a lixeira os e-mails com potencial chance de ser spam ou vírus. Formalmente, a tarefa de classificação pode ser definida como uma dada entrada X e um conjunto de classes Y = {y1,y2,...,yn} determinar, para x, uma classe y pertencente a Y. No caso de classificação de textos a entrada x seria um documento e o conjunto de classes seria determinado por um sistema de categorização. Métodos de classificação: \- Usando regras: uso de regras baseadas em palavras ou combinação de palavras (ou outras características). A acurácia pode ser alta se as regras são definidas por especialistas. Entretanto, a manutenção/atualização das regras pode ser muito cara. \- Usando aprendizado de máquina: existe uma quantidade grande de classificadores (Naive Bayes, regressão logística, support-vector machines, K-nearest neighbors). Classificação de texto usando Naive Bayes: conhecida também como Classificador Bayesiano simples ou ingênuo. É um classificador probabilístico, usa a representação de textos como bag-of-words (um documento pode ser representado como uma bag-of-words, um conjunto não ordenado de palavras (desconsidera a gramática, mas mantém a multiplicidade)). É considerado ingênuo porque considera os atributos condicionalmente independentes (i.e., o valor de um atributo não está relacionado ao valor de um outro atributo). Para o treinamento de Naive Bayes é necessário relacionar o número de documentos de, por exemplo, D em uma classe c pertencente a C (conjunto de classes) com o número total de documentos em D e o número de vezes que uma palavra w aparece no conjunto de documentos. As aplicações são diversas: Atribuição de categorias, tópicos ou gêneros, detecção de SPAM, identificação de autoria e escrita, identificação de idade do autor do texto, identificação de idioma, análise de sentimentos em texto. Ao final foi falado sobre o projeto e sobre a entrega um do mesmo, sobre referências bibliográficas, dando ênfase em algumas plataformas que podem ser úteis para busca de informações.
Caique de Camargo Aula do dia 27 de Junho, com o tema Classificação de Textos. Em uma primeira abordagem foi explicitado o que seria uma classificação, dando como classificação de animais. Resumindo é uma forma de separar determinados grupos por características que tenham em comum. Agora, como definir a classificação de um texto? Dando-lhes um rótulo de acordo com determinadas características. Um sistema de classificação permite realizar essa categorização de documentos de acordo com características pré estabelecidas a partir de textos já rotulados. Formalmente, uma classificação de textos pode ser definida como dado uma entrada x e um conjunto finito de classes Y = {y1, y2, ..., yn}. Determinar para x, uma classe y que pertence a Y. Em documentos teremos um d como entrada (documento) e um C como o conjunto de classes. Métodos de classificação: Podem ser usadas regras com combinação de palavras ou mesmo outras características, tendo acurácia se definida por especialistas e manutenção/atualização dessa pode ser muito cara. O grande desafio aqui é criar um classificador capaz de mapear um documento d a sua classe c. Das inúmeras técnicas de classificação podemos elencar 4: Naive Bayes, regressão Logística, Support Vector Machines (SVM) e K-Nearest Neighbors (KNN). Vimos nessa aula uma forma simplificada do Naive Bayes, também chamado de aprendizado supervisionado. Naive Bayes utiliza do conceito de bag of words, considerando apenas a quantidade de palavras e não o contexto em si, é um classificador probabilístico e "ingênuo" por considerar os atributos condicionalmente independentes. É realizado um treinamento, com documentos já conhecidos e mapeados que servem de referência para as demais classificações, como um comparador. Em novos documentos é avaliada a semelhança probabilística com cada classe para determinar aquela que mais se assemelha. No treinamento Pc = Nc/Ndoc de um corpus, e a probabilidade de um documento em uma determinada classe é definido por Cnb = argmax Pc P(wi|c) para cada documento wi. Existem deveras aplicações para a classificação de textos, como a própria categorização, identificação de autor, de idade do autor, de idioma e até análise de sentimento. Na bibliografia podemos encontrar tanto classificação de texto (text classification) como categorização de texto (text categorization) sendo uma sinônimo da outra.
Ramon Neres Teixeira Jardim A aula tratou do tema de classificação de textos. Inicialmente foi dado um exemplo do que é classificação utilizando a classificação dos animais, que são classificados em vertebrados e invertebrados. Da mesma forma, a classificação de textos é a tarefa de atribuir um rótulo (a partir de um conjunto finito de rótulos) à um texto. Um sistema categorizador de textos classifica qualquer documento de entrada com uma categoria pré-estabelecida, por exemplo, um sistema de classificação de e-mails faz uma classificação binária e classifica os e-mails recebidos como spam ou não spam. Existem diversos métodos de classificação de texto, duas delas são: o uso de regras e o uso de aprendizado de máquina. Um classificador utilizando regras no caso da classificação de spams, poderia determinar que os e-mails que chegam de remetentes que estejam numa lista de não confiáveis ou e-mails que contém textos considerados suspeitos sejam spam, e que qualquer outro não seja. Este é um método que pode ser facilmente implementado, porém precisa ter regras muito bem definidas. Para utilizar aprendizado de máquina, é necessário construir um classificador que mapeie um documento a uma classe e uma forma de fazê-lo é com o algoritmo Naive Bayes. O algoritmo Naive Bayes, também chamado de classificador Bayesiano simples ou ingênuo, é um classificador probabilístico, considerado ingênuo pois leva em conta atributos não relacionados para fazer a classificação, que entende o texto como uma bag-of-words, que é um conjunto não ordenado de palavras e que, apesar de não levar em consideração a ordem das palavras, mantém a informação da quantidade de vezes que cada palavra aparece. A classificação neste algoritmo é feita selecionando a classe que tem a maior probabilidade de conter o texto, utilizando um dado corpus para serem a base para o cálculo das probabilidades. Algumas aplicações da classificação de texto são: detecção de SPAM, como exemplificado anteriormente, identificação de autoria (tendo como classes diversos autores e atribuindo um autor para cada texto, se baseando em um corpus de títulos de todos os autores das classes), identificação da idade do autor e identificação do idioma de um texto, utilizando abordagens parecidas.
Gustavo Murayama A classificação de texto (ou categorização de texto) corresponde à tarefa de classificar textos inteiros atribuindo um rótulo dentro de um conjunto finito de rótulos. Um sistema de categorização de texto permite classificar novos documentos e considera categorias pré-estabelecidas e documentos rotulados. Podemos definir, de maneira formal, a tarefa de classificação como: determinar, dado uma entrada x, dado um conjunto de classes Y, x pertence uma classe y que pertence a Y. Na classificação de texto, o mesmo tipo de classificação se aplica, sendo x um documento. Os métodos para classificar são diversos e podem se basear no uso de regras em palavras ou combinações de palavras. A precisão pode ser alta caso as regras sejam definidas por algum tipo de especialista do assunto, mas a manutenção das mesmas pode ser muito cara. Se utilizando de técnicas de Aprendizado de Máquina, é possível construir um classificador que seja capaz de mapear o documento d à sua classe correta c. Existem vários algoritmos para classificar, como Naive Bayes, Regressão Logística, Support-Vector Machines (SVM), K-Nearest Neighbors (KNN), entre outros. Utilizando o Naive Bayes, podemos representar um documento como um bag-of-words (uma bolsa de palavras), que corresponde a um conjunto não ordenado de palavras. Importante ressaltar que desconsidera a gramática, mas mantém a multiplicidade das palavras. No final, temos um número associado a quantidade de vezes que a palavra se repete no texto. O classificador Naive Bayes (Classificador Bayesiano simples ou ingênuo) é probabilístico e utiliza o bag-of-words. É considerado ingênuo pois considera os atributos condicionalmente independentes (ou seja, o valor do atributo não está relacionado com o valor de qualquer outro atributo). A fórmula é um argmax da probabilidade condicional de cada documento pertencer a classe c. O treinamento do algoritmo considera um conjunto de dados de treinamento (corpus rotulado) composto de N documentos. A probabilidade P de uma palavra pertencer a classe c é o número de vezes que uma palavra aparece dentro de uma classe c sobre a somatória do número de vezes que cada palavra do corpus aparece dentro da classe c.
Eduardo Haberler Cardoso A sétima aula de PLN, ministrada dia 27 de Junho, teve como tema central os algoritmos de classificação de textos. Resumidamente, podemos definir a classificação de textos como técnicas que possuem o objetivo de categorizar, ou seja fazer a atribuição de rótulos, documentos em grupos para alguma finalidade. Um sistema de categorização de documentos consegue fazer a rotulagem de um novo documento com base nas categorias pré estabelecidas anteriormente. Como exemplo, podemos citar a classificação de e-mail, que pode categorizar um novo e-mail recebido como spam e encaminhá-lo para a caixa de spam ou categorizá-lo como e-mail normal e enviá-lo para a caixa de entrada. Formalmente, a classificação é dada da seguinte forma: Dado uma entrada x e um conjunto finito de categorias pré estabelecidas Y = (y1, y2, y3, ...), a tarefa de classificação se preocupa em atribuir x a uma das categorias de Y. No caso da classificação de textos, dado um texto x e um conjunto finito de classes pré estabelecidas C = (c1, c2, c3,...), a classificação implica na adequação de x numa das classes de C. A classificação pode ser feita utilizando algumas propostas, dentre elas: a utilização de regras, ou seja, na aplicação de regras baseadas na combinação de palavras. Este método possui uma acurácia bastante promissora, porém possui um custo de manutenção igualmente alto. Outra possibilidade de proposta seria a utilização de um classificador baseado em aprendizado de máquina. Dentre as possibilidades desta última proposta, estudamos com maior afinco o classificador de Naive Bayes. Este algoritmo toma como insumo a construção de uma "bag of words", que seria uma lista de palavras que não leva em consideração a relação entre as palavras. Por isso o classificador recebe o nome de classificador ingênuo, pois não leva em consideração o "contexto" da aplicação dos termos. De forma bastante resumida, este algoritmo leva em consideração algumas relações probabilísticas da palavra com o texto, trata-se de um algoritmo supervisionado onde ele classifica a palavra ou documento como pertencente a uma categoria ou outra, com base em categorias pré definidas.
Lucas Vitalino Severo Pais Nesta última aula foi abordado classificações de texto. Classificar um texto significa analisá-lo e atribuir um rótulo a ele, com o intuito de tomar alguma ação com base nessa classificação. Por exemplo, a classificação de textos pode nos ajudar a separar emails relevantes de um email de propaganda (um spam) e filtrá-los antes de chegar em nossa caixa de emails. Outro exemplo onde essa técnica pode ser aplicada é em uma livraria ou biblioteca digital, ao invés de ter uma pessoa para separar os textos por categorias (ficção, não ficção, auto ajuda e etc), podemos implantar um algoritmo desse tipo para fazer esse tipo de categorização automaticamente. Formalmente, a tarefa de classificação pode ser definida como: dada uma entrada x, e um conjunto finito de classes Y={y1,y2,y3,...,yn}, determinar que para x, uma classe y que pertence a Y. Um dos métodos de classificação é o uso de regras, que podem ser baseadas em palavras ou combinação de palavras (ou de outras características). A acurária pode ser alta dependendo do banco de texto a ser classificados, essas regras podem ser definidas por um especialista no assunto do texto porém a manutenção e atualização dessas regras pode ser muito cara. Ou então podemos usar técnicas de aprendizado de máquina para executar essa classificação para nós. Existe uma quantidade grande de classificadores como Naive Bayes, Regressão logística, suport vector machines (SVM), K-nearest neighbors (KNN). Foi visto na ultima aula o classificador KNN para classificação. Um documento pode ser representado por uma bag-of-words, que é um conjunto não-ordenado de palavras desconsiderando a gramáticas mas mantendo a multiplicidade das palavras, e com esse conjunto pode ser aplicado a um KNN que compara elementos de conjuntos e os classifica de acordo com a proximidade da sua entrada para um certo conjunto. Outro classificador que pode ser usado é o classificador Bayesiano que é um classificador probabilístico, também usa o conceito de bag-of-words para a representação de documentos e já foi visto anteriormente em sala.
Gabriel Jose da Silva A sétima aula de processamento de linguagem natural foi sobre categorização de texto. Pode-se definir categorização como dado uma entrada x e um conjunto finito Y = {y1, y2, ..., yn} de modo que para cada entrada x existe uma classe y ? Y. Um exemplo seria: seja x um conjunto de frutas e seja Y= {vermelhas, amarelas, verdes} ao separar cada x fruta em sua categoria de cor temos um problema de categorização, no exemplo, por cor das frutas. Para solucionar este problema existem dois métodos: uso de regras, por aprendizado de máquina. No método por uso de regras é muito útil quando se tem um bom conhecimento do corpus analisado, podendo criara as classes de antemão. Nesse método são definidas quais são as regras que definem cada classe, e, por conseguinte, quais são as características que as entradas devem ter para serem categorizadas naquela classe. Como as classes são definidas de antemão a acurácia da classificação é melhor, porem ela demanda que as regras sejam bem definidas além de apresentar manutenibilidade bastante cara. No método por aprendizado de máquina existe um classificador capaz de separa os dados em classes distintas. Para tal existem diversos classificadores: Naive Bayes, Regressão logística, Support-vector machines (SVM) e K-Nearest Neighbors (KNN). Em sala de aula vimos implementações utilizam os algoritmo ingênuo de Bayes. Vimos também o algoritmo bag-of-words em que se obtém o total de palavras presente no corpus além de obter qual é a probabilidade que uma determinada palavra aparecer no corpus. Embora nesse algoritmo mantenhamos a multiplicidade das palavras perdemos muito os significados semânticos, por exemplo, palavras compostas terão seu sentido semântico perdido nesse algoritmo. E similarmente, vimos o Bag-of-visual-words em que dado um conjunto de imagens é comparado com uma imagem alvo. E então cada imagem é dividida em pedaços iguais e assim é analisada a semelhança entre as partes da imagem alvo. E a imagem que apresentar maior quantidade de partes semelhantes é eleita como pertencente à classe da imagem alvo.
Victor Conceicao Denis Na última aula de PLN vimos alguns modelos para geração de textos e corretores ortográficos utilizando a suposição de Markov e o modelo de N-Gramas. Nessa aula, estudamos diferentes formas de categorizar um texto. Categorizar um texto é o processo de separar diferentes textos em grupos categorizados e finitos. Um exemplo de categorização de texto é o Jornal, que divide sua notícias em diferentes temas, formando assim uma categorização. A categorização é utilizada de diversas formas, seja para diferenciar os textos por tema, seja para fazer uma separação binária como o da caixa de e-mail que separa entre Spam e não Spam (e-mail “lixo” não solicitado pelo usuário). Formalmente, para cada entrada x e um conjunto finitos de classes Y = {y1, y2, ..., yn), será determinado uma classe yn para cada x, sendo que yn pertence a Y. Existem alguns métodos de classificação, sendo um deles a utilização de regras. Defini-se um conjunto de palavras e combinações das mesmas para que seja classificado. Apesar desse processo ter uma alta-taxa de acerto, ela depende de alguns fatores como: atualização constante das regras e a dependência de quem cria essas regras. Diante desta dificuldade, surgiu a necessidade de se utilizar um sistema de categorização automatizado. Para a solução dessa dificuldade foi utilizado o aprendizado de máquina (machine learning). Existe atualmente uma grande quantidade destes classificadores que utilizam aprendizado de máquina, como Naive Bayes, Regressão Logística, KNN e SVM. Vamos estudar o classificador Naive Bayes. Para a compreensão desse modelo, primeiro é necessária o entendimento do conceito de Bag-of-words, que nada mais é do que um conjunto não ordenado das palavras mantendo, porém, a quantidade de vezes em que aparece no texto. O classificador “Ingênuo” de Bayes é um classificador probabilístico. Ele é considerado ingênuo por não haver dependência entre seus atributos, sendo que para isso utiliza a representação por bag-of-words, podendo ser treinado por diferentes corpus para criar as segmentações a partir desse corpus.
Giselle Silva de Santana Na aula do dia 27/06, o tema abordado foi “Classificação de textos”, assunto presente no quarto capítulo do livro texto utilizado na disciplina. A categorização de textos é a tarefa de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos) e um sistema de categorização deve permitir a classificação de novos documentos e considerar categorias pré estabelecidas e documentos rotulados. Formalmente, a classificação pode ser definida como: dada uma entrada d e um conjunto finito de classes C = {c1,c2, ,cn}, deve-se determinar, para d, uma classe c que pertence a C. Para a classificação, pode-se utilizar regras baseadas em palavras ou combinação de palavras ou características, onde tais regras são definidas por especialistas, podem ter alta acurácia e a manutenção ou atualização delas pode ser muito custosa. Construir um classificador que seja capaz de mapear o novo documento d à sua classe correta ci é um desafio e o uso de aprendizado de máquina é comum para a resolução do problema, onde os classificadores mais comuns são: Naive Bayes, Regressão logística, Support-vector machines (SVM) e K-Nearest Neighbors (KNN). O classificador Naive Bayes é probabilístico, usa a representação de textos bag-of-words, que é o conjunto não-ordenado de palavras (desconsidera gramática, mas mantém a multiplicidade), e é considerado ingênuo (naive) porque considera os atributos condicionalmente independentes (o valor de um atributo não está relacionado ao valor de um outro atributo). Para o treinamento do classificador utiliza-se um conjunto de dados de treinamento (corpus rotulado) composto de Ndoc, ex.: (doc1, c6, ...(docn, c2)) e tem-se que Pc=Nc/Ndoc, que corresponde ao (número de documentos cuja classe é igual a c)/(número de documentos totais no treinamento) e P(wi|c)=[count(wi,c)+1]/[(somatória count(w,c))+|V|]. Após a exposição do conceito, foi aplicada uma atividade para se classificar se o texto seria da classe positiva ou negativa, para a melhor fixação dos conceitos.
Jairo da Silva Freitas Junior Na aula 7 iniciamos com alguns recados sobre o projeto final: A primeira entrega deve ser feita por formulário google criado pelo professor, onde o aluno responsável pelo grupo deve informar os metadados do artigo, incluindo número de citações e anexar o PDF para apreciação pelo professor. O professor deu dicas de escolhas de artigos, entre elas que dado um artigo que o grupo gostou, os alunos podem buscar artigos publicados referenciando o mesmo para ter aplicações mais recentes usando aquela técnica. Também foi discutido sobre sites interessantes para busca de artigos científicos em ciência da computação, entre os quais o Google Scholar (que deve ser usado com atenção porque seu algoritmo de rankeamento desprioriza textos pouco citados), DBLP, ACM Digital Library, IEEE Computer Society Digital Library, Arxiv, Periódicos da CAPES, Scielo, Semantic Scholar e CiteSeerX. Na sequência, baseando-se no capítulo 4 do livro base (de Dan Jurafsky), introduziu-se o conceito e a utilidade da classificação em áreas como biologia e atividades comuns de classificação em ciência da computação. Neste contexto, a classificação de textos trata da tarefa de rotular documentos usando um conjunto finito de rótulos. Antes de classificar um texto, é preciso convertê-lo em um vetor numérico. O método estudado em sala utiliza bag-of-words (ou saco de palavras), que representa cada documento como um conjunto não-ordenado de palavras. O bag-of-words desconsidera o contexto (gramática) da frase, mas mantém a multiplicidade dos termos (os valores numéricos no vetor resultado correspondem a frequência do termo no documento). Para a tarefa de classificação estudamos o classificador probabilístico de Naive Bayes, que é chamado de ingênuo por considerar os atributos (palavras do vetor de bag-of- words) como condicionalmente independentes, o que é forte e equivocado. Porém, esta técnica apresenta resultados muito satisfatórios. A atividade em sala foi a aplicação das fórmulas deste classificador e o professor disponibilizou uma implementação Python do Naive Bayes para estudo (naiveBayes1.py).
Gabriel Peterlini Pinto Nesta aula, o tópico abordado foi a classificação de textos. Uma classificação pode ser definida como uma distribuição por classes, categorias ou grupos com características semelhantes, uma analogia pode ser feita com a classificação de animais. No contexto de processamento de linguagem natural a classificação corresponde à tarefa de classificar textos inteiros atribuindo um rótulo, por exemplo, esportes ou tecnologia. Formalmente, a tarefa de classificação de textos consiste em determinar uma classe Y pertencente ao conjunto finito de classes Y = {y1, y2, ..., yn} para uma entrada 'x'. Um dos métodos para classificar textos é com o uso de regras baseadas em palavras ou combinação de palavras, é um método com uma acurácia possivelmente alta porém a manutenção e atualização de regras pode ser muito cara. Outra forma é utilizar aprendizado de máquina para construir um classificador que seja capaz de mapear um documento x à sua classe correta y. Existem vários tipos de classificadores como Naive Bayes, Regressão logística, Support-vector machines e K-Nearest Neighbors. O método visto em aula foi o classificador de Naive-Bayes que é probabilístico onde cada documento pode ser representado como um conjunto não-ordenado de palavras, ou uma bag-of-words, ele é considerado ingênuo porque considera os atributos condicionalmente independentes (i.e., o valor de um atributo não está relacionado ao valor de um outro atributo) e a melhor classe c para um documento pode ser dada pela fórmula: C = argmax da probabilidade P(c|d). Após vermos em aula como é realizado o treinamento do classificador foi realizada uma atividade para encontrar as probabilidades de cada classes e o vocabulário de um corpus. Finalizamos considerando possíveis aplicações de classficadores como este para detecção de SPAM em emails, identificação da autoria de escrita de um texto ou a idade de seu autor, identificação de idioma ou até mesmo para realizar uma análise de sentimentos em um texto.
Thiago Bruini Cardoso Silva A sétima aula teve como foco o estudo da aplicação de técnicas de PLN para classificação de texto. Isso foi exemplificado a partir do caso de categorização de textos em temas, como tecnologia e esportes. A tarefa pode ser definida como: dada uma entrada X e classes Yi, determinar a classe Yi que contém X. A primeira forma de classificação definida foi baseada na criação de listas de expressões que, caso sejam encontradas no texto de entrada, definem a classe. Para o caso de classificação de e-mail em spam ou ham, por exemplo, a expressão "Você foi selecionado..." pode ser suficiente para classificar uma entrada como spam. Essa técnica pode ter boa acurácia, no entanto, a lista precisa ser criada por um especialista e sua manutenção é cara. Após a primeira técnica simples e cara, passamos a analisar a eficiência de técnicas de Aprendizado de Máquina para classificação. Nesta aula, tivemos foco no estudo do algoritmo Naive Bayes, que recebe o nome "ingênuo" por ter a premissa forte de que as probabilidades das variáveis são condicionalmente independentes. Para utilização de algoritmos de AM, é necessário tratar os dados textuais de maneira que tenhamos medidas numéricas a partir deles. Uma forma simples de fazer isso é utilizar a técnicas Bag of words, que trata-se simplesmente da contagem de N-gramas dos corpus em questão. Se definirmos o N em 1, teremos um dataset em que as variáveis serão todas as palavras dos corpus e sua frequência. Para treinar o classificador e definir sua eficiência, é necessário separar o conjunto de dados em dois: um para treino e outro para teste do modelo. A partir do conjunto de treinamento, são definidas as probabilidades de se encontrar termos nas classes definidas. A partir dessas probabilidades e dos termos presentes na entrada X, calcula-se qual classe é mais provável que X pertença.
Matheus de Araujo Vargas Na aula do dia 27 de junho do professor Jesus foram apresentados os conceitos de categorização (classificação) de textos, bag-of-words, métodos de classificação e o classificador Naive Bayes. Categorização de textos corresponde à tarefa de classificar textos inteiros atribuindo ao texto um rótulo (de um conjunto finito de rótulos). Um sistema de categorização de textos permite classificar novos documentos considerando categorias pré-estabelecidas e documentos rotulados. Formalmente, a tarefa de classificação pode ser definida como: 1) Dada uma entrada X e um conjunto finito de classes Y = {y1, y2 , , yn}, determinar, para X, uma classe y que pertence a Y. Existem diversos classificadores que podem ser utilizados. Dentre eles, podemos citar Naive Bayes, Regressão logística, Support-vector machines (SVM) e K-Nearest Neighbors (KNN). Foi apresentado na aula o classificador Naive Bayes. Para aplicar o classificador em um documento de texto, podemos representar esse documento como uma bag-of-words, que é um conjunto não-ordenado das palavras que compõem o documento, desconsidera a gramática, mas mantendo a multiplicidade. O classificador Naive Bayes é conhecido também como Classificador Bayesiano “simples” ou “ingênuo”. É considerado ingênuo porque considera os atributos condicionalmente independentes (i.e., o valor de um atributo não está relacionado ao valor de um outro atributo). O Naive Bayes é um classificador probabilístico que usa a representação de textos como bag-of-words. Funciona da seguinte forma: considerando um conjunto de dados de treinamento (corpus rotulado) composto de Ndoc = (doc1, c1), (doc2, c2), (doc3, c1), (docN, c2), onde c1 e c2 são classes, ele calcula a probabilidade de um novo texto docX pertencer à classe c1 ou à classe c2, dado a bag-of-words daquele texto. Um classificador de textos pode ser utilizadopara verificar se um e-mail é spam, para categorizar o assunto de uma notícia, para identificar um idioma e diversas outras aplicações.
Jean Augusto de Araujo Resumo da aula de Processamento de Linguagem Natural do dia 27/06: Classificação de textos. A aula iniciou com uma série de dicas sobre repositórios online de artigos científicos e uma passagem sobre seus tipos de indexações e em qual ordem seus resultados são apresentados, especialmente das áreas de matemática e computação. A aula em si irá abordar a classificação de Naive Baves e apresenta uma analogia com a classificação de animais, vertebrados e invertebrados, onde a classificação é dada de acordo com uma certa estrutura, que diferencia os dois grupos, o esqueleto. Já a categorização de textos provê a classificação de textos em um rótulo, de um conjunto pré-definido de rótulos. Essa ideia é aplicada, por exemplo, em sistemas de categorização de textos utilizados em servidores de e-mails para a identificação de spams. Formalmente, a classificação é dada por uma entrada d e um conjunto finito de classes C = {c1, c2, ..., cn}, onde se determina para d uma classe c, contida em C. Foram apresentados diversos métodos de classificação, por exemplo, no caso do spam, o uso de regras baseadas em palavras, ou combinações, como “você ganhou” ou “você foi selecionado” ou de black-list-address. Esse método pode obter resultados precisos, porém tem uma manutenção custosa. Outro método consiste na utilização de aprendizado de máquina, diversificando entre si pelos classificadores, como Naive Bayes, Regressão logística, SVM Support-vector machines SVM ou KNN – L-Nearest Neighbors. A aula irá abordar principalmente Naive Bayes. Um documento pode ser visto como uma bag-of-words – palavras não ordenadas, mas que podem aparecer repetidamente. Foi feita uma analogia com um grupo de imagens e seus respectivos fragmentos. O classificador Bayesiano simples, chamando também de ingênuo, utiliza basicamente probabilidade do conjunto de dados de treinamento, ou corpus rotulado, para determinar a classe dos documentos de entrada.
Matheus Miranda Teles Aula: Classificação de textos. A classificação de coisas é da natureza humana, um exemplo disso são os animais que desde o principio já os classificamos em dois grandes grupos, vertebrados e invertebrados e mais específicos temos grupos como pássaros e mamíferos. Mas e quanto a textos, podemos classificá- los, e podemos usar PLN para isso? Na classificação de textos, atribui-se um rótulo a um texto inteiro, tendo em vista isso é possível contruir um sistemo que para cada documente novo é possível classificá-lo considerando categorias pré-estabelecidas e documentos já rotulados. Essa técnica é utilizada atualmente e um exemplo disso é a classificação de email como spam. Para a classificação de textos existem regras que usam combinações de palavras, então se aparecen juntas foi "selecionado" e "reais", pode ser um email de spam. Existe uma grande quantidade de classificadores de textos. K-Nearest Neighbors, Regressão logística e o que falaremos o Naive Bayes. Nele um documento é representado como uma conjunto não ordenado de palavras. O Naive Bayes tem esse nome ("ingênuo"), pois é um classificador probabilístico e considera atributos condicionalmente independentes. Dado um documento d, ele analisa a probabilidade deste pertencer a cada classe do conjunto e a que mais for provavel da classe de d. Sendo assim, para calcularmos a probabilidade de um documento w para uma categoria P(w|c) temos a equação para cada palavra que no numerador considera a contagem de (w em c) + 1, e no divisor a somatoria das contagens de todos os w do novo documento em c somado com o numero de palavras do novo documento. Assim, obtemos a probabilidade de cada categoria. Os algoritmos de classificação tem várias aplicações como a atribuição de categorias tópicos ou generos, detecçã de SPAM, identificação de autoria, idade ou idioma e análise de sentimento em textos.
Joao Victor Fontinelle Consonni A sétima aula de PLN tratou do tema de classificação de textos. O início da aula foi marcado por uma analogia da classificação de textos com a classficação taxonômica de animais vertebrados. A proposta foi ilustrar o conceito de categorização, atribuindo um mesmo rótulo a elementos semelhantes de um conjunto e rótulos distintos a elementos diferentes. Um sistema de categorização de textos permite classificar documentos, considerando um conjunto de categorias pré estabelecidas e um corpus de documentos rotulados. A título de exemplo, foi mencionado um classificador binário de e-mails, capaz de separar mensagens desejadas dos spams. Formalmente, a tarefa de classificação pode ser entendida como o processo de atribuir uma classe, dado um conjunto finito de classes, a um novo elemento de entrada, como um documento. Existe uma série de métodos para se fazer isso. O mais simples seria a utilização de regras baseadas em palavras ou combinações de palavras. Este método pode até ser acurado, mas depende de um time de especialistas para a definição das regras, assim como requer um alto esforço de manutenção. Para suplantar estes desafios, é comum a adoção de métodos baseados na utilização de aprendizado de máquina. Alguns desses métodos são o de Naive Bayes, Regressão logística, Support-vector machines (SVM) e K-Nearest Neghbors (KNN). A aula abordou em profundidade apenas o método de Naive Bayes, que utiliza conceitos de aprendizado supervisionado. Neste método, cada documento é representado como uma bag-of-words, ou seja, um conjunto não ordenado de palavras que desconsidera gramática, mas mantém a multiplicidade. O classificador Bayesiano simples, ou ingênuo, é um classificador probabilísticos que utiliza esse tipo de representação de documentos. Ele é considerado ingênuo, pois considera atributos condicionalmente independentes. Neste ponto da aula, foi apresentado o formalismo matemático por trás desse classificador, assim como do processo de treinamento com a utilização de corpus rotulados. Em resumo, o classificador Bayesiano atribui uma probabilidade de uma determinada palavra ocorrer dentro de uma determinada classe. Se, após o treinamento, a palavra não existe na classe, a palavra é desconsiderada. Para classificar um texto, é feita uma produtória considerando cada uma das classes possíveis. A que tiver a maior probabilidade final, é a classe atribuída aquele texto. Neste momento, foi aplicada uma atividade para praticar a execução do algoritmo de classificação Bayesiano simples. Por fim, foram contempladas algumas das possíveis aplicações para a classificação de textos, como identificação de autoria de escrita, identificação de idade do autor do texto, identificação de idiomas, análise de sentimentos em texto, classificação de notícias e identificação de disciplinas. Na última parte da aula o professor falou a respeito do projeto final da disciplina e da entrega número 1, que deve ser feita por meio de um formulário por apenas um dos integrantes do grupo até o dia 04/07. Foram ainda apresentadas algumas plataforma alternativas para pesquisa de artigos científicos, além do Google e do Google Scholar, como o DBLP, ACM Digital Library, IEE Computer Society digital library, Arxiv, Scielo, Semantic Schola e CiteSeerX.
Murilo Bolzan Dionisio Classificação de textos: Classificar tem o significado de separar indivíduos com base em algum tipo de distribuição por classes previamente definida, com alguma característica que os diferenciam. Ao categorizar um texto é implicado que rótulos são atribuídos à estes conjuntos diferentes. Para fazer essa parametrização precisamos de algum sistema. Este sistema irá agir sobre uma base de dados e permite a entrada de conjuntos de elementos para, no final, fazer uma associação de um rótulo nestes elementos inseridos. Isto é algo que permite fazermos categorizações de qualquer coisa, como sentimentos, idiomas, planetas e etc. Um exemplo palpável é a categorização de emails, que podem ser rotulados como spams. Esse tipo de categorização é chamada de categorizador binário, ou é spam ou não é, com isso podemos definir tarefas como: -Dado uma entrada x e um conjunto finito de classes y, determinamos x para uma classe y.- Utilizando regras: Podemos utilizar uma regra com base em combinações de palavras para obtermos suas classificações. Um problema disso é a sua manutenção, por que têm a dependência de um especialista para ser realizada. No exemplo prévio do email, as imagens trariam esse problema, pois elas marcariam o problema do spam, ou seja, nosso desafio é fazer um mapeamento de x para y. Podemos usar alguns tipos de classificadores, como: -Naive Bayes; -Regressão Logística; -SVM; -KNM. -E etc. Native Bayes: É uma técnica de aprendizado supervisionado. Normalmente os classificadores fazem uso de números ao comparar redações e textos. Um dos modelos para transformar textos em números é chamado de bag of words, onde primeiramente as palavras são separadas dos sinais de pontuação e de stopwords. A saída é um array onde há a associação da frequência de cada uma das palavras. Esse array final é o chamado bag of words. Isso desconsidera o texto.
Rafael Correia de Lima Nessa aula de PLN o tema abordado foi a Classificação de Textos. Conteúdo disponível no capítulo 4 do Jurafsky. "Classificação" é definida como a distribuição de indivíduos em classes ou categorias de acordo com características semelhantes. A classificação de texto (text classification) de preocupa em rotular os documentos de um grupo a partir de uma lista finita de rótulos possíveis. Um sistema de categorização de texto é útil para a classificação de textos novos a partir de documentos já rotulados com as categorias pré-estabelecidas. Algumas aplicações de classificação em texto são: filtro de e-mails em spam, classificação de artigos científicos, etc. A classificação pode ser realizada de diversas técnicas. 1) usando regras: podem ser criadas regras condicionais para os conteúdos dos textos. São sistemas com boa acurácia, mas exigem que sejam criadas manualmente por um especialista, que faz com que seja um método muito custoso. 2) usando aprendizado de máquina: a partir de amostras de treinamento um sistema inteligente pode inferir as classes de novos textos a partir de critérios aprendidos na etapa de treinamento. Um exemplo de técnica de aprendizado supervisionado que pode ser usada é o Naive Bayes, que será aprofundado nesta aula. Um método para a classificação é através de uma bag-of-words, na qual a classificação dos textos é feita a partir da frequência das palavras que ocorrem no texto, desconsiderado completamente o contexto de ocorrência das palavras. O vetor de frequência de palavras obtido em um documento pode ser comparado com vetores de textos já classificados para a rotulação desse texto novo. O classificador Naive Bayes é um método probabilístico simples que usa a representação de bag- of-words. É considerado ingênuo porque considera as ocorrências como sendo independente entre si.
Mayza Cristina da Silva Resumo aula 07 – Classificação de texto Para a categorização de textos, está que seria a classificação de textos inteiros fazendo como se os rotulassem. Sendo estes rótulos de quantidade finita. Neste sistema seria permitido a classificação de novos documentos, considerando as categorias já preexistentes e também os arquivos já rotulados. Classificação binária: Classificação como exemplo a de e-mails. Definindo uma tarefa de classificação: Dada uma entrada d e um conjunto finito de classes C, determinar para d uma classe c pertencente a C. Métodos de classificação: Usando regras: baseia-se em palavras, combinações ou outras características identificáveis. A acurácia pode ser alta se as regras forem definidas por especialistas, porém a manutenção e atualização destas regras pode ser muito cara. Usando aprendizado de máquina: aqui é realizado a construção de um classificador capaz de mapear um novo documento e classifica-lo. Já existem alguns algoritmos de aprendizado de máquina que realizam classificações, podemos citar aqui os Naive Bayes, regressão logística, Support-vector machines (SVM), K-Nearest Neighbors (KNN). Um documento pode ser representado como uma bag-of-words, que é um conjunto de palavras não-ordenado, desconsiderando a gramática mas mantendo a multiplicidade Classificador Bayesiano “simples”, é um classificador probabilístico que usa a representação de textos como bag-of-words. Ele é considerado ingênuo porque considera os atributos condicionalmente independentes ou seja, o valor de um atributo não está relacionado ao valor de um outro atributo Qual seria o valor de P(wx |c) quando w x é palavra desconhecida no treinamento? Zero! (não importando os outros termos). Além da explicação e da demonstração do uso de aprendizado de máquina para classificação, também houve uma atividade e demonstração de códigos com o uso dessa aplicação.
Rafael Ribeiro Gomes da Silva O começo da aula serviu como um auxílio para a primeira entrega do projeto. Com recomendações de onde pesquisar os artigos entre outras informações. Quando entramos de fato na aula, relembramos o conceito de classificação como é explicado em IA/Machine Learning. Com inferências e cálculos é possível a classificação de textos para rótulos, dentro de um conjunto finito de rótulos. A ideia básica é de que novos documentos podem ser adicionados a categorias pré-definidas com base nos documentos já rotulados. O exemplo clássico para problemas de classificação é a classificação automática de e-mails considerados spam. É possível criar um classificador através do uso de regras, porém, é algo custoso e que deve ser feito por um especialista, para aumentar a acurácia. Outro problema seria a manutenção de um código já definido. A melhor maneira de implementar um classificador é usar o aprendizado de máquina. Dependendo do tipo de documento e o formato, é necessário pensar bem em qual estilo de classificador será utilizado. A forma citada na aula foi através do aprendizado supervisionado com Naive Bayes, em sua forma mais básica há a representação de uma bag-of-words. Mas nesse conjunto não-ordenado de palavras, as palavras podem perdem o contexto e os textos perdem a semântica. Aprendemos como se comporta a forma básica bayesiana onde os atributos são validados de maneira independente, desconsiderando a relação entre os atributos. Para o cálculo da probabilidade de documentos, ou no caso, de palavras, dividimos o número de documentos cujo a classe seja igual a da palavra e o vocabulário. Se uma palavra for desconhecida no vocabulário, sua probabilidade para dada classe será zero, sendo assim é necessário adicionar 1 ao numerador e ao denominador.
Rodrigo San Martin Ignacio Gomes Classificação de Textos. A categorização de textos corresponde a tarefa de classificar textos inteiros atribuindo um rótulo, a partir de um conjunto finito de rótulos. Através de um sistema de categorização de textos pode-se classificar novos documentos considerando categorias pré-estabelecidos e documentos rotulados. Uma maneira de implementar a classificação de textos é a partir de regras baseadas em palavras ou combinações. Esse método pode ter uma acurácia muito alta mas necessita que uma lista de palavras pré-determinadas sejam disponibilizadas previamente, exigindo também uma constante manutenção e atualização. Essa manutenção pode demandar um grande esforço de recursos humanos, bem como deixar o modelo muito rígido. Assim, os modelos mais avançados utilizam classificadores usando aprendizado de máquina. Diversos classificadores podem ser utilizados, como o da Naive Bayes, Regressão Logística, Support-vector machines (SVM) e k-Nearest NEighboras (KNN). Para a classificação de texto usando Naive Bayes, um documento ´pode ser representado com uma bag-of-words, que é um conjunto não ordenado de palavras. O naive Bayes considera que os atributos são condicionalmente independentes. Em resumo, a probabilidade de um documento pertencer a uma classe depende do número de documentos nessa classe, dividido pelo numero de documentos totais no treinamento. Assim, para uma classificação binomial, são calculadas 2 probabilidades e a maior entre elas indica a classe do documento. Assim por exemplo, para um detector sentimento em um texto, com classificação binomial entre positivo e negativo, a partir de um copus que contenha o rotulamento prévio com textos nessas duas categorias, para um novo texto, podem ser calculadas as probabilidades de ocorrência de cada uma nas categorias, e a probabilidade maior entre as duas categorias é a saída determinada pelo preditor.
Henrique Augusto Santos Batista Ante de falarmos de classificação de textos devemos entender o conceito de classificação, classificação é quando separamos coisas semelhantes em grupos levando em conta semelhanças e diferenças um exemplo é quando classificamos animais em vertebrado e invertebrados pelo fato de terem ou não uma estrutura vertebral, então quando falamos de classificação de textos devemos entender dos assuntos e formas dos textos para agrupar semelhantes então um sistema de categorização de textos permite classificar novos documentos e considerar categorias pré-estabelecidas e documentos rotulados. A definição formal da tarefa de classificação é dada uma entrada X e um conjunto finito de classes Y={y1,y2,y3,...,yn}, determinar para X uma classe y que pertence a Y. A classificação de textos é feita usando um conjunto de regras baseadas em palavras ou combinação de palavras, a acurácia pode ser alta se as regras forem bem escritas e a manutenção das regras pode ser muito cara. Existe uma quantidade muito grande de classificadores por exemplo: Naive Bayes Regressão logística Support-vector machines(AVM) K-Nearest Neighbor(KNN) No método de Naive Bayes um documento pode ser representado com uma bag-of- words Que é um Conjunto não-ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade) então depois disso, no modelo classificador bayesiano “simples” ou “ingênuo”, é aplicado um classificado probabilístico no qual vai verificar qual a probabilidade do texto pertencer a uma determinada classe comparando as palavras que aparecem com outras de outros textos já classificados levando em conta a possibilidade de uma determinada palavra aparecer em um determinado estilo de texto, esse tipo de classificação requer um treinamento prévio e um extenso banco de textos classificados para gerar probabilidades.
Matheus Dos Santos Pereira Resumo da aula 7, sobre a classificação de textos, a ideia é similar a classificação de animais, a classificação de texto é a tarefa de classificar o texto inteiros atribuindo um rótulo ao texto. Um sistema de categorização de textos, têm que permite classificar novos documentos , e considera categorias pré-estabelecidas e documentos rotulados. Um exemplo é o sistema de classificação de emails, onde ele classificar propaganda, spam, vírus, good email, em caixas diferentes, onde serão tratados de modo diferentes. Métodos de classificação: Uso de regras baseadas em palavras ou combinação de palavras (ou outras características). A acurácia pode ser alta, se as regras são definidas por especialista(s), porém a manutenção/atualização das regras pode ser muito cara. Outro método é usando aprendizagem de máquina: O desafio é construir um classificador que seja capaz de mapear o novo documento d à sua classe correta c i . Já existe uma quantidade grande classificadores, como por exemplo, Naive Bayes, Regressão logística, Support-vector machines (SVM), K-Nearest Neighbors (KNN). Exemplificando o Naive Bayes, podemos pensar em um documentos como uma Bag-of- words que é um conjunto não-ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade), o naive Bayes é conhecido como também como Classificador Bayesiano “simples” ou “ingênuo”. É um classificador probabilístico, que usa a representação de textos como bag- of-words, é considerado ingênuo porque considera os atributos condicionalmente independentes (i.e., o valor de um atributo não está relacionado ao valor de um outro atributo). Foi feito uma atividade sobre o naive bayes e sua aplicações, depois foi explicado o projeto da matéria, referente ao grupos, bibliografias e base de dados.
Tiago Suzukayama Nessa aula, iniciamos discutindo como textos podem ser categorizados. A categorização de textos corresponde à tarefa de classificar textos inteiros atribuindo um rótulo, de um conjunto finito de rótulos. Um sistema de categorização de textos permite classificar novos documentos, e considera categorias pré-estabelecidas e documentos rotulados. De maneira formal, definimos a tarefa de classificação como: dada uma entrada x e um conjunto finito de classes Y, devemos determinar para x, uma classe y que pertença a Y. O método de classificação usando regras é definido pelo uso de regras baseadas em palavras ou combinação de palavras. Sua acurácia pode ser alta, quando as regras são definidas por especialistas, porém sua manutenção pode ser cara. O método usando aprendizado de máquina consiste em construir um classificador que seja capaz de mapear um novo documento a sua classe correta. Exite uma grande quantidade de classificadores: Naive Bayes, regressão logísitica, SVM, KNN. A classificação por Naive Bayes consiste em representar um documento na forma de uma bag-of-words (cojunto não ordenado de palavras) e utilizar a probabilidade de cada palavra para escolher a melhor classe para sua entrada. É considerado ingênuo porque o valor de uma palavra não está relacionado a outra palavra. Na atividade 1 tivemos que calcular a probabilidade de cada classe em um certo documento, o seu vocabulário, e se um entrada S deveria ser classificada como a class "neg" ou "pos". Na atividade 2, tivemos que calcular a probabilidade da entrada ser "pos" ou "neg". Este classificadores podem ser aplicados para: atribuição de categorias, detecção de spam, identificação de autoria, de idade, idioma, e análise de sentimentos em um texto.
Thiago Felipe Floreste A aula de número 7 foi sobre classificação de textos, isto é, sobre como categorizar textos e documentos em determinados rótulos (classes). Esta categorização pode ser feita de forma automática usando um sistema de classificação de textos. Um exemplo, dado em aula, é a classificação de emails entre spam e não spam. Como os documentos são classificados em duas classes, este é um exemplo de classificação binária. A classificação pode ser feita usando uma série de regras para classificar os textos ou por meio de técnicas de aprendizado de máquina, o que pode ser alcançado usando diferentes algoritmos de classificação, como a Naive Bayes, Regressão Logística, Support- vector Machine (SVM), dentre outros. Na aula, o uso do Naive Bayes na classificação de textos foi mais detalhada. Uma Naive Bayes (Classificador Bayesiano Simples) é um classificador probabilístico que assume que todos os atributos são condicionalmente independentes entre si, ou seja, a probabilidade de um atributo assumir um determinado valor não depende dos outros atributos. Em documentos textuais essa é uma suposição errada, uma vez que as palavras utilizadas dependem do contexto em que estão inseridas, entretanto ainda assim o Naive Bayes consegue obter bons resultados. Na classificação de textos a Naive Bayes usa o conceito de "bag-of-words", que é simplesmente um conjunto não ordenado, que permite valores repetidos das palavras que aparecem nos textos. O Naive Bayes cria um modelo probabilístico usando documentos previamente rotulados usados no treinamento para poder classificar novos documentos. Após a explicação dos conceitos, uma atividade envolvendo a classificação de textos com Naive Bays foi passada e algumas aplicações foram exemplificadas.
Luana Ferreira do Nascimento Classificação é uma destribuição que pode ser feita através da verificação de características em comum entre os elementos. A classificação pode ser aplicada a qualquer contexto, um deles sendo a classificação de textos onde vamos separar os textos individuais de um grupo de documentos em certas categorias, aplicando-lhes rótulos de acordo com seu conteúdo. No nosso caso, por este momento, estamos interessados em separar os textos de acordo com um conjunto finito de categorias pré estabelecidas e para isso existem diversas técnicas. Uma técnica que pode dar ótimos resultados é a definição de regras lógicas que um documento precisa ter para que possa ser rotulado em cada uma das classes definidas, regras essas que podem ser criadas por um especialista de cada assunto aumentando a eficácia da separação. Uma desvantagem da utilização desta técnica é que realizar alterações no modelo pode ser muito caro, demorado e difícil para alguém que não tenha acompanhado o processo de criação do algoritmo desde o início. Uma forma de contornar este risco e custo de definição de classes é utilizar técnicas de machine learning para treinar um modelo para conseguir separar os textos indicados em suas respectivas categorias. Esta técnica pode ser significativamente menos precisa na classificação, porém possui uma possibilidade de manutenção mais rápida e barata, além da literatura dispor de diversos algoritmos, bibliotecas e ferramentas para auxiliar a realização destas tarefas. Podemos por exemplo utilizar o modelo naive bayes, que separa os textos em um conjunto de palavras não ordenadas, contabiliza a ocorrência de cada palavra/termo e com base nesta informação separa as classes.
Victor Arruda Ganciar _Classificação de textos_ Classificação é a distribuição por classes, categorias ou grupos com características semelhantes, por exemplo, podemos classificar os animais como vertebrados e invertebrados. A categorização de textos considera documentos já rotulados e categorias pré estabelecidas para classificar novos documentos, um sistema de classificação de emails, por exemplo, pode filtrar quais emails recebidos são considerados spam, de acordo com as palavras contidas neles. Formalmente a tarefa de classificação pode ser definida como: dada uma entrada x e um conjunto finito de classes Y = {y1, y2, y3}, determina-se para x uma classe y pertencente a Y. Existem alguns métodos de classificação, como o uso de regras baseadas em palavras ou combinação de palavras, tais regras podem ser elaboradas utilizando operadores lógicos e a acurácia pode ser alta se as regras forem definidas por especialistas, porém a manutenção e a atualização dessas regras pode ser muito cara. É possível também utilizar a classificação por aprendizado de máquina, dentro deste contexto existem muitos classificadores já bem difundidos, como Regressão logística e o KNN (K-Nearest Neighbors), porém daremos mais atenção ao Naive Bayes. _Naive Bayes_ Um documento pode ser representado como uma bag-of-words (conjunto não ordenado de palavras que desconsidera a gramática mas mantém a multiplicidade). O classificador de Naive-Bayes, conhecido também como classificador Bayesiano “simples” ou “ingênuo”, é um classificador probabilístico que usa a representação de textos como bag-of-words. Ele é considerado ingênuo porque considera os atributos condicionalmente independentes, isto é, o valor de um atributo não está relacionado ao valor de outro atributo.
Estevao Crippa da Veiga Classificação é a ação ou efeito de classificar, de reunir em classes e em grupos respectivos, segundo um sistema ou método. A categorização de textos consiste na tarefa de classificar textos inteiros atribuindo rótulos, dado um conjunto finito de rótulos. Já um sistema de categorização de textos consiste em classificar novos textos utilizando rótulos pré-definidos e documentos rotulados. De maneira formal, dado um texto x e um conjunto de rótulos Y = {y1, y2, , yn}, determinar para x um rótulo y que pertença a Y. Para a classificação podemos utilizar regras ou aprendizado de máquina. No caso das regras, são baseada sem palavras ou combinação de palavras. A acurácia pode ser alta se as regras são definidas por especialistas, porém a manutenção das regras tem alto custo. Já a classificação por aprendizado de máquina consiste em montar um classificador para rotular os textos. No caso da utilização do Nayve Bayes como classificador, o documento é representado como uma bag-of-words e a classe é definida da seguinte maneira: dado um conjunto de classes C, a classe do documento é definida pelo argumento máximo, iterado entre todas as classes c pertences a C, entre o produto da probabilidade de c e o produtório da probabilidade condicional de todos os textos dado sua classe. Em outras palavras, a decisão da classe é baseada em um conjunto utilizado para treinamento e outro conjunto utilizado para testes. A classificação de textos se torna importante para detecção de spam e identificação de idiomas, sentimento, autores e até mesmo assunto do texto.


Número de resumos processados: 61.

Observação:


Arquivo gerado por um programa.