• Non ci sono risultati.

Dopo la descrizione generale del progetto e degli strumenti utilizzati per il suo sviluppo, entreremo nel merito delle principali caratteristiche evidenziandone la struttura, la logica di funzionamento e gli sviluppi futuri.

N/A
N/A
Protected

Academic year: 2021

Condividi "Dopo la descrizione generale del progetto e degli strumenti utilizzati per il suo sviluppo, entreremo nel merito delle principali caratteristiche evidenziandone la struttura, la logica di funzionamento e gli sviluppi futuri."

Copied!
41
0
0

Testo completo

(1)

Il Progetto

Questo capitolo vuole presentare le idee seguite nella progettazione di un sistema di word prediction e descrivere la struttura del lavoro di realizzazione del modulo di predizione e della sua interazione con un editor di testo.

Dopo la descrizione generale del progetto e degli strumenti utilizzati per il suo sviluppo, entreremo nel merito delle principali caratteristiche evidenziandone la struttura, la logica di funzionamento e gli sviluppi futuri.

4.1 Contributi di Questa Tesi

Il lavoro affrontato in questa tesi `e stato frazionato in tre parti ben distin- te. La prima fase `e consistita nella riorganizzazione del prototipo esistente, in modo da renderlo modulare ed ampliabile, tenendo sempre presente le caratteristiche di efficienza necessarie ad un sistema per il trattamento del linguaggio naturale. Successivamente ci siamo concentrati sulla fase imple-

112

(2)

mentativa di un modulo indipendente per la predizione e di un’applicazione per l’editing del testo che, interagendo con tale modulo, incorpora i vantag- gi derivati dalla predizione. Nella terza fase ci siamo dedicati al testing di questo strumento su diversi vocabolari in modo da mettere alla prova l’in- dipendenza, ma soprattutto in modo da verificare l’utilizzo con dizionari “a tema” (economico, medico, scientifico) o personalizzati (per esempio adatti per la scrittura di una semplice email confidenziale o di lettere formali).

Ulteriori contributi nella realizzazione del sistema sono:

• il miglioramento delle funzionalit` a di predizione a livello di parola;

• l’introduzione di un processo di predizione a livello di carattere;

• la reimplementazione delle ricerche ricorsive nei dizionari (attraverso visite delle strutture a doppio albero, come visto nella Sezione 3.2.2);

• il perfezionamento del controllo della fase di cancellazione;

• l’ottimizzazione della gestione delle triple e backtracking (inteso come tutta una serie di operazioni per la determinazione della parola, o tripla, pi` u probabile).

4.2 Descrizione Generale

Nel precedente progetto ASA [3] `e stato sviluppato il prototipo di un modulo

di predizione di cui si `e cercato di misurare l’efficienza. Alla luce dei risultati

(3)

ottenuti e allo stato dell’arte delle tecnologie che governano il trattamento del linguaggio naturale nel campo della predizione, si `e deciso di ripensare l’intero progetto per farlo diventare una libreria integrabile in qualunque sistema che richieda i servizi di predizione.

La disponibilit` a di una libreria permette di suddividere la logica e le funzionalit` a legate all’applicazione utente dalla predizione stessa, comprese dunque le risorse linguistiche necessarie (triple, grammatica e dizionario). ` E stato quindi sviluppato un componente aggiuntivo, LxsPrd (Lexical Studio Prediction), ed aggiunto nell’architettura esistente di Lexical Studio. Questo componente `e interrogabile direttamente dall’esterno in quanto incapsula ed esporta solo le funzioni utili alla predizione.

Il componente di predizione realizza due importanti obiettivi:

• la copertura quasi totale del lessico;

• la concordanza sintattica delle forme lessicali.

Entrambi i punti valorizzano il progetto e sono realizzabili grazie alla pos- sibilit` a di accedere alle risorse linguistiche di Synthema presentate nel capi- tolo precedente. Grazie all’uso del Dizionario Generale `e possibile ottenere la copertura del lessico, mentre le concordanze sintattiche sono assicurate attraverso l’appicazione della Grammatica Statistica a Triple.

Il sistema `e stato progettato per essere dotato di un algoritmo di au-

toapprendimento che, durante il funzionamento, riesca a tener traccia del

(4)

lessico e dello stile di composizione personale dell’utente. Questo genere di informazione risulta preziosa al fine di generare un processo di predizione sempre pi` u accurato ed efficace. Dopo un periodo di addestramento, una funzionalit` a di autoapprendimento pu` o rivelarsi particolarmente utile per un utente disabile poich´e il lessico di riferimento pu` o essere alquanto ristretto e quindi maggiormente predicibile.

Inoltre il modulo pu` o essere integrato in ogni applicazione, come vedremo nel dettaglio nella sezione successiva.

4.2.1 Il Predittore: Architettura del Sistema

Come precedentemente accennato, abbiamo scelto di sviluppare il preditto- re come componente ulteriore dell’architettura di Lexical Studio (visto nel Capitolo 3). In Figura 4.1 `e mostrato il modulo di predizione, LxsPrd, in re- lazione all’ambiente basato su tecnologia Synthema. In particolare si faccia attenzione al livello superiore che assume il componente in questione: in- fatti, mentre l’intero ambiente Lexical Studio integra diversi strumenti per il trattamento del linguaggio naturale, il nostro modulo si serve soltanto di una parte di suddetti strumenti (come il dizionario).

