Elaborazione del linguaggio naturale con Python
eBook - ePub

Elaborazione del linguaggio naturale con Python

Ajit Singh, Elena Carretta

Share book
  1. 160 pages
  2. Italian
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Elaborazione del linguaggio naturale con Python

Ajit Singh, Elena Carretta

Book details
Book preview
Table of contents
Citations

About This Book

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 (

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Elaborazione del linguaggio naturale con Python an online PDF/ePUB?
Yes, you can access Elaborazione del linguaggio naturale con Python by Ajit Singh, Elena Carretta in PDF and/or ePUB format, as well as other popular books in Ciencia de la computación & Procesamiento del lenguaje natural. We have over one million books available in our catalogue for you to explore.

Information

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...

Table of contents