[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