Figura 4.1: Architettura del sistema.

(5)

Figura 4.2: Architettura del sistema.

In fase di progettazione `e stato fatto riferimento ad una interazione con una tastiera virtuale sviluppata e brevettata dall’Universit` a di Padova. Di- saControl 1 (Figura 4.3) serve ad interfacciarsi con l’ambiente Microsoft Win- dows in modo da essere il tramite tra la persona con disabilit` a motorie e i vari applicativi. Si tratta, infatti, di un software capace di emulare la ta- stiera utilizzando il mouse o dei sensori esterni. In linea generale, data una tastiera virtuale come DisaControl, si `e supposto che un potenziale utente disabile possa eseguire le seguenti azioni:

• inserire 2 un carattere alfabetico, sia esso minuscolo (a-z) o maiuscolo (A-Z);

• inserire un carattere numerico (0-9);

• inserire un elemento di fine parola, come uno spazio, o un elemento di fine frase, come un punto;

1

La versione 2.0, aggiornata a settembre 2004, `e scaricabile al sito http://www.disaworld.net.

2

Si ritiene che l’inserimento avvenga in maniera sequenziale. Dunque non `e possibile

inserire alcun carattere all’interno di una parola; ad esempio, se il termine corretto `e “ma”,

non sar` a possibile inserire niente tra m e a.

(6)

• inserire un qualsiasi altro carattere;

• scegliere un elemento nella lista delle parole suggerite;

• scegliere un carattere tra quelli suggeriti;

• cancellare 3 un carattere.

Figura 4.3: La tastiera virtuale DisaControl.

Dunque, un modulo di predizione dovr` a essere in grado di:

• ricevere gli eventi dalla tastiera virtuale;

• gestire le richieste della tastiera / dell’utente;

• tenere traccia del testo corrente in uno stato interno;

• effettuare le ricerche nel dizionario e filtrare i risultati;

• aggiornare il meccanismo delle triple;

• inizializzare opportunamente le strutture dati e le risorse linguistiche quando necessario;

3

Consideriamo solo il caso di cancellazione all’indietro carattere per carattere: risulta

infatti alquanto poco utile per il momento il caso di cancellazione sparsa per il testo

mantenendo attivo il sistema di predizione.

(7)

• inviare alla tastiera virtuale le liste delle parole e dei caratteri che dovranno essere suggeriti.

Naturalmente quanto detto non `e valido solo per un’interazione tra pre- dittore e una tastiera virtuale; il processo di predizione offerto pu` o essere utilizzato da un qualsiasi editor di testo che ne richiede le funzionalit` a. Lo scambio di informazioni tra il modulo di predizione e la controparte, sia essa una tastiera virtuale o un comune text editor, `e esprimibile attraverso lo schema in Figura 4.4. In questo modo viene creata una comunicazione client-server tra il componente di predizione e l’utente.

Figura 4.4: Scambio di informazioni.

Utilizzando un meta-linguaggio `e possibile descrivere i protocolli di co- municazione come segue:

• a seconda di quali sono le azioni dell’utente, la tastiera virtuale (pren-

diamo in considerazione questa per semplicit` a) comunicher` a al pre-

dittore l’inserimento o la cancellazione di un carattere o la scelta di

un suggerimento, considerando che la scelta di un carattere tra quelli

(8)

suggeriti equivale al semplice inserimento di quell’elemento nel testo (Figura 4.5).

Tastiera Virtuale

InserisciCarattere(c)

ScegliSuggerimento(s) CancellaCarattere()

Figura 4.5: Le possibili azioni di un utente di una tastiera virtuale.

• il predittore, in base alle “richieste” ricevute dovr` a effettuare le opera- zioni tali da tenere lo stato aggiornato e allineato con il testo prodotto dall’utente in modo da poter adeguare la grammatica a triple. In que- sto modo `e possibile mettere in atto tutto il processo di predizione e restituire alla tastiera virtuale i vari suggerimenti, parole e caratteri (Figura 4.6).

Modulo di Predizione

AggiornaTriple() SuggerisciParole() SuggerisciCaratteri() Figura 4.6: Le principali funzioni esportate dal predittore.

• inoltre, internamente, il modulo di predizione dovr` a prevedere altre

funzionalit` a per poter classificare le parole scelte ed inserite, per fare

le ricerche nel dizionario, per ricercare le triple pi` u probabili nelle

strutture, oltre che per inizializzare (o ripristinare) l’intero sistema.

(9)

Figura 4.7: Interazione tra DisaControl ed un Text Editor.

Figura 4.8: DisaControl dopo l’inserimento del carattere ‘L’.

La tastiera virtuale DisaControl, come mostrato in Figura 4.7, fornisce

un sistema di suggerimento del carattere e della parola. Tuttavia non si

pu` o parlare di predizione, come si pu` o notare, infatti, nelle Figure 4.8, 4.9 e

4.10. Nella prima figura si osserva che dopo l’inserimento del carattere ‘L’,

DisaControl suggerisce un’altra ‘L’ tra i caratteri possibili nonostante non

esistano parole in italiano che iniziano con “LL”. Nella Figura 4.9, dopo aver

scritto “La r ”, appare chiaro che le parole suggerite dal sistema non sono

tutte della stessa categoria grammaticale ed inoltre i suggerimenti non sono

(10)

Figura 4.9: DisaControl dopo l’inserimento del carattere ‘R’.

Figura 4.10: I suggerimenti di DisaControl dopo aver digitato “La rag”.

del tutto concordi in genere con il resto della frase (ad esempio “rabarbaro”

non `e concorde con “la”). La concordanza non `e rispettata neanche in numero, come `e possibile vedere dall’esempio in Figura 4.10, dove viene suggerito sia “ragazza” che “ragazze”.

