Elaborazione del linguaggio naturale con Python
eBook - ePub

Elaborazione del linguaggio naturale con Python

Ajit Singh, Elena Carretta

Condividi libro
  1. 160 pagine
  2. Italian
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Elaborazione del linguaggio naturale con Python

Ajit Singh, Elena Carretta

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Informazioni sul libro

La PNL è un settore ampio e multidisciplinare, quindi questo libro può fornire solo un'introduzione molto generale. Il primo capitolo ha lo scopo di fornire una panoramica delle principali sottoaree e una brevissima idea delle principali applicazioni e delle metodologie utilizzate. La storia della PNL viene brevemente discussa come un modo per metterla in prospettiva. I tre capitoli successivi descrivono in modo più dettagliato alcune delle principali sottoaree. L'organizzazione si basa su una maggiore "profondità" di elaborazione, a partire da tecniche relativamente orientate alla superficie e passando a considerare il significato delle frasi e il significato delle parole nel contesto. Ogni capitolo prenderà in considerazione la sottoarea nel suo insieme per poi passare a descrivere uno o più algoritmi campione che affrontano problemi particolari. Gli algoritmi sono stati scelti perché sono relativamente semplici da descrivere e perché illustrano una tecnica specifica che si è dimostrata utile, ma l'idea è quella di esemplificare un approccio, non di fornire un'indagine dettagliata (cosa che sarebbe impossibile nel tempo a disposizione). Tuttavia, altri approcci saranno talvolta discussi brevemente. Il capitolo finale riunisce il materiale precedente per descrivere lo stato dell'arte nelle applicazioni campione. Obiettivi: L'obiettivo del mio libro per gli studenti è quello di: 1. essere in grado di descrivere l'architettura e il design di base di un sistema generico di PNLP "shell". 2. essere in grado di discutere le prestazioni attuali e future di diverse applicazioni della PNL, come la traduzione automatica e la risposta via e-mail. 3. essere in grado di descrivere brevemente una tecnica fondamentale per l'elaborazione del linguaggio per diverse sottoattività, come l'analisi morfologica, l'analisi sintattica, la disambiguazione del senso della parola, ecc. ?4. Capire come queste tecniche si ispirano e si relazionano ad altre aree dell'informatica (

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Elaborazione del linguaggio naturale con Python è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Elaborazione del linguaggio naturale con Python di Ajit Singh, Elena Carretta in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Informatique e Traitement du langage naturel. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Anno
2019
ISBN
9781071501580
image
image
image

Capitolo 1: Introduzione alla PNL

