Casa > C > Como Começar A Desenvolver Um Aplicativo Android Para Análise De Sentimentos

Como começar a desenvolver um aplicativo Android para análise de sentimentos

Um modelo de análise de sentimentos é usado para analisar uma string de texto e classificá-la com uma das etiquetas que você fornece; por exemplo, você poderia analisar um tweet para determinar se ele é positivo ou negativo, ou analisar um e-mail para determinar se ele é feliz, frustrado ou triste

P>Passo 1: Coletar Dados

Você deve treinar seu modelo de sentimentos contra exemplos do tipo de dados que você vai ver quando usar seu modelo. Por exemplo, se você estiver tentando determinar o sentimento dos tweets, você precisará obter exemplos de entradas de tweets. Por exemplo:

<
  • "Sentimento de baixa...."
  • "OMG! Acabou de ter um dia fabuloso!"
  • "Comendo beringela. Por que se preocupar?"<

Você pode fornecer seus próprios dados ou comprá-los. Para um bom modelo, você vai precisar de pelo menos várias centenas de exemplos, se não milhares. Todas as amostras devem estar na mesma linguagem (apesar de não importar'independentemente da linguagem, desde que seja consistente e com espaço delimitado).

Passo 2: Etiquete seus dados

Após ter coletado suas amostras de treinamento, você precisará pré-classificar cada amostra com uma etiqueta. Uma etiqueta é uma string que você acha que descreve melhor esse exemplo, por exemplo: "feliz", "triste", "na cerca". Assim, para atribuir etiquetas aos exemplos anteriores:

>ul>"triste", "Sentir-se um pouco triste....""excitado", "OMG! Acabou de ter um dia fabuloso!""aborrecido", "Comer beringela". Por que se preocupar?"

Umas dicas sobre rótulos:

  • Você pode ter até 1.000 rótulos para um modelo, mas você só deve usar tantos rótulos quantos forem úteis para você, e você deve ter pelo menos algumas dezenas de exemplos atribuídos a cada tipo de rótulo que você atribuir.
  • Labels são apenas cordas, para que eles possam ter espaços. No entanto, você deve colocar aspas duplas em torno de qualquer etiqueta que tenha espaços, e você deve escapar de qualquer aspas aninhadas usando uma marca \. Exemplo: "that\'s fine"li>li>Labels are case-sensitive. Então "Happy" e "happy" serão vistos como dois rótulos separados pelo sistema de treinamento. A melhor prática é usar letras minúsculas para todos os rótulos, para evitar mix-ups.
  • Cada linha só pode ter um rótulo atribuído, mas você pode aplicar vários rótulos a um exemplo repetindo um exemplo e aplicando rótulos diferentes a cada um. Por exemplo: "excitado", "OMG! acabou de ter um dia fabuloso!", "OMG! acabou de ter um dia fabuloso!" Se você enviar um tweet para este modelo, você pode receber uma classificação algo como isto: "excited":0.6, "annoying":0.2.

P>Passo 3: Prepare seus dados

O Google Prediction API leva os dados de treinamento formatados como um arquivo de valores separados por vírgula (CSV) com uma linha por exemplo. O formato deste arquivo é basicamente este:

  1. label1, feature1, feature2, feature3,.... 
  2. label2, feature1, feature2, feature3.... 
  3. li>... 

No exemplo anterior, cada exemplo tinha uma única característica: uma cadeia de texto que é um tweet. Então o arquivo ficaria algo assim:

  1. "triste", "Sentindo um pouco de baixa....". 
  2. "excitado", "OMG! Acabou de ter um dia fabuloso!" <
  3. "aborrecido", "Comendo beringela". Porquê incomodar?" 

No entanto, se você tiver mais dados que você acha que ajudariam o Google Prediction a encontrar alguns padrões subjacentes, seria útil incluir essa informação também. Por exemplo, se você acha que a duração da mensagem é significativa (mensagens mais longas indicam tweets mais felizes) ou a hora do dia (tweets diurnos são mais felizes que tweets noturnos), você poderia criar recursos adicionais para esses dados. The following example shows the label, tweet text, message word count, and numeric version of the time of day for each tweet:

  1. "sad", "Feeling kind of low....", 4, 18.30 
  2. "excited", "OMG! Just had a fabulous day!", 6, 9.10 
  3. "bored", "Eating eggplant. Why bother?", 4, 12.00 

Note that the Google Prediction API doesn't take datetime values, so you must find an equivalent; here, times are specified as numbers. Note também que deve haver uma boa correlação entre todas as características e a etiqueta que você atribui.

Existem ferramentas offline que você pode usar (como Weka e R) que podem ajudar a construir modelos de amostra e identificar quais características impactam mais o seu modelo. Infelizmente não há garantias, porém, ao construir um modelo para o seu problema, a melhor maneira de alcançar resultados ótimos é construir alguns modelos com diferentes conjuntos de recursos e utilizar aquele que funciona melhor. Como regra geral, porém, incluir todos os dados relevantes possíveis produzirá os melhores resultados, pois os algoritmos são bons em ignorar recursos que não influenciam os resultados.

P>Passo 4: Upload de dados para o Armazenamento na Nuvem do Google

Após você ter seus dados disponíveis no formato CSV, é hora de fazer o upload para o Armazenamento na Nuvem do Google. Há muitas maneiras de fazer isso.

<
  • >li>Com uma interface web no Console da plataforma Google Cloud Platform>li>Com uma ferramenta de linha de comando: GSUtil
  • Li>Com uma ferramenta de linha de comando: GSUtil>Li>Com a API do Armazenamento em Nuvem do Google>ul>p>passo 5: Treine um modelo com a API de Previsão do Google

Treine seu modelo usando ou o Google API Explorer ou uma biblioteca cliente. O método para treinamento isprediction.trainedmodels.insert(), passando no caminho para seus dados de treinamento no Armazenamento em Nuvem do Google. Nota: não prefira o caminho do arquivo de dados com "http://gs://". Essa sintaxe é exclusivamente para o utilitário GSUtil.

Nota que o treinamento pode demorar um pouco para conjuntos de treinamento muito grandes (com dezenas de milhares de linhas).

passo 6: Faça Previsões com a API de Previsão do Google em sua aplicação.

Agora que você tenha construído com sucesso um modelo, é hora de realmente fazer previsões! A saída de uma chamada de previsão para um problema de classificação como a análise de sentimento incluirá vários campos importantes:

  1. outputLabel - O rótulo que a API determinou que provavelmente será aplicado a esta amostra>li>outputMulti - Uma subdivisão detalhada por rótulo da probabilidade de que esse rótulo será aplicado a esta amostra (Todas as pontuações inoutputMulti somarão a 1)

>Passo 7: Atualize seu modelo com novos dados

Você pode continuar a melhorar seu modelo adicionando exemplos adicionais. Existem duas maneiras de adicionar exemplos adicionais ao seu modelo:

  • Adicionar os novos dados ao arquivo de dados original e remontar o modelo com outro insert() call.
  • Update seu modelo existente usando o métodoupdate; isto adiciona novos exemplos em tempo real a um modelo existente. O lado negativo desta opção é que alguns classificadores não podem ser atualizados, portanto é possível que um classificador atualizado tenha pior precisão do que o classificador treinado em todos os dados em lote
.

De Valaria Scandalis

Quais são algumas alternativas ao Doodle? :: Como capturar um sinal de áudio de um mixer de áudio para um smartphone Android