4.2.2 Strumenti Utilizzati

In questa sezione daremo una rapida descrizione degli strumenti usati per

lo sviluppo del progetto. Le scelte di implementazione eseguite hanno por-

tato a realizzare il predittore utilizzando l’ambiente Microsoft Windows, il

(11)

linguaggio C++ e la libreria LxsApi, ovvero le API (Application Program- ming Interfaces) di Lexical Studio. Tali API hanno permesso al modulo di predizione di integrarsi con gli altri strumenti utili come il dizionario e le tri- ple. Inoltre, per l’interfaccia grafica di test, sono state preferite le Microsoft Foundation Classes (MFC), uno dei pi` u diffusi framework di applicazione.

C++ ha permesso di astrarre problemi ad alto livello a vantaggio della chiarezza, dell’espandibilit` a e della semplicit` a di manutenzione, al tempo stesso senza perdita di efficienza.

Le risorse linguistiche sviluppate con Lexical Studio possono successi- vamente essere esportate verso altri standard descrittivi, con la semplice definizione dei criteri di trasformazione di formato, oppure si possono di- rettamente impiegare in applicazioni sviluppate con Lexical System Libra- ry. Inoltre, attraverso una semplice interfaccia utente `e possibile costruire, modificare e testare le risorse quali il linguaggio, il lessico e la grammatica.

Per la fase di testing, oltre al dizionario generale, `e stato creato un dizionario ristretto alle parole frequenti (si veda la Sezione 4.3.1 per ulteriori informazioni) per valutare i possibili risultati. La generazione del dizionario suddetto `e avvenuta con l’ausilio dell’ambiente Lexical Studio.

4.3 Analisi e Scelte di Implementazione

Inizialmente `e stata compiuta una fase di analisi affiancata da un esame

dettagliato del prototipo ASA. Al termine di questa fase siamo giunti alla

(12)

conclusione che erano necessarie delle scelte riguardo la dimensione del di- zionario e la gestione delle triple. ` E sorta, inoltre, la necessit` a di un migliore sistema di backtracking per il controllo dei filtri sintattici. Inoltre sono state introdotte molte funzioni, mentre altre gi` a presenti nel prototipo sono state ridefinite ed ottimizzate.

4.3.1 Dizionario e Dimensioni

Il vocabolario della lingua italiana `e un insieme molto vasto: si pensi che il Dizionario Generale di Synthema comprende circa 43.800 lemmi, 876.000 forme e 1.165.000 classificazioni. Cos`ı come pensato, un sistema di predi- zione ha l’obiettivo di accelerare la composizione del testo. Per questo, un dizionario molto capiente offre s`ı la massima copertura del lessico, ma im- pone dei rallentamenti durante le fasi di ricerca. Si `e pensato, dunque, di restringere il vocabolario ad un insieme di parole “pi` u frequenti”.

Le dimensioni del dizionario sono state prese in analisi cercando di ca-

pire quali possono essere i vantaggi di un vocabolario vasto rispetto ad uno

ristretto. Inizialmente si `e pensato di lasciare l’intero dizionario generale,

ma di fronte a molti suggerimenti poco adatti e al vincolo di dover restrin-

gere le parole suggerite a poche unit` a, si `e voluto generare un dizionario di

dimensioni ridotte.

(13)

La generazione `e stata possibile poich´e il Dizionario Generale distingue ogni parola attraverso degli attributi indentificati con le seguenti etichette:

• FREQ: le parole molto frequenti di maggiore utilizzo;

• UDED: parole ad alto uso;

• DISP: sono tutte quelle parole che vengono dette o scritte di rado, ma che vengono usate in contesti pi` u informali o che pensiamo fre- quentemente. Poich´e molti corpora significativi sono basati su testi giornalistici o di natura letteraria, molte parole conosciute non rien- trano nei primi due insiemi. Ne sono esempi “tegola” e “padella”: esse sono parole comuni di cui tutti conoscono il significato, ma che non risultano presenti nei suddetti corpora;

• RARE: ogni altro termine del dizionario.

Considerando che il Dizionario Generale possiede queste informazioni ag- giuntive, `e stato generato un dizionario (chiamato ITAFREQ), di dimensioni ridotte, formato dalle parole frequenti (ovvero quelle con attributo FREQ).

Naturalmente questa scelta `e stata pensata per un’ottimizzazione delle pre-

stazioni del modulo di predizione, che invece `e stato ideato per funzionare

su un qualsiasi dizionario. Il dizionario ITAFREQ `e formato da circa 2.454

lemmi, 175.973 forme e 244.733 classificazioni.

(14)

4.3.2 Gestione dei Suggerimenti

Come abbiamo visto nei capitoli precedenti, il processo di predizione svilup- pato si basa su triple di classificazioni sintattiche che faranno da filtro alle parole ricercate nel dizionario. A seconda dell’ordine della parola inserita il procedimento si evolve in questo modo:

• prima parola della frase: poich´ e non `e possibile fare a priori alcuna assunzione sulla categoria grammaticale della prima parola, i suggeri- menti proposti saranno estratti dall’intero dizionario senza alcun filtro particolare ma considerando soltanto i caratteri iniziali inseriti;

• seconda parola della frase: dopo che l’utente ha composto la prima parola, siamo in grado di classificarla e ricavare le possibili categorie sintattiche. Cos`ı facendo possiamo effettuare la ricerca di tutte le cop- pie di classificazioni possibili, fissando il primo elemento alla categoria sintattica della prima parola composta. Da questa ricerca verr` a pre- sa la classificazione pi` u probabile per la seconda parola in modo da restringere statisticamente i risultati per la ricerca nel dizionario. In questo modo filtreremo i suggerimenti considerando quelli concordanti con la classificazione trovata;

• terza parola e successive: dalla terza parola della frase in poi, pos-

sediamo tutti gli elementi necessari per mettere in atto la predizione

sfruttando pienamente le triple. Infatti `e possibile predire la Part-

(15)

of-Speech pi` u probabile della parola che l’utente sta inserendo, consi- derando le classificazioni dei due termini precedenti e ricercando, tra tutte le triple con i primi due elementi uguali a queste classificazioni, le triple con probabilit` a pi` u alta.

La gestione dei suggerimenti si basa su operazioni per la ricerca e l’in- terpretazione delle singole classificazioni (in forma di sestupla, come visto nella Sezione 3.5 del capitolo precedente).

Una funzione fulcro dell’intero sistema `e quella che permette di ottenere tutte le classificazioni di una certa parola, funzione ovviamente gi` a presente nella tecnologia Synthema. La struttura nella quale vengono memorizzate le possibili classificazioni `e da considerarsi logicamente come una lista di array dove ogni elemento della lista corrisponde ad una parte della frase, mentre ogni elemento dell’array rappresenta una possibile sestupla per la parola stessa. Gli array sono ordinati in base ai valori di probabilit` a (“la”

articolo sar` a pi` u probabile infatti di “la” sostantivo). Inoltre ogni tripla possiede un valore di probabilit` a ottenuto come frequenza, normalizzata, data dal numero di occorrenze della tripla nel corpus. Questa struttura si pu` o pensare come quella in Figura 4.11.

Inoltre `e stata realizzata un funzione di backtracking capace di correggere

il processo di predizione qualora i suggerimenti proposti non siano concor-

di con quello che intende scrivere l’utente. La fase di backtracking esegue

semplicemente lo scorrimento delle possibili classificazioni per ricavare tut-

(16)

RDFS00

NDFS00

NPF3O3

SCFSFS VEN3II

SCFSFS

SCMIMI

La casa era ...

Figura 4.11: Struttura logica di una tripla di classificazioni.

te le combinazioni ottenibili. Per meglio comprendere questo importante passaggio, osserviamo prima la struttura delle classificazioni.

Consideriamo per esempio di voler comporre la frase “il letto era rifatto”.

Alla prima parola non si presenta alcun problema di backtracking poich´e

l’articolo “il” non `e ambiguo ed ha un’unica classificazione. Per la seconda

parola (“letto”), si pensi che la classificazione non sia il sostantivo, ma il

verbo (participio passato del verbo “leggere”). A questo punto il sistema

di predizione dovr` a ricercare tutte le triple che hanno come primo elemento

articolo e come secondo verbo e restituire la classificazione pi` u probabile per

la terza parola. Nel caso in cui la ricerca non restituisca elementi, allora

la funzione di backtracking dovr` a rivedere la predizione facendo scorrere la

classificazione della seconda parola alla scelta successiva (supponiamo sia

(17)

essa sostantivo). A questo punto le due classificazioni, articolo - sostantivo, permettono di ottenere il filtro verbo per la terza parola: cos`ı facendo il termine “era” viene riconosciuto immediatamente come verbo e non come sostantivo, mantenendo corretta la gestione delle triple per la predizione del resto della frase.

4.4 L’Algoritmo di Predizione

Lo scambio di informazioni tra tastiera virtuale e modulo di predizione mette in azione il procedimento predittivo che restituir` a la lista dei suggerimenti.

Il predittore si deve mantenere allineato con il testo in fase di composizione nell’applicazione esterna: per questo vengono mantenuti interamente una serie di dati, relativi principalmente alle classificazioni degli elementi delle triple e alla frase corrente.

In questa sezione descriveremo il funzionamento dell’algoritmo e le prin- cipali funzioni sviluppate.

4.4.1 Schema delle Funzioni Principali

Come gi` a ampiamente sottolineato, il sistema di predizione offre due tipi di suggerimenti: uno rivolto alla composizione della parola e l’altro al carattere pi` u probabile.

La funzione di predizione del singolo carattere ha molteplici potenzialit` a.

Quando la tastiera (comune o virtuale) risulta inaccessibile a causa di deficit

(18)

motori, nasce l’esigenza di un sistema di scansione. Le tastiere virtuali con modalit` a a scansione possiedono un indicatore che si sposta sui tasti.

L’utente, premendo un device fisico (quale un pulsante, una pedaliera, ecc.), seleziona la lettera che desidera digitare quando questa viene evidenziata dall’indicatore. Alcune tastiere pi` u avanzate dispongono di una modalit` a di scansione che permette la scelta di un elemento appartenente ad un insieme pi` u grande (ad esempio un’intera riga della tastiera) e, successivamente, la scelta di ogni singolo elemento (il tasto) dal sottoinsieme selezionato.