image
Le persone comunicano in molti modi diversi: parlando e ascoltando, facendo gesti, usando segnali manuali specializzati (come quando si guida o dirigendo il traffico), usando le lingue dei segni per i non udenti o attraverso varie forme di testo.
Per testo si intendono le parole scritte o stampate su una superficie piana (carta, cartoncini, segnali stradali e così via) o visualizzate su uno schermo o dispositivo elettronico per essere lette dal destinatario previsto (o da chi sta passando).
Il corso si concentrerà solo sull'ultimo di questi: ci occuperemo di vari modi in cui i sistemi informatici possono analizzare e interpretare i testi, e assumeremo per comodità che questi testi siano presentati in formato elettronico. Questa è ovviamente un'ipotesi ragionevole, data l'enorme quantità di testo a cui possiamo accedere tramite il World Wide Web e la crescente disponibilità di versioni elettroniche di giornali, romanzi, libri di testo e guide tematiche. Questo capitolo introduce alcuni concetti, tecniche e terminologia essenziali che verranno applicati nel resto del corso. Alcuni materiali in questo capitolo sono un po' tecnici, ma in questa fase non è prevista alcuna programmazione.
Inizieremo considerando i testi come stringhe di caratteri che possono essere suddivisi in sottostringhe e introdurre alcune tecniche per la descrizione informale di modelli di vario tipo che si verificano nei testi. Successivamente inizieremo a motivare l'analisi dei testi in termini di strutture gerarchiche in cui elementi di vario genere possono essere incorporati l'uno nell'altro, in modo comparabile agli elementi che compongono un documento Web HTML. Questa sezione introduce alcuni strumenti tecnici come: macchine a stati finiti (FSM), espressioni regolari, grammatiche regolari e grammatiche senza contesto.
Le nozioni di base
Testo tokenizzato e Pattern matching
Una delle operazioni di base che possono essere applicate a un testo è la tokenizzazione: suddividere un flusso di caratteri in parole, segni di punteggiatura, numeri e altri elementi discreti. Quindi per esempio la stringa di caratteri
“Dr. Watson, il signor Sherlock Holmes ", ha detto Stamford, presentandoci.
Può essere tokenizzato come nell'esempio seguente, in cui ogni token è racchiuso tra virgolette singole:
`"' `Dr.' `Watson' `,' `Mr.' `Sherlock' `Holmes' `"' `,' `dice' `Stamford' `,' `introducendo' `noi' `.'
A questo livello, le parole non sono state classificate in categorie grammaticali e abbiamo pochissime indicazioni sulla struttura sintattica. Tuttavia, una discreta quantità di informazioni può essere ottenuta da un'analisi relativamente superficiale del testo tokenizzato. Ad esempio, supponiamo di voler sviluppare una procedura per trovare tutti i nomi personali in un determinato testo. Sappiamo che i nomi personali iniziano sempre con lettere maiuscole, ma ciò non è sufficiente per distinguerli dai nomi di paesi, città, aziende, cavalli da corsa e così via, o dalla capitalizzazione all'inizio di una frase. Alcuni modi aggiuntivi per identificare i nomi personali includono:
Uso di un titolo Dr., Sig., Sig.ra, Professore e così via.
Una parola in maiuscolo o parole seguite da una virgola e da un numero, di solito inferiore a 100: è un modo comune di riferirsi alle persone nei notiziari, dove il numero sta per la loro età - per esempio Pierre Vinken, 61, . . .
Una parola in maiuscolo seguita da un verbo che di solito si applica agli esseri umani: detto, riportato, rivendicato, pensato, discusso. . . Questo può sovra-generare nel caso di nomi di paesi o organizzazioni come sostiene la Corona o la Gran Bretagna ha affermato.
Possiamo esprimerli in modo più conciso come segue, dove j è il simbolo di disgiunzione, Word rappresenta una parola in maiuscolo e Int è un numero intero:
(Dr. j Professor j Mr. j Mrs. j Miss j Ms) Word
Parola Parola, Int
Parola (detto j pensiero j creduto j affermato j argomentato j ...)
L'elaborazione del linguaggio naturale (NLP) può essere definita come l'elaborazione automatica (o semi-automatica) del linguaggio umano. Il termine "PNL" è talvolta usato in modo più ristretto, eliminando spesso il recupero di informazioni e talvolta persino escludendo la traduzione automatica. La PNL a volte è in contrasto con la "linguistica computazionale", poiché la PNL è considerata più applicata. Al giorno d'oggi, i termini alternativi sono spesso preferiti, come "Tecnologia linguistica" o "Ingegneria linguistica". La lingua è spesso usata in contrasto con il linguaggio (ad esempio, la tecnologia vocale e linguistica). Ma mi riferirò semplicemente alla PNL e useremo il termine in senso lato.
La PNL è essenzialmente multidisciplinare: è strettamente legata alla linguistica (sebbene la misura in cui la PNL richiama apertamente la teoria linguistica varia considerevolmente). Ha anche collegamenti con la ricerca in scienze cognitive, psicologia, filosofia e matematica (in particolare la logica). All'interno di CS, si riferisce alla teoria formale del linguaggio, tecniche di compilazione, dimostrazione di teoremi, apprendimento automatico e interazione uomo-computer. Naturalmente è anche legato all'IA, anche se oggigiorno non è generalmente considerato come parte dell'IA.
Qualche terminologia linguistica
Il corso è organizzato in modo tale che ci siano sei lezioni corrispondenti a diverse sottoaree della PNL, passando da un'elaborazione relativamente "superficiale" a aree che implicano il significato e le connessioni con il mondo reale. Queste sottosezioni corrispondono vagamente ad alcune delle suddivisioni standard della linguistica:
  1. Morfologia: la struttura delle parole. Ad esempio, insolitamente può essere pensato come composto da un prefisso un-, uno stelo usuale e un affisso-ly. composto è composto più il suffisso in-x :una regola ortografica significa che si finisce con composto anziché composto. La morfologia sarà discussa nel capitolo 2.
  1. Sintassi: il modo in cui le parole vengono utilizzate per formare frasi, per esempio, fa parte della sintassi inglese che un risolutore come la volontà viene prima di un nome e anche che i determinanti sono obbligatori con certi nomi singolari. Gli aspetti formali e computazionali della sintassi saranno discussi in ulteriori lezioni.
  1. Semantica: la semantica composizionale è la costruzione di un significato (generalmente espresso come logica) basato sulla sintassi. La semantica composizionale è discussa nella lezione 4. Questo è in contrasto con la semantica lessicale, cioè il significato delle singole parole.
  1. Pragmatica: significato nel contesto. Anche se la linguistica e la PNL hanno in genere prospettive molto diverse qui.
