Como fazer a classificação de texto de uma classe?


14

Eu tenho que lidar com um problema de classificação de texto. Um rastreador da Web rastreia páginas de um determinado domínio e, para cada página da Web, quero descobrir se ele pertence a apenas uma classe específica ou não. Ou seja, se eu chamar essa classe de Positivo , cada página da Web rastreada pertence à classe Positiva ou à Não Positiva .

Eu já tenho um grande conjunto de páginas da web para a classe Positive . Mas como criar um conjunto de treinamento para a classe Não Positiva, o mais representativo possível? Quero dizer, eu poderia usar basicamente tudo e todos nessa aula. Posso apenas coletar algumas páginas arbitrárias que definitivamente não pertencem à classe Positive ? Tenho certeza de que o desempenho de um algoritmo de classificação de texto (eu prefiro usar o algoritmo Naive Bayes) depende muito de quais páginas da Web eu escolho para a classe Não Positiva .

Então o que devo fazer? Alguém pode me dar um conselho? Muito obrigado!


Na verdade, trata-se de um cluster de duas classes, já que você tem duas classes. Para uma classe, você teria apenas uma classe e estaria interessado em avaliar até que ponto suas observações se encaixam nos dados (por exemplo, na detecção de valores extremos).
Tim

Esse problema de aprendizagem tem um nome - aprendizagem de PU. Naturalmente, isso deve ser usado se exemplos positivos forem fáceis ou naturais de obter, mas negativos são basicamente tudo o resto (difícil de obter). Em princípio, você deseja aprender um classificador padrão de duas classes, mas com critérios diferentes - otimize a área sob a curva PR. Este pacote de software permite que você treine esse classificador code.google.com/p/sofia-ml
Vladislavs Dovgalecs

Respostas:


5

O algoritmo Spy EM resolve exatamente esse problema.

O S-EM é um sistema de aprendizado ou classificação de texto que aprende com um conjunto de exemplos positivos e não identificados (sem exemplos negativos). É baseado em uma técnica de "espionagem", ingênuo Bayes e algoritmo EM.

A idéia básica é combinar seu conjunto positivo com um monte de documentos rastreados aleatoriamente. Inicialmente, você trata todos os documentos rastreados como classe negativa e aprende um classificador ingênuo de bayes nesse conjunto. Agora, alguns desses documentos rastreados serão realmente positivos e você poderá re-etiquetar de maneira conservadora todos os documentos com pontuação mais alta que o documento positivo verdadeiro com pontuação mais baixa. Em seguida, você itera esse processo até que seja estabilizado.


Muito obrigado, isso parece bastante promissor. Vou dar uma olhada nisso.
pemistahl

6

Aqui está uma boa tese sobre a classificação de uma classe:

  • Tax, DM: Classificação de uma classe - Aprendizado de conceito na ausência de contra-exemplos , tese de doutorado, Technische Universiteit Delft, 2001. ( pdf )

Esta tese apresenta o método de SVDD (Support Vector Data Description), uma máquina de vetores de suporte de classe única que encontra uma hiperesfera mínima ao redor dos dados, em vez de um hiperplano que os separa.

A tese também analisa outros classificadores de uma classe.


Bem-vindo ao site, @nub. Esperamos construir um repositório permanente de informações estatísticas, portanto, nos preocupamos com a possibilidade de linkrot. Você se importaria em fornecer um resumo das informações dessa tese, caso o link fique inoperante?
gung - Restabelece Monica

Obrigado por resumir. Registre e mescle suas contas (você pode descobrir como, na seção Minha conta , em nossa central de ajuda ), para poder editar e comentar suas próprias postagens.
gung - Restabelece Monica

Obrigado pelo bem-vindo. Estou emocionado por ter recebido o selo "Yearling" no próprio StackOverflow, então agora posso comentar em qualquer lugar.
JosiahYoder desativador exceto .. 15/06

@ JosiahYoder, se você é o OP aqui, mescle suas contas. Você pode descobrir como na seção Minha conta da nossa Central de Ajuda .
gung - Restabelece Monica

Eu não sou o OP. Apenas um usuário SO aleatório que encontrou essa questão.
JosiahYoder desativador, exceto ..

1

Um bom treinamento requer dados que forneçam boas estimativas das probabilidades de cada classe. Todo problema de classificação envolve pelo menos duas classes. No seu caso, a segunda classe é qualquer pessoa que não esteja na classe positiva. Para formar um bom limite de decisão usando Bayes ou qualquer outro método bom, é melhor fazê-lo com o máximo de dados de treinamento selecionados aleatoriamente na classe. Se você fizer uma seleção não aleatória, poderá obter uma amostra que não represente verdadeiramente a forma das densidades / distribuições condicionais da classe e possa levar a uma má escolha do limite de decisão.


1
Você está certo, é exatamente isso que me incomoda. Como selecionar uma amostra de amostras não positivas que leva a um bom limite de decisão? Fazer uma seleção aleatória é o melhor que posso fazer?
pemistahl

0

Eu concordo com o Michael.

Em relação à sua pergunta sobre seleção aleatória; sim: você deve selecionar aleatoriamente o conjunto complementar de seus 'positivos'. Se houver alguma confusão de que é possível que seus 'positivos' não estejam totalmente definidos como 'puramente positivos', se é que posso usar essa frase, você também pode tentar pelo menos algum tipo de definição correspondente para positivos, para que você possa controle sobre as variáveis ​​que estão gerando potencialmente alguma contaminação na definição de 'positivo'. Nesse caso, você também deve corresponder às mesmas variáveis ​​no lado 'não positivo'.


0

Um artigo que pode ser interessante é:

"Classificação estendida de centróides encolhidos mais próximos: um novo método para atribuição de autoria em conjunto aberto de textos de tamanhos variados", Schaalje, Fields, Roper e Snow. Computação Literária e Linguística, vol. 26, n. 1, 2011.

Que utiliza um método para atribuir um texto a um conjunto de autores e o estende para usar a possibilidade de que o verdadeiro autor não esteja no conjunto candidato. Mesmo que você não use o método NSC, as idéias no artigo podem ser úteis para pensar em como proceder.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.