Figura 4.12: Area della tastiera virtuale dedicata alla predizione del carattere.

Il sistema a scansione richiede un’attenzione maggiore da parte dell’u-

tente, ma soprattutto comporta un impegno di tempo, dovuto alla scansione

sequenziale dei tasti: spesso prima di arrivare a quello desiderato occorre

scorrerne molti altri. Per questo motivo, se la tastiera virtuale prevede una

porzione per i suggerimenti dei caratteri pi` u probabili (come in Figura 4.12),

vi sar` a un risparmio del tempo per la scrittura. In questo senso, l’utente

pu` o “sostare” nell’area dei caratteri suggeriti (ad esempio i cinque elementi

(19)

con probabilit` a pi` u alta) ed eseguire, quindi, una scansione pi` u veloce.

I caratteri suggeriti dal predittore sviluppato, sono il risultato di una ri- cerca nella struttura del dizionario a doppio albero, in modo tale da escludere gli elementi che non possono occorrere dopo una o pi` u lettere (ad esempio una “a” dopo un’altra “a” oppure una “t” dopo una doppia “t”).

Riassumendo quanto visto in precedenza, un potenziale utente del pre- dittore pu` o svolgere le seguenti azioni:

• inserire un qualsiasi carattere;

• inserire un elemento di fine parola o di fine frase;

• scegliere un carattere tra quelli proposti;

• scegliere una parola nelle liste dei suggerimenti;

• cancellare l’ultimo carattere della frase.

Utilizzando una notazione con nomi di funzioni significative, si pu` o pen- sare ad una corrispondenza tra azioni dell’utente e metodi chiamati per la predizione come espressa nella Tabella 4.1.

Queste sono le funzioni che il modulo di predizione esporta alla tastiera

virtuale o altro editor. Vi sono poi altre funzioni interne tra cui possiamo

menzionare le funzioni di ricerca nelle diverse strutture per il reperimento

delle parole da suggerire, dei caratteri pi` u probabili e delle triple per man-

tenere aggiornato il processo di predizione. Un’altra funzione importante

(20)

Utente Predittore Inserire un carattere

Inserire un elemento di fine parola InserisciCarattere(c) Inserire un elemento di fine frase

Cancellare l’ultimo carattere CancellaCarattere() Scegliere un carattere suggerito InserisciCarattere(c) Scegliere una parola tra i suggerimenti ScegliSuggerimento(s)

Tabella 4.1: Corrispondenza azioni - funzioni.

fornita dalla tecnologia Lexical System ha permesso di svolgere operazioni di classificazione delle parole inserite.

4.4.2 Descrizione Logica

Come visto nella Sezione 4.3.2, l’algoritmo ha un diverso comportamento a seconda dei tre casi seguenti:

• prima parola: non vengono applicati criteri di predizione alla ricerca della parola;

• seconda parola: grazie alla classificazione della prima parola, ` e pos- sibile attivare in parte il processo predittivo in quanto non vengono sfruttate a pieno le triple, ma solo le informazioni relative alle prime due sestuple della tripla;

• terza parola e successive: da qui in poi ci possiamo attenere totalmen-

(21)

te alla predizione servendosi delle risorse sintattiche a triple e della funzione di backtracking.

Per meglio comprendere la logica dell’algoritmo riportiamo i modelli delle funzioni elencate nella sezione precedente, schematizzati nelle Figure 4.13, 4.14 e 4.15.

Dallo schema in Figura 4.13 possiamo notare i comportamenti del siste- ma a seconda delle azioni dell’utente. In particolare:

• se viene inserito un elemento di fine frase: il modulo deve ripristinare lo stato interno per prepararsi alla predizione di una nuova frase;

• se viene inserito un elemento di fine parola: il comportamento in questo caso del sistema `e identico alla chiamata della funzione di scelta del suggerimento;

• se viene inserito un qualsiasi altro carattere: qui si distinguono i casi a seconda dell’ordine della parola.

