Come iniziare a sviluppare un'applicazione Android per l'analisi del sentimento
Un modello di analisi del sentimento è usato per analizzare una stringa di testo e classificarla con una delle etichette che tu fornisci; per esempio, potresti analizzare un tweet per determinare se è positivo o negativo, o analizzare un'email per determinare se è felice, frustrato o triste
Step 1: Raccogliere dati
Devi addestrare il tuo modello di sentimento con esempi del tipo di dati che vedrai quando userai il tuo modello. Per esempio, se stai cercando di determinare il sentiment dei tweet, avrai bisogno di ottenere esempi di voci di tweet. Per esempio:
- "Feeling kind of low...."
- "OMG! Ho appena avuto una giornata favolosa!"
- "Mangiare melanzane. Perché preoccuparsi?"
Puoi fornire i tuoi dati o comprarli. Per un buon modello, avrete bisogno di almeno diverse centinaia di esempi, se non migliaia. Tutti i campioni dovrebbero essere nella stessa lingua (anche se non importa quale lingua, basta che sia coerente e delimitata da uno spazio).
Step 2: Etichettare i dati
Una volta raccolti i campioni di allenamento, è necessario pre-classificare ogni campione con un'etichetta. Un'etichetta è una stringa che pensi descriva al meglio quell'esempio, per esempio: "felice", "triste", "indeciso". Quindi, per assegnare le etichette agli esempi precedenti:
- "triste", "Mi sento un po' giù...."
- "eccitato", "OMG! Ho appena avuto una giornata favolosa!"
- "annoiato", "Mangio melanzane. Perché preoccuparsi?"
Alcuni consigli sulle etichette:
- Puoi avere fino a 1.000 etichette per un modello, ma dovresti usare solo tante etichette quante sono utili per te, e devi avere almeno qualche dozzina di esempi assegnati per ogni tipo di etichetta che assegni.
- Le etichette sono solo stringhe, quindi possono avere spazi. Comunque, dovresti mettere le doppie virgolette intorno a qualsiasi etichetta che abbia spazi, e dovresti evitare qualsiasi virgoletta annidata usando un segno \. Esempio: "that's fine"
- Le etichette sono sensibili alle maiuscole. Quindi "Happy" e "happy" saranno visti come due etichette separate dal sistema di formazione. La pratica migliore è quella di usare le minuscole per tutte le etichette, per evitare confusioni.
- Ogni riga può avere una sola etichetta assegnata, ma è possibile applicare più etichette a un esempio ripetendo un esempio e applicando etichette diverse a ciascuno. Per esempio: "eccitato", "OMG! Ho appena avuto una giornata favolosa!""fastidioso", "OMG! Ho appena avuto una giornata favolosa!"Se si invia un tweet a questo modello, si potrebbe ottenere una classificazione come questa: "eccitato":0.6, "fastidioso":0.2.
Step 3: Prepara i tuoi dati
L'API di predizione di Google accetta dati di allenamento formattati come un file CSV (valori separati da virgola) con una riga per esempio. Il formato di questo file è fondamentalmente questo:
- label1, feature1, feature2, feature3,....
- etichetta2, caratteristica1, caratteristica2, caratteristica3....
- ...
Nell'esempio precedente, ogni esempio aveva una singola caratteristica: una stringa di testo che è un tweet. Quindi il file sarebbe qualcosa del genere:
- "triste", "Mi sento un po' giù...."
- "eccitato", "OMG! Ho appena avuto una giornata favolosa!
- "annoiato", "Mangio melanzane. Perché preoccuparsi?"
Tuttavia, se hai altri dati che pensi possano aiutare Google Prediction a trovare alcuni modelli sottostanti, sarebbe utile includere anche queste informazioni. Per esempio, se pensate che la lunghezza del messaggio sia significativa (messaggi più lunghi indicano tweet più felici) o l'ora del giorno (i tweet di giorno sono più felici di quelli di notte), potreste creare ulteriori caratteristiche per quei dati. The following example shows the label, tweet text, message word count, and numeric version of the time of day for each tweet:
- "sad", "Feeling kind of low....", 4, 18.30
- "excited", "OMG! Just had a fabulous day!", 6, 9.10
- "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. Notate anche che ci dovrebbe essere una buona correlazione tra tutte le caratteristiche e l'etichetta che assegnate.
Ci sono strumenti offline che potete usare (come Weka e R) che possono aiutare a costruire modelli campione e identificare quali caratteristiche hanno un impatto maggiore sul vostro modello. Purtroppo non ci sono garanzie quando si costruisce un modello per il vostro problema, il modo migliore per ottenere risultati ottimali è quello di costruire alcuni modelli con diversi set di caratteristiche e utilizzare quello che funziona meglio. Come regola generale, però, includere tutti i dati rilevanti possibili produrrà i migliori risultati, poiché gli algoritmi sono bravi a ignorare le caratteristiche che non influenzano i risultati.
Step 4: Caricare i dati su Google Cloud Storage
Una volta che hai i tuoi dati disponibili in formato CSV è il momento di caricarli su Google Cloud Storage. Ci sono molti modi per farlo.
- Con un'interfaccia web nella Google Cloud Platform Console
- Con uno strumento a riga di comando: GSUtil
- Utilizzando la Google Cloud Storage API
Step 5: Addestrare un modello con la Google Prediction API
Allena il tuo modello usando il Google API Explorer o una libreria client. Il metodo per l'addestramento è isprediction.trainedmodels.insert(), passando il percorso dei dati di addestramento in Google Cloud Storage. Nota: non mettere il prefisso "http://gs://" al percorso del file dei dati. Questa sintassi è esclusivamente per l'utility GSUtil.
Nota che l'allenamento può richiedere un po' di tempo per insiemi di allenamento molto grandi (con decine di migliaia di righe).
Step 6: Fai previsioni con l'API di predizione di Google nella tua applicazione.
Ora che hai costruito con successo un modello, è il momento di fare effettivamente previsioni! L'output di una chiamata di predizione per un problema di classificazione come la sentiment analysis includerà diversi campi importanti:
- outputLabel - L'etichetta che l'API ha determinato come più probabile da applicare a questo campione
- outputMulti - Una ripartizione dettagliata per etichetta di quanto sia probabile che quell'etichetta si applichi a questo campione (tutti i punteggi inoutputMulti saranno pari a 1)
Step 7: Aggiorna il tuo modello con nuovi dati
Puoi continuare a migliorare il tuo modello aggiungendo ulteriori esempi. Ci sono due modi per aggiungere ulteriori esempi al tuo modello:
- Aggiungi i nuovi dati al file dati originale e riaddestra il modello con un'altra chiamata insert().
- Aggiorna il tuo modello esistente usando il metodoupdate; questo aggiunge nuovi esempi al volo a un modello esistente. L'aspetto negativo di questa opzione è che alcuni classificatori non possono essere aggiornati, quindi è possibile che un classificatore aggiornato abbia un'accuratezza peggiore del classificatore addestrato su tutti i dati del batch
Articoli simili
- Perché il sentimento è tutto per me?
- Voglio costruire un'applicazione Android per la video chat. Qual è la migliore opzione per sviluppare questa applicazione?
- Quanto java è necessario per sviluppare applicazioni per Android? Da dove comincio a sviluppare se ho un'idea in mente?
- Come si può iniziare a sviluppare giochi multiplayer per Android?