import re file = open('testi/ldt-1.5.xml', 'r') dati = file.read() dati= re.findall(r'word id=\".*?\" form=\"(.*?)\" lemma=\"(.*?)\" postag=\"(.)(.)(.)(.)(.)(.)(.)(.)(.)', dati) print(dati[18]) print(dati[18][0]) parola_esempio=dati[18] print(parola_esempio[0]) print(parola_esempio[1]) print(parola_esempio[2]) print(parola_esempio[6])
L'oggetto “dati” creato con le espressioni regolari (r. 4) è una lista di oggetti (per la precisione di tuple python), ciascuno dei quali corrisponde a una parola del corpus. Ad es. il diciannovesimo elemento contenuto in “dati”, visualizzabile con l'istruzione print dati[18]
, apparirà come ('adspirate', 'adspiro', 'v', '2', 'p', 'p', 'm', 'a', '-', '-', '-')
, cioè adspirate, forma flessa appartenente al lemma adspiro, parte del discorso = verbo, persona = seconda, numero = plurale, tempo = presente, modo = imperativo, diatesi = attiva, genere = -, caso = -, grado = -.
L'elemento xml corrispondente ha la forma seguente:
<word id="11" form="adspirate" lemma="adspiro" postag="v2ppma---" head="13" relation="PRED_CO" />
Dato che l'espressione regolare che abbiamo utilizzato non registra né il campo id
né le annotazioni sintattiche head
e relation
, i campi degli oggetti-parola creati risultano organizzati secondo il seguente prospetto (i simboli dipendono dal sistema di annotazione del corpus LDT):
Per conoscere quindi il valore della categoria grammaticale di modo di una parola occorre quindi visualizzare il campo 6 (parola_esempio[6]
, cf. r.11); il valore restituito, ossia 'm', indica il modo imperativo.