Pergunta

Estou tentando treinar um classificador ingênuo de Bayes com palavras positivas/negativas extraindo de um sentimento. exemplo:

Eu amo esse filme :))

Eu odeio quando chove :(

A idéia é que extrai frases positivas ou negativas com base nos emoctos utilizados, mas para treinar um classificador e persistir no banco de dados.

O problema é que tenho mais de 1 milhão de frases; portanto, se eu a treinar por palavra, o banco de dados será um sorteio. Quero remover todo o exemplo de palavra não relevante 'i', 'this', 'quando', 'é' para que o número de vezes eu tenha que fazer uma consulta de banco de dados seja menor.

Por favor me ajude a resolver esse problema para me sugerir melhores maneiras de fazer isso

obrigada

Outras dicas

Existem duas abordagens comuns:

  1. Compilar a Lista de paradas.
  2. Tag POS As frases e jogam fora as partes do discurso que você acha que não são interessantes.

Nos dois casos, determinar quais palavras/POS são relevantes podem ser feitas usando uma medida como PMI.

Lembre -se: listas de paradas padrão da recuperação de informações podem ou não funcionar na análise de sentimentos. Recentemente, li um artigo (sem referência, desculpe) onde foi reivindicado isso! e?, comumente removido nos mecanismos de pesquisa, são pistas valiosas para análise de sentimentos. (Assim, pode 'eu', especialmente quando você tem uma categoria neutra.)

Editar: Você também pode jogar fora com segurança tudo o que ocorre apenas uma vez no conjunto de treinamento (assim chamado HAPAX Legomena). As palavras que ocorrem uma vez têm pouco valor de informação para o seu classificador, mas podem ocupar muito espaço.

Para reduzir a quantidade de dados recuperados do seu banco de dados, você pode criar em seu banco de dados um dicionário - uma tabela que mapeia as palavras* para números ** - e se recuperar apenas um vetor numérico para treinamento e uma frase completa para marcação manual de um sentimento .

|* Nenhuma publicação científica vem à minha mente, mas talvez seja suficiente para usar apenas caules ou lemas em vez de palavras. Reduziria o tamanho do dicionário.

| ** Se esta operação mata seu banco de dados, você poderá criar um dicionário em um aplicativo local - que usa um mecanismo de indexação de texto (por exemplo, Apache Lucene) - e armazenar apenas o resultado no seu banco de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top