Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
TEORIE E TECNICHE DEL RICONOSCIMENTO
Espressioni regolari in Python Uso di espressioni regolari in NLP
2
Espressioni regolari Cosa sono: un linguaggio sviluppato per eseguire ricerche su testi E per operare TRASFORMAZIONI su questi testi sulla base di queste ricerche Esempio: espressione per cercare tutte le parole in un corpus che finiscono in ‘ed’ [w for w in wordlist if re.search(‘ed$’,w)]
3
Principali caratteristiche del linguaggio delle espressioni regolari
Disgiunzione [0-9] \d Ripetizione [0-9]+ Negazione [^5]
4
Metacaratteri Base: [,],+,*,^
Metacaratteri che specificano caratteri non stampabili \n \t Metacaratteri che specificano disgiunzioni particolarmente comuni \d (= [0-9]) \s (= [ \t\n\r\f\v]) \w (= [a-zA-Z0-9_]) . = ‘qualsiasi carattere’ Metacaratteri che specificano negazioni \D (= [^0-9]) \S Ripetizione: Home-?brew a/{1,3}b
5
Altri metacaratteri Fine stringa: $ ‘ed$’ Inizio stringa: ^ ‘^..j..’
6
Backlash Un metacarattere usato per includere metacaratteri nelle espressioni regolari Per cercare ‘*’: \* Per cercare i punti: \.
7
Espressioni regolari in Python
Libreria: re import re Match: search()
8
Uso di search() [w for w in wordlist if re.search(‘ed$’,w)]
9
search() con altri metacaratteri
Nltk cap.3, p 12
10
Altri tipi di match match() findall()
Cerca pattern all’inizio di una parola findall() Cerca tutte le istanze del pattern
11
Uso di findall() Nltk cap.3, p 13
12
findall() per stemming
>>> re.findall(r'^.*(?:ing|ly|ed|ious|ies|ive|es|s|ment)$', 'processing') ['processing'] >>> re.findall(r'^(.*)(ing|ly|ed|ious|ies|ive|es|s|ment)$', 'processing') [('process', 'ing')]
13
findall() per stemming
Nltk cap.3, p 15
14
‘top level’ e ‘pattern level’
Finora abbiamo visto l’uso di operazioni di ricerca in re al ‘top level’ In realta’ queste operazioni sono implementate utilizzando operazioni a piu’ basso livello che data una espressione regolare ne compilano un oggetto di tipo ‘pattern’
15
compile() e match() p = re.compile(‘[a-z]+’) m = p.match(‘gatto’)
m.group() m.span()
16
Livello di modulo o livello di pattern
Se l’espressione regolare e’ usata in un solo punto del codice, meglio espressioni ad alto livello Altrimenti compilare
17
Normalizzazione e tokenizzazione usando espressioni regolari
L’uso principale delle espressioni regolari in linguistica computazionale e’ nel preprocessing dei testi: Normalizzazione (= eliminazione di ‘rumore’, adozione di forme standard) Tokenizzazione
18
Tokenizzazione NLTK, cap. 3, p.17
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.