Perché l'elaborazione del linguaggio è difficile?
Potresti provare a creare un sistema che risponda alle e-mail inviate dai clienti a un rivenditore che vende laptop e accessori via Internet. Ci si potrebbe aspettare che questo gestisca le query come le seguenti:
Il mio numero d'ordine 4291 è già stato spedito?
FD5 è compatibile con un 505G?
Qual è la velocità del 505G?
Si supponga che la query debba essere valutata rispetto a un database contenente informazioni su prodotti e ordini, con relazioni come le seguenti:
ORDINE
Numero ordine Data ordine Data di spedizione
4290 2/2/02 2/2/02
4291 2/2/02 2/2/02
4292 2/2/02
Il mio numero d'ordine 4291 è già stato spedito? DB QUERY: ordine (numero = 4291, data spedizione =?)
image
RISPOSTA ALL'UTENTE: il numero d'ordine 4291 è stato spedito il 2/2/02
Potrebbe sembrare abbastanza facile scrivere modelli per queste query, ma stringhe molto simili possono significare cose molto diverse, mentre stringhe molto diverse possono significare la stessa cosa. 1 e 2 sotto sembrano molto simili ma significano qualcosa di completamente diverso, mentre 2 e 3 sembrano molto diversi ma significano molto la stessa cosa.
  1. Quanto è veloce il 505G?
  2. Quanto velocemente arriverà il mio 505G?
  3. Per favore dimmi quando posso aspettarmi il 505G che ho ordinato.
Mentre alcuni compiti in PNL possono essere fatti adeguatamente senza avere alcun tipo di spiegazione del significato, altri richiedono che possiamo costruire rappresentazioni dettagliate che saranno il significato sottostante piuttosto che la stringa superficiale.
Infatti, nei linguaggi naturali (al contrario dei linguaggi di programmazione), l'ambiguità è onnipresente, quindi esattamente la stessa stringa potrebbe significare cose diverse. Ad esempio nella query:
Vendete computer portatili e unità disco Sony?
L'utente potrebbe o potrebbe non chiedere informazioni sulle unità disco Sony. Vedremo molti esempi di diversi tipi di ambiguità in queste lezioni.
image
Spesso gli umani hanno conoscenza del mondo che risolve una possibile ambiguità, probabilmente senza che chi parla o chi ascolta sia consapevole che esiste una potenziale ambiguità. Ma la codifica manuale di tale conoscenza nelle applicazioni di PNL è risultata essere incredibilmente difficile da fare per domini molto limitati: il termine AI-completo è talvolta usato (per analogia con NP-completo), il che significa che dovremmo risolvere l'intero problema di rappresentare il mondo e acquisire la conoscenza del mondo. Il termine AI-complete è inteso in modo un po' scherzoso, ma trasmette quello che è probabilmente il principio guida più importante nell'attuale PNL: stiamo cercando applicazioni che non richiedano soluzioni complete di AI: cioè quelle in cui possiamo lavorare con domini molto limitati o conoscenza approssimativa del mondo intero con tecniche relativamente semplici.
Alcune applicazioni di PNL
Il seguente elenco non è completo, ma sono stati creati sistemi utili per:
● controllo ortografico e grammaticale
● riconoscimento ottico dei caratteri (OCR)
● lettori di schermo per utenti ciechi e ipovedenti
In genere userò "ascoltatore" per indicare la persona che si trova sul lato ricevente, indipendentemente dalla modalità di trasmissione della lingua: cioè, indipendentemente dal fatto che sia parlato, firmato o scritto. Allo stesso modo, userò l' oratore per la persona che genera il discorso, il testo ecc. E l ' espressione per indicare il discorso o il testo stesso. Questa è la terminologia linguistica standard, che riconosce che la lingua parlata è primaria e i...

Indice dei contenuti