Pubblico
Questo tutorial è progettato per consentirti di iniziare rapidamente a esplorare e sviluppare applicazioni con l'API Cloud Natural Language. È pensato per chi ha dimestichezza con la programmazione di base, anche se dovresti riuscire a seguire anche senza molte conoscenze in materia. Dopo aver seguito questo tutorial, dovresti essere in grado di utilizzare la documentazione di riferimento per creare le tue applicazioni di base.
Questo tutorial illustra la procedura per creare un'applicazione di linguaggio naturale utilizzando codice Python. Lo scopo non è spiegare le librerie client Python, ma spiegare come effettuare chiamate all'API Natural Language. Le applicazioni in Java e Node.js sono essenzialmente simili. Consulta la sezione Samples dell'API Natural Language per esempi in altre lingue (incluso l'esempio in questo tutorial).
Prerequisiti
Questo tutorial ha diversi prerequisiti:
- Hai configurato un progetto Cloud Natural Language nella console Google Cloud.
- Hai configurato il tuo ambiente utilizzando Credenziali predefinite dell'applicazione nella console Google Cloud.
- Hai familiarità con Python nella programmazione della console Google Cloud.
- Hai configurato l'ambiente di sviluppo Python. Ti consigliamo di installare sul tuo sistema la versione più recente di Python,
pip
evirtualenv
. Per le istruzioni, consulta la Guida alla configurazione dell'ambiente di sviluppo Python per la piattaforma Google Cloud. - Hai installato la libreria client Google Cloud per Python
Panoramica
Questo tutorial illustra un'applicazione di base di Natural Language che utilizza le richieste classifyText
per classificare i contenuti in categorie insieme a un punteggio di attendibilità, ad esempio:
category: "/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons"
confidence: 0.6499999761581421
Per visualizzare l'elenco di tutte le etichette di categoria disponibili, consulta Categorie.
In questo tutorial, creerai un'applicazione per eseguire le seguenti attività:
- Classifica più file di testo e scrivi il risultato in un file di indice.
- Elabora il testo della query di input per trovare file di testo simili.
- Elabora le etichette delle categorie di query inserite per trovare file di testo simili.
Il tutorial utilizza contenuti di Wikipedia. Potresti creare un'applicazione simile per elaborare articoli di notizie, commenti online e così via.
File di origine
Puoi trovare il codice sorgente del tutorial negli esempi della libreria client Python su GitHub.
Questo tutorial utilizza un testo di origine di esempio di Wikipedia. Puoi trovare i file di testo di esempio nella directory resources/texts del progetto GitHub.
Importazione di librerie
Per utilizzare l'API Cloud Natural Language, devi importare il
modulo language
dalla libreria google-cloud-language
. Il modulo language.types
contiene le classi necessarie per la creazione delle richieste. Il modulo language.enums
viene utilizzato per specificare il tipo di testo inserito. Questo tutorial
classifica i contenuti in testo normale (language.enums.Document.Type.PLAIN_TEXT
).
Per calcolare la somiglianza tra i testi in base alla classificazione dei contenuti risultante, questo tutorial utilizza numpy
per i calcoli vettoriali.
Python
Per scoprire come installare e utilizzare la libreria client per Natural Language, consulta Librerie client di Natural Language. Per saperne di più, consulta la documentazione di riferimento dell'API Natural Language Python.
Per autenticarti a Natural Language, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Passaggio 1: Classificazione dei contenuti
Puoi utilizzare la libreria client Python per inviare una richiesta all'API Natural Language per classificare i contenuti. La libreria client Pythoncapsula i dettagli delle richieste e delle risposte dell'API Natural Language.
La funzione classify
nel tutorial chiama il metodo classifyText
dell'API Natural Language, creando prima un'istanza della classe LanguageServiceClient
e poi chiamando il metodo classify_text
dell'istanza LanguageServiceClient
.
La funzione classify
del tutorial classifica solo i contenuti di testo per questo
esempio. Puoi anche classificare i contenuti di una pagina web passando il codice HTML di origine della pagina come text
e impostando il parametro type
su language.enums.Document.Type.HTML
.
Per ulteriori informazioni, consulta la sezione Classificare i contenuti. Per informazioni dettagliate sulla struttura delle richieste all'API Natural Language, consulta il riferimento di Natural Language.
Python
Per scoprire come installare e utilizzare la libreria client per Natural Language, consulta Librerie client di Natural Language. Per saperne di più, consulta la documentazione di riferimento dell'API Natural Language Python.
Per autenticarti a Natural Language, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Il risultato restituito è un dizionario con le etichette delle categorie come chiavi e i punteggi di affidabilità come valori, ad esempio:
{
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
}
Lo script Python del tutorial è organizzato in modo da poter essere eseguito dalla riga di comando per esperimenti rapidi. Ad esempio, puoi eseguire:
python classify_text_tutorial.py classify "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Passaggio 2: Indicizzare più file di testo
La funzione index
nello script del tutorial riceve come input una directory contenente più file di testo e il percorso di un file in cui viene archiviato l'output indicizzato (il nome file predefinito è index.json
). La funzione index
legge i contenuti di ogni file di testo nella directory di input e poi li passa all'API Cloud Natural Language per la classificazione in categorie di contenuti.
Python
Per scoprire come installare e utilizzare la libreria client per Natural Language, consulta Librerie client di Natural Language. Per saperne di più, consulta la documentazione di riferimento dell'API Natural Language Python.
Per autenticarti a Natural Language, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
I risultati dell'API Cloud Natural Language per ogni file sono organizzati in un unico dizionario, serializzati come stringa JSON e poi scritti in un file. Ad esempio:
{
"android.txt": {
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
},
"google.txt": {
"/Internet & Telecom": 0.5799999833106995,
"/Business & Industrial": 0.5400000214576721
}
}
Per indicizzare i file di testo dalla riga di comando con il nome file di output predefinitoindex.json
, esegui il seguente comando:
python classify_text_tutorial.py index resources/texts
Passaggio 3: Esegui una query sull'indice
Eseguire query con le etichette delle categorie
Una volta creato il file indice (nome file predefinito = index.json
), possiamo eseguire query sull'indice per recuperare alcuni nomi file e i relativi punteggi di attendibilità.
Un modo per farlo è utilizzare un'etichetta di categoria come query, come viene fatto nel tutorial con la funzione query_category
. L'implementazione delle funzioni di supporto, come similarity
, è disponibile nel file classify_text_tutorial.py
. Nelle tue applicazioni, il ranking e il punteggio di somiglianza devono essere progettati con attenzione in base a casi d'uso specifici.
Python
Per scoprire come installare e utilizzare la libreria client per Natural Language, consulta Librerie client di Natural Language. Per saperne di più, consulta la documentazione di riferimento dell'API Natural Language Python.
Per autenticarti a Natural Language, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per un elenco di tutte le categorie disponibili, vedi Categorie.
Come prima, puoi chiamare la funzione query_category
dalla riga di comando:
python classify_text_tutorial.py query-category index.json "/Internet & Telecom/Mobile & Wireless"
Dovresti vedere un output simile al seguente:
Query: /Internet & Telecom/Mobile & Wireless
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.665573579045
Filename: google.txt
Similarity: 0.517527175966
Filename: gcp.txt
Similarity: 0.5
Query con testo
In alternativa, puoi eseguire query con testo che potrebbe non far parte del testo indicizzato. La funzione query
del tutorial è simile alla funzione query_category
, con il passaggio aggiuntivo di effettuare una richiesta classifyText
per l'input di testo e utilizzare i risultati per eseguire query sul file dell'indice.
Python
Per scoprire come installare e utilizzare la libreria client per Natural Language, consulta Librerie client di Natural Language. Per saperne di più, consulta la documentazione di riferimento dell'API Natural Language Python.
Per autenticarti a Natural Language, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per farlo dalla riga di comando, esegui:
python classify_text_tutorial.py query index.json "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Viene stampato qualcosa di simile al seguente:
Query: Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice.
Category: /Internet & Telecom, confidence: 0.509999990463
Category: /Computers & Electronics/Software, confidence: 0.550000011921
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.600579500049
Filename: google.txt
Similarity: 0.401314790229
Filename: gcp.txt
Similarity: 0.38772339779
Passaggi successivi
Con l'API di classificazione dei contenuti puoi creare altre applicazioni. Ad esempio:
Classifica ogni paragrafo di un articolo per vedere la transizione tra gli argomenti.
Classifica i contenuti con timestamp e analizza la tendenza degli argomenti nel tempo.
Confronta le categorie di contenuti con il relativo sentiment utilizzando il metodo
analyzeSentiment
.Confronta le categorie di contenuti con le entità menzionate nel testo.
Inoltre, puoi utilizzare altri prodotti della piattaforma Google Cloud per semplificare il flusso di lavoro:
Nell'applicazione di esempio per questo tutorial abbiamo elaborato file di testo locali, ma puoi modificare il codice per elaborare i file di testo archiviati in un bucket Google Cloud Storage passando un URI Google Cloud Storage al metodo
classify_text
.Nell'applicazione di esempio per questo tutorial, abbiamo archiviato il file di indice localmente e ogni query viene elaborata leggendo l'intero file di indice. Ciò significa una latenza elevata se hai una grande quantità di dati indicizzati o se devi elaborare numerose query. Datastore è una scelta naturale e pratica per archiviare i dati dell'indice.