Non appena l’utente sceglie una parola nella lista dei suggerimenti, essa viene classificata e in base al numero delle parole (e quindi anche di clas- sificazioni attive, #POS) avviene l’aggiornamento delle classificazioni e dello stato interno. Tale aggiornamento serve a mettere in atto le ricerche delle triple per poter filtrare le parole nel processo di predizione.

Quando un utente cancella l’ultimo carattere della frase deve essere di-

versificato il caso a seconda dell’elemento da eliminare. Nel caso di uno

(22)

InserisciCarattere

fine frase

fine parola

Gestione fine frase

Gestione fine parola SI

SI NO

NO

Case parola

Ricerca senza filtri

Ricerca con filtro POS1

Ricerca con filtri POS1 e POS2

Mostra suggerimenti

Aggiorna lo stato

terza prima

seconda

fine

Figura 4.13: Diagramma della funzione di inserimento del carattere.

(23)

Classifica parola

Case

#POS

Aggiorna POS1

Aggiorna POS2

Aggiorna lo stato

0 2

1

fine ScegliSuggerimento

Aggiorna POS2 POS1 := POS2

Figura 4.14: Diagramma della funzione di scelta di un suggerimento.

(24)

Reset Stato

SI

SI NO

NO

Case

#POS

Ricerca e Mostra suggerimenti

0 2

1

fine

CancellaCarattere

Recupera prima parola

Recupera seconda parola

siamo

all’inizio della frase

ultimo

carattere

= spazio

ancora caratteri

Figura 4.15: Diagramma della funzione di cancellazione di un carattere.

spazio allora va recuperata la parola precedente e che diventa la parola cor- rente. Se invece `e un carattere della parola corrente allora va aggiornato lo stato e va effettuata la ricerca dei suggerimenti nel dizionario.

4.5 L’Interfaccia Utente

Al fine di effettuare il testing sul predittore sviluppato, `e stato realizzato un

semplice text editor che vuole essere un’interfaccia tra l’utente e il modulo

di predizione. L’interfaccia, infatti, evidenzia il funzionamento del progetto

poich´e `e formata solamente da un text box per l’inserimento di testo e da due

(25)

Figura 4.16: Interfaccia grafica per il testing del predittore.

list box per le liste di suggerimenti forniti dal predittore: parole e caratteri.

In Figura 4.16 `e riportata l’intera interfaccia.

Nell’implementazione `e stata trattata l’interazione con il predittore tra- lasciando particolari del tutto fuori dallo scopo di questa tesi. Nelle Figu- re 4.17 e 4.18 sono riportati alcuni esempi del text editor durante il suo fun- zionamento. La prima riporta la scrittura di una frase; nello specifico, dopo aver scritto “nella vicenda”, “nella” classificata come preposizione artico- lata (con sestupla DCFS) e “vicenda” classificata come sostantivo femminile (SCFS), il predittore suggerisce all’utente l’inserimento di una preposizione semplice (con sestupla DS). Nella seconda figura viene mostrata la composi- zione della parola “maniera”: si pu` o notare, infatti, che appena si `e scritto

“man” la lista dei caratteri mostra tutte le possibili lettere valide.

(26)

Figura 4.17: Un esempio di utilizzo dell’interfaccia.

Figura 4.18: Un altro esempio di scrittura veloce mediante le funzioni di

predizione.

(27)

E importante ricordare che i suggerimenti presentati sono filtrati attra- `

verso la grammatica statistica: infatti le parole sono tutte concordanti sia in genere che in numero mentre i caratteri sono solo tutti quelli possibili.

4.5.1 Esempio di Funzionamento del Predittore

Riportiamo adesso una serie di figure esplicative per mostrare il funziona- mento del sistema di predizione sviluppato. Assumiamo, per esempio, di voler scrivere la frase “la ragazza scrive il nome con la tastiera”.

Figura 4.19: L’interfaccia dopo l’inserimento del carattere ‘L’.

Nel momento in cui l’utente inserisce il carattere ‘L’, il sistema effettuer` a

le ricerche nel dizionario per suggerire tutte le parole che iniziano per quella

lettera. Essendo nel caso di composizione della prima parola, le ricerche

sono libere da vincoli, ovvero da filtri. Dalla Figura 4.19 si possono notare

(28)

Figura 4.20: Scelta del carattere ‘A’ dalla Character List.

le due liste dei suggerimenti. ` E da notare che la prima parola suggerita nella WordList `e “la”. Supponiamo che l’utente scelga il primo carattere tra quelli suggeriti: la schermata, a questo punto, sar` a quella indicata in Figura 4.20.

Conclusa la parola, l’utente premer` a la barra spaziatrice per inserire uno spazio; di conseguenza il predittore classificher` a la prima parola inserita (articolo determinativo femminile singolare, in sestupla DDFS) ed effettuer` a la predizione della categoria grammaticale pi` u probabile per la parola suc- cessiva. Come `e mostrato in Figura 4.21, il sistema predice un sostantivo femminile singolare (m_POS2: SCFS).

Quando l’utente inserir` a il prossimo carattere (come mostrato in Figura

4.22), il predittore possiede quindi la categoria grammaticale (POS) pi` u

(29)

Figura 4.21: Fine della prima parola e aggiornamento del predittore.

Figura 4.22: Inserimento del carattere ‘R’.

(30)

probabile per la seconda parola, dunque utilizza questa informazione per filtrare i risultati della ricerca nel dizionario. Pertanto le parole suggerite saranno solo dei sostantivi femminili singolari (SCFS).

Dovendo inserire la parola “ragazza”, `e possibile scegliere dunque il terzo suggerimento della WordList. Cos`ı facendo, la seconda parola viene classifi- cata e viene effettuata la ricerca, nella grammatica statistica a triple, della Part-of-Speech pi` u probabile per la terza parola.

Figura 4.23: Scelta del suggerimento “ragazza” dalla Word List.

In Figura 4.23 `e mostrato il caso sopra descritto. Il predittore suggerisce

una preposizione semplice (m_POS3: DS). Volendo scrivere “scrive”, dopo

aver digitato “sc”, il predittore esaurisce i suggerimenti concordanti con la

POS corrente (DS) ed eseguendo la fase di backtracking, propone la succes-

siva POS pi` u probabile (VTN3I). Tale POS identifica un verbo transitivo e

(31)

Figura 4.24: Inserimento della parola “scrive”.

Figura 4.25: Scelto il suggerimento “il ”.

(32)

permette il suggerimento di “scrive”. A questo punto, la tripla viene aggior- nata, ovvero l’elemento m_POS2 diventa m_POS1 e l’elemento m_POS3 diventa m_POS2. Il predittore esegue la ricerca della successiva POS pi` u probabi- le (un articolo determinativo maschile singolare, m_POS3: DDMS), quindi i suggerimenti sono quelli mostrati in Figura 4.24.

Dopo aver selezionato il suggerimento “il ”, Figura 4.25, il sistema si aspetter` a un sostantivo maschile singolare (m_POS3: SCMS), quindi utilizzer` a questo dato predetto come filtro della ricerca. Il sistema aggiorner` a ancora le triple facendo scorrere gli elementi.

Terminata la composizione della parola “nome”, il predittore rileva che una preposizione semplice `e candidata come POS pi` u probabile. Di conse- guenza il sistema suggerisce le nove preposizioni prima ancora che l’utente inserisca alcun carattere, Figura 4.26.

A questo punto l’utente `e in grado di scegliere il suggerimento desiderato, Figura 4.27.

In Figura 4.28 e in Figura 4.29 `e mostrata la scrittura del resto della

frase e il comportamento del predittore.

(33)

Figura 4.26: Composizione del sostantivo “nome”.

Figura 4.27: Scelta la preposizione suggerita.

(34)

Figura 4.28: Scrittura della parola “la”.

Figura 4.29: Terminazione della frase.

(35)

4.6 Fase di Verifica e Test Effettuati

Per la fase di verifica del sistema sviluppato, sono stati selezionati diversi testi di varie lunghezze a partire da corpus eterogenei. I testi sono stati scritti al fine di poter valutare l’efficacia della predizione misurando i seguenti parametri:

• i caratteri risparmiati: il numero di tasti non premuti grazie al- l’azione di predizione del sistema (parametro noto con il nome di keystroke saving );

• il numero medio di caratteri digitati per visualizzare la pa- rola tra i suggerimenti: la quantit` a media di lettere necessarie ad individuare il termine desiderato nella lista dei suggerimenti;

• il tempo di composizione: tempo necessario a portare a termine la scrittura del testo.

Naturalmente appare chiaro che il numero di keystroke saving risulti esse-

re il parametro pi` u significativo, se pensiamo soprattutto all’uso da parte di

persone disabili. Resta il fatto che i restanti parametri sono fondamentali per

l’analisi dell’usabilit` a dello strumento in vista di un suo futuro ampliamento

ed una configurazione anche personalizzata.

(36)

4.6.1 Risultati Ottenuti

La verifica `e stata compiuta su diversi dom`ıni di riferimento: abbiamo effet- tuato una prima serie di test su corpus giornalistico ed una seconda fase di test su un corpus specifico.

Per la prima fase di verifica sono stati sottoposti al predittore testi gior- nalistici 4 . Questi testi sono stati scritti attivando alternativamente nel pre- dittore due diversi dizionari: il vocabolario generale (ITALBASE) e quello di parole “frequenti” (ITAFREQ), rispettivamente di 1.165.000 e 245.000 classificazioni circa.

Analizzando i risultati ottenuti dai test, si `e riscontrato che nel primo caso (dizionario generale) si `e raggiunto una percentuale media di battute risparmiate (keystroke saving) superiore al 30%. Mentre nel caso del dizio- nario ITAFREQ la percentuale si attesta al 20%. Il risultato `e riconducibile al fatto che nel secondo caso le parole sconosciute aumentano ed esse devono essere scritte interamente in quanto non vengono predette. L’utilizzo di un dizionario di minore dimensione rispetto a quello generale permette di velo- cizzare la visita delle risorse linguistiche diminuendo, quindi, il tempo per la predizione. Quindi, se non vi `e la necessit` a di un’ampia copertura del lessi- co, un tal vocabolario appare uno strumento per velocizzare ulteriormente il tempo di scrittura. Il dizionario generale, invece, consente una migliore precisione nell’opera di predizione.

4

Presi principalmente dal sito di Repubblica (http://www.repubblica.it) e ANSA

(http://www.ansa.it) nei mesi di febbraio e marzo 2005.

(37)

L’altra tipologia di test ha riguardato un corpus specifico di settore medico-radiologico. Poich´e la copertura linguistica di tale corpus rispet- to al dizionario generale era troppo bassa (parole sconosciute maggiore del 30%), abbiamo quindi creato un dizionario medico radiologico, in un pro- getto di tirocinio affiancato [34]. Tale dizionario `e formato da circa 7.351 lemmi, 226.280 forme e 308.497 classificazioni.

La verifica `e stata fatta sottoponendo diversi referti medici al predittore e osservando gli stessi parametri del caso precedente.

La percentuale dei keystroke saving ottenuta `e del 25%. Tale risultato

`e oltremodo positivo poich´e si deve considerare che il modello del linguag- gio (grammatica statistica e triple) usato per predire le POS, non `e stato addestrato a partire da un corpus medico-radiologico.

4.6.2 Metodologia di Test

Come abbiamo visto nella Sezione 3.5.1, la Grammatica Statistica a Triple rappresenta una parte significativa all’interno di Lexical Studio che permet- te al nostro sistema di effettuare le operazioni di predizione. Queste triple rappresentano le possibili POS (prese tre a tre) estratte da un corpus gior- nalistico precedentemente lemmatizzato. Ogni tripla cos`ı ottenuta, `e stata valutata in modo da attribuirle un valore statistico in base alla frequenza con cui i tre elementi lessicali comparivano insieme.

Poich´e il dizionario `e molto vasto, le ricerche delle parole all’interno della

(38)

struttura di memorizzazione (a doppio albero, TWL) sono state limitate ad un numero fissato di nodi pari a 8.500. Questo valore pu` o essere apposita- mente regolato allo scopo di trovare un giusto bilanciamento tra numero di suggerimenti e tempo di attesa per la ricerca.

4.6.3 Valutazione dei Risultati

Il sistema sviluppato dimostra come l’algoritmo di predizione del carattere e della parola riduce il numero di battiture necessarie del 30% permettendo di velocizzare la scrittura sia dove l’utenza necessita di particolari ausili, sia dove la strumentazione offre tastiere di piccole dimensioni o limitate.

In aggiunta, oltre alla possibilit` a di incrementare la velocit` a di composi- zione, vi `e la diminuzione del numero degli errori ortografici.

In Tabella 4.2 e in Tabella 4.3 sono mostrati i valori ottenuti nei test eseguiti su articoli giornalistici utilizzando il dizionario generale. Nei test selezionati, il numero medio di digitazioni senza il sistema di predizione `e pari a 315 caratteri. Grazie alla funzione di predizione della parola `e possibile ridurre questo valore a 222 battiture, ottenendo cos`ı un risparmio medio di 93 caratteri, pari al 30% della lunghezza totale del testo, con punte del 41%

e del 43%.

In Figura 4.30 `e mostrato graficamente il rapporto tra i caratteri che

sono stati inseriti dall’utente e quelli che invece sono stati risparmiati in

quanto predetti dal sistema.

(39)

Test Numero Caratteri Caratteri Caratteri Keystroke

Parole Sconosc. Totali Battuti saving

1 73 17 458 336 27%

2 69 25 407 300 26%

3 89 21 494 347 30%

4 67 8 424 318 25%

5 87 21 476 316 34%

6 70 8 475 339 29%

7 70 13 422 333 21%

8 85 6 478 340 29%

9 67 18 415 271 35%

10 68 7 418 299 28%

11 66 11 412 276 33%

12 76 25 429 359 16%

13 37 0 241 151 37%

14 48 0 287 217 24%

15 69 0 396 263 34%

16 64 19 330 228 31%

17 46 0 220 150 32%

18 39 0 220 176 20%

19 57 0 339 245 28%

20 58 28 335 273 19%

Tabella 4.2: Risultati dei test (Prima Parte)

(40)

Test Numero Caratteri Caratteri Caratteri Keystroke

Parole Sconosc. Totali Battuti saving

21 49 5 305 235 23%

22 57 0 360 266 26%

23 45 0 281 180 36%

24 25 13 179 156 13%

25 49 0 314 227 28%

26 31 0 182 157 14%

27 26 0 181 126 30%

28 51 0 266 157 41%

29 46 0 225 158 30%

30 33 0 209 145 31%

31 47 5 295 208 29%

32 50 7 293 193 34%

33 44 7 258 166 36%

34 38 0 230 140 39%

35 38 9 231 155 33%

36 36 0 220 131 40%

37 34 30 200 126 37%

38 35 6 209 151 28%

39 40 0 261 156 40%

40 38 0 218 124 43%

Media 53 8 315 222 30%

Tabella 4.3: Risultati dei test (Seconda Parte)

(41)

Figura 4.30: Rapporto tra caratteri battuti e caratteri risparmiati.

Figura 4.31: Esempio di test effettuato.

Figura 4.32: Altro esempio di test per la fase di verifica.

In Figura 4.31 e in Figura 4.32 sono riportati due esempi di test effettuati

nella fase di verifica del sistema di predizione. Sono stati messi in evidenza

i caratteri risparmiati in quanto la parola viene predetta e quindi compare

come suggerimento nella WordList.

Riferimenti

Documenti correlati

- Attraverso una connessione dati attiva e lo sfruttamento di un modulo GPS all’interno del terminale, l’applicazione rileva prontamente la nostra posizione geografica e ci

Per cercare di comprendere a fondo le condizioni ambientali dell’acqua che hanno portato a differenti situazioni ecologiche in Adriatico settentrionale, sono stati

We consider these four indicators to be particularly useful for understanding the extent to which local policies are tolerant towards ethnic and religious minorities in terms

These countries together account for 87% of the refugees living in the countries included in those income categories (and for almost 75% of the world’s population of refugees),

probabilmente nell’est dell’Iran a quel tempo la costruzione dei bādgir era diffusa. I venti intensi che soffiano nelle zone di Khwaf e nell’est del Khorasan, e l’abilità che in

 Più limiti esistono nell’uso del potere politico più si creerà un ambiente che protegge i diritti di proprietà di sezioni trasversali della società.  Dove vi erano

Il poeta pavano sembra seguire una sorta di evoluzione, che lo porta ad essere sempre più fedele al testo originale di Petrarca: infatti se i primi testi inseriti nelle

cubeecg integra in un’unica applicazione tutte le procedure tipiche dell’esame ECG: dalla gestione degli elettrocardiografi in modalità PC-ECG ed in modalità