Linguistica Computazionale
|
|
|
- Barbara Testa
- 9 anni fa
- Visualizzazioni
Transcript
1 Linguistica Computazionale Laboratorio espressioni regolari (1) 30 settembre 2014
2 Cercare, ricercare Cercare una parola in un testo è semplice: ma come fare per ricerche più complesse? le parole che terminano in ato tutte e sole le sequenze di numeri che formano una data le frasi che incominciano con la parola il e terminano con la parola spesso le linee di testo che non iniziano con una lettera maiuscola le parole di almeno 4 lettere e non più di 10, la cui seconda sia una a
3 Espressioni Regolari Linguaggio standard per caratterizzare stringhe di testo (regular expressions, regex, re) definite da un matematico americano Stephen Kleene nel 1956 Strumento ideale per ricercare testo sostituire testo Molti programmi supportano le RE: Trova e Sostituisci in Word grep in Unix Emacs e altri editors di testo Perl e Python sono linguaggi di programmazione che permettono un trattamento estremamente avanzato delle RE
4 RE e Pattern Matching Il pattern matching è la forma più elementare di elaborazione di un testo: dato un testo T vengono cercate le stringhe in T che corrispondono ad un pattern p un pattern è uno schema di stringhe, ovvero definisce un insieme di stringhe di testo che soddisfano particolari criteri le parole che iniziano con la lettera maiuscola le stringhe di numeri la cui seconda cifra è 2 le linee di testo che terminano con un punto esclamativo le RE sono il linguaggio standard per specificare pattern di testo da ricercare Stringa di testo qualsiasi sequenza di caratteri alfanumerici lettere, numeri, spazi, punteggiatura, caratteri speciali, ecc. Attenzione!!! per il pattern matching, anche gli spazi, tabulazioni, ecc. contano come caratteri
5 RE in Python Uso delle espressioni regolari in Python: Si definisce un pattern tramite una RE La RE viene verificata su un testo e produce come risultato un valore booleano (true-false): true = il testo contiene una stringa che corrisponde (match) al pattern false = il testo non contiene una stringa che corrisponda al pattern Il modulo re fornisce le operazioni necessarie per il trattamento delle espressioni regolari. (
6 RE in Python Il metodo re.findall(): Restituisce una lista vuota [] se non trova corrispondenze, altrimenti restituisce la lista di tutte le sequenze di caratteri che soddisfano l espressione regolare all interno della Stringa
7 Caratteri e sequenze di caratteri Un qualsiasi carattere o sequenza di caratteri (lettere, numeri, punteggiatura, spazi, ritorno-a-capo, caratteri speciali) è una RE le RE sono case sensitive RE r testo r a r mark up r Linguistica Esempi di matching il testo del corpus il cane di Mario è nero mark up del testo markup del testo la Linguistica Computazionale la linguistica computazionale
8 Classe di caratteri Un insieme di caratteri tra parentesi quadre è una RE che definisce una classe di caratteri disgiunti RE Definizione Esempi di matching r [st] il carattere s o il carattere t la sintassi il tempo r [ ] qualsiasi cifra 2 parole r [Ll]inguistica linguistica o Linguistica la Linguistica Computazionale la linguistica computazionale ATTENZIONE!!! - Una classe di caratteri corrisponde sempre ad un solo carattere [st] il carattere s o t la sintassi il tema st la stringa st la sintassi il tema [123] il carattere 1 o 2 o la stringa di caratteri
9 Classe di caratteri Dentro una classe di caratteri è possibile specificare un intervallo di caratteri in una scala usando - : [2-5] il carattere 2 o 3 o 4 o 5 RE Definizione Esempi di matching r [a-z] qualsiasi lettera minuscola la sintassi il tempo r [0-9] qualsiasi cifra 2 parole r [a-za-z] qualsiasi lettera minuscola o maiuscola la Linguistica la linguistica Sono solo abbreviazioni: [2-5] è equivalente a [2345] [a-z] è equivalente a [abcdefghijklmnopqrstuvwxyz]
10 Classe di caratteri Dentro una classe di caratteri è possibile specificare che un pattern non deve contenere un certo carattere usando il segno ^ : [^2] qualsiasi carattere diverso da 2 RE Definizione Esempi di matching r [^a-z] qualsiasi carattere diverso da una lettera minuscola r [^st] qualsiasi carattere che non sia né s né t la Sintassi il 25% il tempo 2 parole ssssss ATTENZIONE! ^ ha valore negativo solo quando compare subito dopo la [ [2^] il carattere 2 o ^ 3^5
11 Classe di caratteri Alcune utili abbreviazioni per classi di caratteri RE r \d r \w r \s Classe di caratteri equivalente r [0-9] r [a-za-z0-9_] r [ \t\n] r \D r [^0-9] r \W r [^a-za-z0-9_] r \S r [^ \t\n] Caratteri particolari: \t tabulazione \n a capo
12 Alternativa L operatore esprime la disgiunzione tra due RE (operatore di alternativa) RE Definizione Esempi di matching r cane gatto la stringa cane oppure la stringa gatto il cane abbaia il gatto miagola ATTENZIONE! [..] esprime solo la disgiunzione tra caratteri singoli [abc] il carattere a o b o c La disgiunzione tra stringhe deve essere espressa con l operatore di alternativa ab c la stringa ab o il carattere c
13 Moltiplicatori I seguenti simboli sono usati in una RE per specificare quante volte deve comparire il carattere che li precede immediatamente: r <carattere>? il carattere precedente è opzionale (occorre 0 o 1 volta) r <carattere>* il carattere precedente occorre 0 o n volte (Kleene Star) r <carattere>+ il carattere precedente occorre 1 o n volte RE Definizione Esempi di matching r ba?rio r tokens? la stringa brio o bario (la a è opzionale) l ultimo carattere s è opzionale brio bario berio token tokens tokened
14 Moltiplicatori RE Definizione Esempi di matching r ba* r [0-9]* r [0-9][0-9]* r [0-9]+ r ba+ il carattere b seguito da 0 o n a un numero infinitamente lungo, composto da 0 a n cifre un numero infinitamente lungo che deve contenere almeno una cifra un numero infinitamente lungo che deve contenere almeno una cifra il carattere b seguito da 1 o n a b ba baa baaa baaaa baaaaa la repubblica la repubblica ba baa baaa baaaa baaaaa
15 Moltiplicatori Moltiplicatori avanzati: <carattere>{n,m} il <carattere> deve occorrere almeno n volte e al massimo m volte <carattere>{n,} il <carattere> deve comparire almeno n volte carattere>{n} il <carattere> deve comparire esattamente n volte RE Definizione Esempi di matching r a{2,3}b r a{2}b la stringa formata da almeno 2 a e al massimo da 3 a seguita da una b la stringa formata da esattamente 2 a e una b aab aaab ab aaaab aab ab aaab
16 Sostituzione di stringhe (in Python) La funzione re.sub(pattern, Repl, String) Restituisce la stringa String dove il pattern Pattern (se presente) viene sostituito dalla stringa Repl re.sub(pattern, Repl, String, Int) aggiungendo l intero Int, si esprime la volontà di sostituire solo le prime Int ripetizioni (partendo da sinistra) di Pattern all interno di String
17 Sostituzione di stringhe (esempi) NuovaStringa=re.sub(Pattern, Repl, String) Pattern Repl String NuovaStringa r é e non so il perché non so il perche r ab*c ad abbbbbbc ac ad ad r a r a i i (int=1) cavallo cavallo civillo civallo
18 Esercizi Formalizzare con le espressioni regolari i patterns per trovare le seguenti stringhe (NB: parola = sequenza di caratteri separati da spazi) tutte le vocali minuscole o maiuscole "le parole che iniziano per consonante" le parole che terminano con un segno di punteggiatura (es. "cane," "finito;" ecc.) "le parole che iniziano per "tar" o per "tr"" "Il passato prossimo del verbo mangiare" le date in cui giorno, mese e anno sono tutti espressi da numeri Usando l operatore di sostituzione "verticalizzate le parole, in modo che ogni parola venga scritta su una riga diversa
Linguistica Computazionale
Linguistica Computazionale Laboratorio espressioni regolari (2) 09 ottobre 2014 Esercizi Formalizzare con le espressioni regolari i patterns per trovare le seguenti stringhe: tutte le vocali minuscole
Lesson #4. Espressioni Regolari. Roberto De Virgilio
Lesson #4 Espressioni Regolari Roberto De Virgilio Sistemi operativi - 9 Novembre 2015 Espressioni regolari in Unix Patterns (modelli) che individuano insiemi di stringhe (linguaggi) e rappresentano uno
STRUMENTI MATEMATICI
1. TABELLA A DOPPIA ENTRATA 1 STRUMENTI MATEMATICI E' un riquadro formato da righe orizzontali e colonne verticali. I dati sulla prima colonna sono i dati in entrata di ciascuna riga; i dati sulla prima
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Laboratorio di Python
Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi
Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma
Introduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
Caratteristiche generali del linguaggio Visual Basic
Caratteristiche generali del linguaggio Visual Basic Per ottenere un aiuto contestuale dall help di Visual Basic sulla sintassi di funzioni o, oppure su proprietà, eventi o metodi, basta selezionare la
Espressioni regolari in Javascript (RegExp)
Espressioni regolari in Javascript (RegExp) Antonio Lioy < lioy @ polito.it > Politecnico i di Torino Dip. Automatica e Informatica (estensione di materiale preparato da Andrea S. Atzeni) Le espressioni
1.2d: La codifica Digitale dei caratteri
1.2d: La codifica Digitale dei caratteri 2 12 ott 2011 Bibliografia Curtin, 3.6 (vecchie edizioni) Curtin, 2.5 (nuova edizione) CR pag. 9-14 Questi lucidi 3 12 ott 2011 La codifica dei caratteri Un testo
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
Quiz sui linguaggi regolari
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi regolari Prof. Giorgio Gambosi a.a. 2016-2017 Problema 1: Data l espressione regolare a, definita su {a, b}, descrivere il linguaggio corrispondente
Programmazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
Foglio Elettronico Lezione 1
- Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in
Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve
GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE Cosimo Laneve 1 argomenti 1. linguaggi di programmazione 2. definizione formale di insiemi infiniti 3. la grammatica e la notazione BNF 4. notazioni alternative
L AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
Laboratorio di Python
Laboratorio di Python Iterazione determinata Lab05 17 Marzo 2017 Variazione data laboratorio! Mercoledì 22 marzo ci sarà laboratorio Mercoledì 3 maggio non ci sarà laboratorio (si terrà lezione regolare)
Linguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU
Tutorato di Fondamenti di Informatica PROFESSORE: GIAN LUCA MARCIALIS TUTOR: DAVIDE GHIANI, GIULIA ORRU Organizzazione Informazioni di contatto: [email protected] Davide Ghiani Giulia Orrù
STORIA E CARATTERISTICHE
IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori
Corso sul linguaggio C
Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione
Unità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
laboratorio di python
laboratorio di python iterazione in python 22 Marzo 2019 1/31 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che restituisce True se una stringa passata come parametro è palindroma
I CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
Linux e la shell Bash
DEI DEI-- Politecnico di dibari Linux e la shell Bash Esercitazione conclusiva G. Piscitelli - M. Ruta - A. Cinquepalmi Testi di riferimento: Linux e la shell Bash http://sisinflab.poliba.it/ruta/linux/linux
