-
Notifications
You must be signed in to change notification settings - Fork 0
4. Compilazione costruzioni (preliminare)
Nella cartella sono presenti tre file da utilizzare:
- un file .conllc (il formato delle colonne per le cxn) che contiene la formalizzazione della nostra costruzione
- un file .conllu che contiene gli esempi delle costruzioni
- un file .yml (yaml) che contiene i campi per la nostra costruzione come presenti sul sito di Adopt a Construction
Il file cxn_id.conllc è unico per ogni costruzione. Va rinominato con l'ID della vostra costruzione al posto di id. Per renderlo facilmente compilabile, lo trovate in formato xlsx.
-
I campi con il cancelletto sono i metadati. Includono id, nome della cxn (che prima aveva lo 0 vicino), funzione, e un'indicazione dei link orizzontali e verticali (inserire id costruzioni linkate nel formato come in esempio). L'ultimo asterisco specifica che campi sono le varie colonne.
-
Compilate i campi che hanno l'underscore dove necessario (come abbiamo fatto con le formalizzazioni sull'excel) N.B.: rispetto alla formalizzazione che avrete sul vostro excel saranno cambiati dei campi, ordine tra i campi, quindi fate prima un check in questa wiki alla pagina Conll-X formalization (in costruzione ma ha le info necessarie per ora.)
-
Successivamente, finita la compilazione, copiate tutto (compresi metadati) com'è su un blocco note o il vostro editor di file .txt insomma, ma salvate il file col nome cxn_id (sostituire id con numero) ed estensione .conllc e non .txt
Il file examples.conllu contiene gli esempi da tutte le vostre costruzioni. Come per il file di sopra, vi conviene partire da un foglio Excel, e infatti vi includo examples.xsls per capire come deve sembrare il vostro file. Contiene frasi intere, possibilmente annotate in UD perchè provenienti da una treebank, che contengano le vostre costruzioni.
Come primo step, utilizzate Grew match per cercare esempi annotati in UD. https://universal.grew.fr/ Sulla barra a lato cercate italian e otterrete tutte le treebank dell'italiano. Per ogni treebank cercate i pattern delle vostre Cxns coi comandi a lato.
Ad esempio, io per cercare un pattern con due elementi lessicali specificati come saltare fuori , vado su n-grams, poi cerco bigrams di lemmi, e nell'espressione nel campo di ricerca sostituisco "lemma1" con "saltare", e "lemma2" con "fuori".
Trovata una frase, schiacciando sul tasto ConLL potete scaricare l'esempio annotato in ConLL. Da lì potete copiarvelo in excel e compilare tranquillamente da lì.
Se non trovate esempi su nessun corpus di italiano su Grew, è possibile usare esempi da altri corpora. In quel caso semplicemente prendete la frase intera e disponete su una colonna i token, con una colonna numerata a sinistra.
E' l'id del vostro esempio.
- Se utilizzate Grew, vi sarà dato automaticamente come primo metadato nel file conllu.
- Se utilizzate un altro corpus, aggiungete l'ID della frase. Se non è disponibile un'ID della frase, come convenzione direi di utilizzare il nome del corpus, la data e le vostre iniziali tipo: "NomeCorpus_GGMMAAAA_NC", ad es. Paisà_11072024_FP
Rappresenta la frase per intero.
- Se utilizzate Grew, vi sarà dato automaticamente come secondo metadato nel file conllu.
- Se utilizzate un altro corpus, aggiungete voi il metadato scrivendo "# text = testodellafrase".
Una volta copiato l'esempio su Excel, nella prima colonna vuota a destra va annotata la costruzione. Come?
Poniamo che la costruzione 4 è non fare altro che X: accanto a ogni elemento della costruzione nella frase va indicato ID costruzione seguito da ID elemento (dal file conllc), quindi 4A, 4B, 4C etc. Se troviamo due costruzioni in una stessa frase, ad es, poniamo che la costruzione 54 è la Cxn relativa, alcuni elementi potrebbero sovrapporsi: in caso di sovrapposizione, gli elementi di costruzioni diverse vanno separati da | . L'obiettivo sarebbe annotare più costruzioni sugli stessi esempi.
Il file cxn_id.yml è unico per ogni costruzione. Va rinominato con l'ID della vostra costruzione al posto di id. Trovate una guida di YAML a https://www.cloudbees.com/blog/yaml-tutorial-everything-you-need-get-started
Dovrebbe essere facile in ogni caso: ogni campo del sito è un attributo, e il valore da specificare sono le info da inserire. Trovate indicazioni sia nel file stesso, che sulla wiki per la compilazione dei campi. Se vi volete bene, scaricate e usate Visual Studio Code per compilare, invece dei blocchi note, ma all'atto pratico non inficia nulla usare un qualsiasi editor di testo.
Nel pratico, quello che vi serve per la sintassi credo sia riassumibile nei prossimi sottoparagrafi:
Si possono specificare tranquillamente come stringa dopo i due punti. Ad es.:
category-tag: adjective
- Nel campo cxn-machine-readable-formalization va messo come stringa il nome del file conllc, ad es: cxn_1.conllc
Si possono utilizzare le liste quando si ha più di un'etichetta. Ad esempio in Usage, potremmo avere sia Spoken che Non-Standard. Abbiamo due possibilità per esprimere questa cosa:
usage: ["Spoken", "Non-Standard"]
oppure
usage:
- "Spoken"
- "Non-Standard"
In questo secondo caso ogni elemento della lista è indentato per indicare che fa sempre parte dell'attributo usage (si indenta con un tab, non fatelo con gli spazi, pls)
- Nel campo examples inseriamo come elementi della lista gli id degli esempi nel vostro file di esempi, e non il nome del file.
Si compila col testo tranquillamente. Per comodità, direi di racchiudere tutto il testo tra double quotes ("). Inoltre, può essere comodo evitare di andare lunghi sulla riga e separare il testo andando a capo. Per farlo si può usare l'operatore > come in esempio:
bar: >
"this is not a normal string it
spans more than
one line
see?"
Questo però non farà visualizzare gli a capo poi nella resa sul sito. Se invece VOLETE preservare i vostri a capo, usate >+
bar: >+
"this is not a normal string it
spans more than
one line
see?"
Ad ogni modo indentate con tab tutto quello che è il valore di un attributo (come vedete negli esempi, il testo è sempre più "interno" del nome dell'attributo)
Il valore Null si esprime con la tilde (~). Da usare quando un campo rimane vuoto.