[Dizionario] Collaborazioni
Andrea Sivieri
andrea.sivieri a libero.it
Mer 25 Set 2002 18:58:32 CEST
Davide ha scritto:
> Ovviamente la lingua di maggiore interesse e' l'italiano. Pero' altri gruppi
> (es. francese) stanno cercando collaborazione sull'argomento. Il problema
e' che
> gli strumenti attuali sono pensati per le lingue anglo sassoni che hanno
> declinazioni e quindi affix file decisamente meno articolate delle lingue
latine.
Si, nel caso migliore basta l'infinito per coniugare tutto il verbo,
nel caso peggiore serve una lista con tutte le forme irregolari.
> > [ Berkeley DB? ]
>
> E' tutto da definire. Nella mia testa il database dovrebbe essere
completamente
> svincolato dallo strumento di analisi linguistica. Una serie di script poi
> dovrebbero essere in grado di estrarre la wordlist e gli affix files per
> scriverli nel formato dello strumento utilizzato, in questo caso, da
> OpenOffice.org.
> Ho parlato del dizionario ma il principio si applica in generale.
Ora ho capito meglio :-)
> Il vantaggio di questo approccio e` che ci consentirebbe
appunto di avere una
> struttura dati, legata alla classificazione fatta, che memorizza le parole e
> codifica la classificazione stessa e quindi *indipendente* dallo strumento
> linguistico che si andra' ad usare.
> Ad esempio nulla vieta che si possano creare degli script per estrarre
> wordlist/affix per essere usati con ispell o myspell.
Si, questa e` la via migliore
> Per ora siamo solo all'inizio e quindi non c'e' la fila di persone. I fondi
sono
> per ora ancora virtuali e rimarranno tali almeno finche' non si metta
insieme
> un gruppetto di persone.
> Occorre pero' muoversi con una certa decisione buttando almeno giu' un po'
di
> specifiche circa il progetto che si vuole realizzare ed i tempi e quindi i
fondi
> necessari per lo sviluppo.
Si tratta in definitiva di ragionare per un po' sui requisiti,
in modo da poter definire in primo luogo specifiche adeguate. :-)
Come minimo direi che si desidera la classificazione grammaticale
di ogni possibile parola e un modo ordinato per aggregare le informazioni
elementari in gruppi di informazioni piu` complesse limitando
la ridondanza.
<free_indirect_thought>
Le forme completamente irregolari sono paradossalmente le piu`
facili da trattare, perche` non c'e` altra via che elencarle gia`
classificate.
Poi, indipendentemente dal fatto che una parola sia stata trovata
o no tra le irregolari, si prova anche a ricondurla attraverso le regole
ad una delle parole base regolari disponibili ed in questo caso
e` la regola che ha avuto successo a dover fornire una
parte della classificazione.
In sostanza:
* lista di parole base con indicazione se sono regolari o no,
classificate tra le categorie verbo, sostantivo, aggettivo, ecc.
e sottoclassificate in modo da permettere di decidere quali fra
le regole sono applicabili (usando etichette mnemoniche)
[esempi di parole base: pesce, amo (sostantivo), amare, bello, chiusa,
chiudere, semplicemente, danno (sostantivo), dare, detto (sost.)]
* lista di forme irregolari con collegamento alla parola base
corrispondente e associati gli attributi come ad esempio numero
e tempo (per i verbi) che uniti alle info della parola base
permettano di avere la classificazione completa;
[Esempi di forme verbali irregolari: dai, dando, danno,
darai, dia, diamo, detti, chiuse, debba, deva, fu, fui]
* lista di regole per passare da parola base regolare a forma completa
e viceversa (le regole applicabili dipendono dalla classificaz.
della parola base) e poi ogni regola fornisce attributi aggiuntivi per
ottenere la classificazione completa (ad esempio numero e tempo).
[Un paio di anni fa mi ero guardato come funzionano le regole
di ispell, ma ora ne ho un ricordo solo vago; di sicuro quel tipo
di regole andrebbero integrate con altre info per avere una
classificazione grammaticale completa]
Ogni lista sarebbe una sorta di tabella db, per cui
per riferirsi ad una particolare riga della lista delle parole
base si usera` l'identificatore della riga, che potrebbe
ad esempio essere la parola base stessa o nella logica
di un programma un identificatore numerico associato
alla parola per aumentare l'efficienza.
Ad esempio per i sinonimi gli "umani" costruirebbero
corrispondenze ragionando in termini di parole base,
mentre i programmi di elaborazione potrebbero aggiungere
al volo indici numerici dove conveniente (che avrebbero
il ruolo di identificatori interni per non dover operare
sistematicamente con stringhe potenzialmente lunghe)
</free_indirect_thought>
Questo nella sua banalita` e` quello che mi viene in mente
in questo momento e magari potra` essere integrato con le altre
cose che sono state discusse in passato.
Di sicuro in questa analisi top-down mi sono sfuggite anche
cose rilevanti, ma magari e` presente qualche spunto
utile per dividere il problema in problemi piu` piccoli
e trovare qualche punto fisso.
Ciao,
Andrea
Maggiori informazioni sulla lista
Dizionario