Pubblico
Questo tutorial è progettato per consentirti di iniziare rapidamente a esplorare e sviluppare applicazioni con l'API Google Cloud Natural Language. È progettato per persone che hanno familiarità con la programmazione di base, anche se non hai molte conoscenze di programmazione per essere comunque in grado di seguirlo. Avendo seguito questo tutorial, dovresti essere in grado di utilizzare la Documentazione di riferimento per creare le tue applicazioni di base.
Questo tutorial illustra i passaggi di un'applicazione API Natural Language utilizzando il codice Python. Lo scopo qui non è spiegare le librerie client Python, ma spiegare come effettuare chiamate all'API Natural Language. Le applicazioni in Java e in Node.js sono sostanzialmente simili. Consulta gli esempi dell'API Natural Language per trovare esempi in altre lingue (incluso questo esempio nel tutorial).
Prerequisiti
Questo tutorial prevede diversi prerequisiti:
- Disporre di un account Google Cloud. Se non hai mai utilizzato la piattaforma, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
- Tu abbia configurato un progetto API Cloud Natural Language nella console Google Cloud.
- Hai configurato il tuo ambiente utilizzando le credenziali predefinite dell'applicazione.
- Hai dimestichezza con la programmazione Python.
- Hai configurato l'ambiente di sviluppo Python. Ti consigliamo di installare sul sistema la versione più recente di Python,
pip
evirtualenv
. Per le istruzioni, consulta la guida alla configurazione dell'ambiente di sviluppo di Python per Google Cloud Platform. - Aver installato la libreria client di Google Cloud per Python.
Analisi del sentiment del documento
Questo tutorial illustra un'applicazione di base dell'API Natural Language, che utilizza
una richiesta analyzeSentiment
, che esegue l'analisi del sentiment sul testo.
L'analisi del sentiment tenta di determinare l'atteggiamento complessivo (positivo o
negativo) ed è rappresentata da valori numerici score
e magnitude
.
Per ulteriori informazioni su questi concetti, consulta le Nozioni di base su Natural Language.
Per prima cosa, viene visualizzato l'intero codice. (Tieni presente che abbiamo rimosso la maggior parte dei commenti da questo codice per mostrarti quanto è breve. Forniremo ulteriori commenti man mano che analizziamo il codice).
Questa semplice applicazione esegue le seguenti attività:
- Importa le librerie necessarie per eseguire l'applicazione
- Recupera un file di testo e lo passa alla funzione
main()
- Legge il file di testo ed effettua una richiesta al servizio
- Analizza la risposta del servizio e la mostra all'utente
Questi passaggi verranno esaminati più dettagliatamente di seguito.
Importazione delle librerie
Importiamo argparse
, una libreria standard, per consentire all'applicazione di accettare i nomi file di input come argomenti.
Per utilizzare l'API Cloud Natural Language, sarà opportuno importare anche il modulo
language
dalla libreria google-cloud-language
. Il modulo types
contiene classi necessarie per creare richieste.
Esecuzione dell'applicazione
Qui, analizziamo semplicemente l'argomento passato per il nome file di testo e lo passiamo alla funzione analyze()
.
Autenticazione nell'API
Prima di comunicare con il servizio API Natural Language, devi autenticare il servizio utilizzando credenziali acquisite in precedenza. All'interno di un'applicazione, il modo più semplice per ottenere le credenziali è utilizzare le credenziali predefinite dell'applicazione (ADC). Per impostazione predefinita, ADC tenterà di ottenere le credenziali dal file di ambiente GOOGLE_APPLICATION_CREDENTIALS
, che deve essere impostato in modo da rimandare al file della chiave JSON dell'account di servizio. Devi aver configurato l'account di servizio e l'ambiente per utilizzare ADC nella Guida rapida. Per ulteriori informazioni, consulta Configurazione di un account di servizio.
La libreria client di Google Cloud per Python utilizza automaticamente le credenziali predefinite dell'applicazione.
Esecuzione della richiesta
Ora che il nostro servizio API Natural Language è pronto, possiamo accedervi chiamando il metodo analyze_sentiment
dell'istanza LanguageServiceClient
.
La libreria client incapsula i dettagli delle richieste e delle risposte all'API. Consulta la pagina Riferimento API Natural Language per informazioni complete sulla struttura specifica di una richiesta di questo tipo.
Questo snippet di codice esegue le seguenti attività:
- Crea un'istanza di un'istanza
LanguageServiceClient
come client. - Legge il nome file contenente i dati di testo in una variabile.
- Crea un'istanza di un oggetto
Document
con i contenuti del file. - Chiama il metodo
analyze_sentiment
del client.
Analisi della risposta
Esaminiamo la risposta per estrarre i valori di sentiment score
per ogni
frase e i valori score
e magnitude
complessivi per l'intera recensione
e li mostriamo all'utente.
Esegui l'esempio
Per pubblicare l'anteprima, lo testeremo su una serie di recensioni (false) del film "Bladerunner".
Scarica gli esempi da Google Cloud Storage:
gsutil cp gs://cloud-samples-tests/natural-language/sentiment-samples.tgz .
In genere
gsutil
viene installato come parte dellgcloud CLI. Per installare la versione più recente dellgcloud CLI, consulta la documentazione relativa all'interfaccia a riga di comando gcloud.Decomprimi questi esempi, creando una cartella "reviews":
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Esegui la nostra analisi del sentiment su uno dei file specificati:
python sentiment_analysis.py reviews/bladerunner-pos.txt Sentence 0 has a sentiment score of 0.8 Sentence 1 has a sentiment score of 0.9 Sentence 2 has a sentiment score of 0.8 Sentence 3 has a sentiment score of 0.2 Sentence 4 has a sentiment score of 0.1 Sentence 5 has a sentiment score of 0.4 Sentence 6 has a sentiment score of 0.3 Sentence 7 has a sentiment score of 0.4 Sentence 8 has a sentiment score of 0.2 Sentence 9 has a sentiment score of 0.9 Overall Sentiment: score of 0.5 with magnitude of 5.5
L'esempio sopra indica una recensione relativamente positiva
(punteggio pari a 0.5
) e relativamente emotiva (magnitudo di 5.5
).
L'analisi degli altri esempi dovrebbe produrre valori simili a quelli mostrati di seguito:
python sentiment_analysis.py reviews/bladerunner-neg.txt ... Overall Sentiment: score of -0.6 with magnitude of 3.3 python sentiment_analysis.py reviews/bladerunner-mixed.txt ... Overall Sentiment: score of 0 with magnitude of 4.7 python sentiment_analysis.py reviews/bladerunner-neutral.txt ... Overall Sentiment: score of -0.1 with magnitude of 1.8
Tieni presente che le dimensioni sono tutte simili (indicando una quantità relativamente uguale di sentiment emotivamente significativi), tranne per il caso "neutro", che indica una recensione con un sentimento non molto emotivo, né positivo né negativo. Per ulteriori informazioni sui punteggi di sentiment e sulla grandezza e su come interpretare questi valori, consulta Interpretazione dei valori dell'analisi del sentiment.
Se vuoi esplorare l'analisi del sentiment con più dati, Stanford fornisce un set di dati con le recensioni dei film di IMDB. Per recuperare queste recensioni di film:
- Scarica il set di dati di recensioni di film di grandi dimensioni.
- Decomprimi il file nella directory di lavoro. Le recensioni dei film sono divise in
pos
eneg
directory all'interno delle directory di datitrain
etest
, con ogni file di testo contenente una recensione del film. - Esegui lo strumento
sentiment_analysis.py
su uno qualsiasi dei file di testo delle recensioni dei film.
Complimenti! Hai eseguito le prime attività di inferenza utilizzando l'API Google Cloud Natural Language.