Home
Universit`a degli studi di Modena e Reggio Emilia
Contents
1. 4 y 188 A Il codice JAVA selezione ati y y stmt execute subMatchQuery stmt close java util Date data2 new java util Date calcolo tempo impiegato long fine data2 getTime long durata fine inizio 1000 return new Result 0 durata e Estrae i risultati public static Result extractResults String tabl String tab2 FileWriter outputFile boolean subStr Vector vPhrases String dDelim String sDelim throws SQLException IOException java util Date datal new java util Date per calcolo tempo long inizio datal getTime PrintWriter pwOutFile new PrintWriter outputFile Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String resultQuery SELECT fm cod2 AS codice2 p2 frase AS frase2 AS sfrase2 p2 fraseorig AS fraseorig2 AS sfraseorig2 fm codl AS codicel o pl frase AS frasel AS sfrasel pl fraseorig AS fraseorigl AS sfraseorig1 pl frasetrad AS frasetradl AS sfrasetrad1 fm dist AS dist fm dist p2 wordLen AS distrel 0 AS inizio 0 AS sub FROM FULLMATCH fm tab1 pl tab2 p2 WHERE fm cod1 pl codice AND fm cod2 p2 codice
2. private static Vector mergeRegions Vector vRegion String delimiter String s new String Vector vResult new Vector for int i 0 i lt vRegion size i if String vRegion elementAt i equals delimiter linea di delimitazione vResult addElement String s s new String else s s s equals frase da appendere String vRegion elementAt i return vResult 244 A Il codice JAVA selezione A 2 5 Classe Align WordAlignment package Align VE INMAMAMAMAMAMAMAMAMAMAMAMAMIA WordAlignment INMAMAMAMAMAMAMAMAMAMAMAMAMA Classe che implementa l oggetto allinemento tra parole IANMIAMAMAMAMAMAMAMAMAMAMAMAMA public class WordAlignment private int pos private int score private int targetLen Costruttore WordAlignment int n int 1 pos new int n score new int n targetLen l for int i 0 i lt n i posi 1 score i 0 WordAlignment int pl int s int 1 pos p score s targetLen l Restituisce il vettore di posizioni public int getPos return pos e A 3 Package GlobalUtility 245 Restituisce il vettore di punteggi public int getScore return score Vi Restituisce la lunghezza della frase target public int getTargetLen return targetLen A 3 Package G
3. 157 6 15 Test di scalabilit Caa ee al ira La 158 6 16 Variazioni di kee aissi e o T a a ge a ae ade R a dia 159 6 17 Variazioni di q tempo impiegato ooa a 160 6 18 Effetti sui tempi di filtri e indici 160 6 19 Confronto di copertura sca 4 4 enter Pet de ee le a 161 6 20 Confronto di efficienza LL 163 Introduzione La traduzione un attivit ripetitiva che richiede un elevatissimo grado di at tenzione e una vasta gamma di conoscenze Per lungo tempo il tentativo di automatizzare un compito di tale difficolt stato un sogno di enorme valenza sociale politica e scientifica Negli ultimi anni la ricerca in questo campo ha conosciuto un crescente interesse e grazie anche ai recenti progressi tecnologici oggi possibile un certo grado di traduzione automatica o Machine Translation Tra i tanti approcci proposti uno dei paradigmi pi promettenti rappresentato dai sistemi per traduzioni MAHT Machine Assisted Human Translation ed in particolare dai sistemi EBMT Example Based Machine Translation Un sistema EBMT traduce per analogia utilizzando le traduzioni passate per tradurre altre frasi dalla lingua sorgente alla lingua destinazione Al centro del funzionamento di questi sistemi vi sono le metodologie per la valutazione del grado di somiglianza tra le frasi L argomento principale della presente tesi di affrontare le problematiche legate alla ricerca di similarit tra frasi applicata al co
4. AND rlq qgram r2q qgram approxQuery approxQuery GROUP BY r2 codice rl codice rl frase r2 frase HAVING countFilter approxQuery approxQuery COUNT gt minCount 4 AND 186 A Il codice JAVA selezione approxQuery approxQuery wordEditDistanceSubCheck rl frase rl codice r2 frase r2 codice k 0 stmt execute approxQuery stmt close java util Date data2 new java util Date calcolo tempo impiegato long fine data2 getTime long durata fine inizio 1000 return new Result 0 durata Trova i match tra le sottostringhe public static Result findSubMatches String tab1 String tab2 double kSub int IMinSub throws SQLException IllegalArgument Exception controllo su kSub if kSub lt 0 throw new IllegalArgument Exception KSUB must be gt 0 java util Date datal new java util Date per calcolo tempo long inizio datal getTime Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String subMatchQuery INSERT INTO SUBMATCH SELECT ml cod2 ml nc m2 nc ml cod1 ml nr m2 nr wordEditDistanceDiag wordSubString p1 frase ml nr m2 nr wordSubString p2 frase ml nc m2 nc kSub
5. of numberOfHardRegions1 separazione frasi in paragrafi Vector softRegionsl findSubRegions Vector hardRegionsl elementAt i SOFTDELIMITER Vector softRegions2 findSubRegions Vector hardRegions2 elementAt i SOFTDELIMITER int len regionLengths softRegions1 array delle lunghezze da allineare int len2 regionLengths softRegions2 Vector align sAlign len1 len2 l allineamento vero e proprio restituisce un vettore di oggetti SentAlignment output dei file allineati writeSentAlign align outputFilel outputFile2 softRegions1 softRegions2 try chiusura file outputFile1 close outputFile2 close catch IOException e throw new IOException Error closing file e getMessage Scrive i file con le frasi allineate private static void writeSentAlign Vector align FileWriter ofl FileWriter of2 Vector softRegions1 Vector softRegions2 final String SOFTDELIMITER Main MainFrame SOFTDELIMITER final String DISTDELIMITER Main MainFrame DISTDELIMITER PrintWriter pwOutFilel new PrintWriter of1 220 A Il codice JAVA selezione PrintWriter pwOutFile2 new PrintWriter of2 int ix 0 int iy 0 int prevx 0 int prevy 0 for int j 0 j lt align size j SentAlignment a SentAlignment align elementAt j if a getx2 gt 0 ix else if a getx1 0 ix if
6. private static int lcs String s String t int n s length lunghezza di s int m t length lunghezza di t int d new int n 1 m 1 matrice per il calcolo int i itera in s int j itera in t char si iesimo carattere di s char tj jesimo carattere di t for i 0 i lt n i inizializzazione prima colonna d i 0 0 for j 0 j lt m j inizializzazione prima riga a 0 j 0 for i 1 i lt n i calcolo matrice si s charAt i 1 for j 1 j lt m j t j t charAt j 1 if si tj dli j dfi 1 j 1 1 else d i j Math max d i 1 d i j 1 return d n m e Estrae dalla regione frase i token suddivisi in 242 A Il codice JAVA selezione punteggiatura stringhe con almeno un carattere numerico le rimanenti parole di lunghezza almeno MINLEN caratteri Restituisce un vettore di token per ciascuna categoria e il numero totale di parole della regione private static Vector findTokens String sent final int MINTOKLEN Main MainFrame MINTOKLEN minima lunghezza di una parola per effettuare l allineamento di somiglianza Vector vTokens new Vector Vector vPunct new Vector punteggiatura Vector vNum new Vector stringhe con almeno un carattere numerico Vector vWords new Vector rimanenti parole di lunghezza almeno
7. String crea CREATE TABLE tabDest codice NUMBER 10 REFERENCES tabSorg ON DELETE CASCADE pos NUMBER 3 qgram VARCHAR2 size PRIMARY KEY codice pos RR String crea2 CREATE INDEX tabDest ON tabDest qgram stmt execute crea Crea la tabella stmt execute crea2 Crea gli indici stmt close Crea le tabelle dei risultati public static void createResTables throws SQLException Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String creal CREATE TABLE FULLMATCH cod2 NUMBER 10 cod1 NUMBER 10 dist NUMBER 3 PRIMARY KEY cod2 cod1 FOREIGN KEY FOREIGN KEY cod1 REFERENCES PHRASEI codice ON DELETE CASCADE cod2 REFERENCES PHRASE2 codice ON DELETE CASCADE A 1 Package SimSearch 177 49 String crea2 CREATE TABLE MATCHPOS NUMBER 10 codl cod2 nr ne Ay String crea3 NUMBER NUMBER NUMBER PRIMARY KEY FOREIGN KEY FOREIGN KEY 10 3 3 cod1 cod2 nr nc cod1 REFERENCES PHRASEI codice ON DELETE CASCADE cod2 REFERENCES PHRASE2 codice ON DELETE CASCADE
8. if subStr resultQuery resultQuery parte per sottostringhe UNION SELECT sm cod2 AS codice2 p2 frase AS frase2 A 1 Package SimSearch 189 wordSubString p2 frase sm i2 sm f2 AS sfrase2 p2 fraseorig AS fraseorig2 no wordSubString p2 fraseorig transPos p2 spos sm i2 transPos p2 spos sm f2 AS sfraseorig2 sm codl AS codicel pl frase AS frasel wordSubString p1 frase sm il sm f1 AS sfrasel pl fraseorig AS fraseorig1 wordSubString p1 fraseorig transPos p1 spos sm il transPos p1 spos sm f1 AS sfraseorig1 pl frasetrad AS frasetrad1 wordSubString p1 frasetrad transPos pl apos transPos p1l spos sm il transPos pl apos transPos pl spos sm f1 AS sfrasetrad1 sm dist AS dist sm dist sm f2 sm i2 1 AS distrel sm i2 AS inizio 1 AS sub FROM SUBMATCH sm tab1 pl tab2 p2 WHERE sm codl pl codice AND sm cod2 p2 codice resultQuery resultQuery ORDER BY codice2 sub inizio dist codicel ResultSet rset stmt executeQuery resultQuery int cercata 0 codice ultima frase cercata int fullMatchCount 0 int subMatchCount 0 int phrasesTot vPhrases size int phrasesFull 0 int phrasesSub 0 while rset next estrazione risultati int cur rset getI
9. lettura file di input vTMPhrases GlobalUtility GlobalUtility readTMFile inputFile A 1 Package SimSearch 211 catch IOException e throw new IOException Error reading file e get Message finally try inputFile close catch IOException e chiusura del file di input DBConnect db null Result ris null String strRes new String try operazioni sul DB db new DBConnect Main MainFrame setStatusBar Extracting and elaborating phrases il primo codice disponibile int startCod db getMaxCod TABLE1 1 ris db memToDB vTMPhrases TABLE startCod STEM strRes strRes n nPhrases inserted ris getCount nSeconds used ris getCompTime if STEM strRes strRes n with stemming else strRes strRes n without stemming Main MainFrame setStatusBar Extracting q grams ris db fillQTable TABLE1 startCod Q false strRes strRes nQ grams inserted ris getCount nSeconds used ris getCompTime if QSUB Q ris db fillQTable TABLE1 startCod QSUB true strRes strRes nQ grams inserted sub ris getCount nSeconds used ris getCompTime return strRes catch SQLException e throw new SQLException SQL error e getMessage finally try db disconnect disconnessione dal d
10. JDBC Reference 2000 Oracle Corporation Oracle 8i SQLJ Developer s Guide 1999 Oracle Corporation Oracle 8i Java Developer s Guide 2000 Oracle Corporation 262 BIBLIOGRAFIA 32 Oracle 8i Java Stored Procedures Developer s Guide 1999 Oracle Corporation 33 feet Oracle 81 interMedia Text Reference 1999 Oracle Corporation 34 C Rick A New Flexible Algorithm for the Longest Common Subse quence Problem Technical report University of Bonn Computer Science Department IV 1994 35 G Salton and M J McGill Introduction to Modern Information Retrieval McGraw Hill 1983 36 D Sankoff Matching Sequences under Deletion Insertion Constraints In Proceedings of the National Academy of Sciences of the USA 1972 37 ii S Sato Example Based Translation of Technical Terms In Proceedings of Sth International Conference on Theoretical and Methodological Issues in Machine Translation 1993 38 M Simard G F Foster and P Isabelle Using Cognates to Align Senten ces in Bilingual Corpora In International Conference on Theoretical and Methodological Issues in Machine Translation 1992 39 lt a O Steele JWordNet An Object Oriented Java Interface to WordNet Home page http prdownloads sourceforge net jwn 1998 40 Li T Strzalkowki and J P Carballo Recent Developments in Natural Language Text Retrieval In TREC 1993 41 em H Sumita O Furuse
11. ie sol Ue sl aloe el altra 93 4 3 Allineamento delle frasi s e rat dee dara hie ae bets 94 4 3 1 I principi di funzionamento 04 aLaaa ai 95 4 3 2 La metrica di distanza aL Sd kE LARE LR 96 4 3 3 L algoritmo di programmazione dinamica 100 4 3 4 Un esempio del calcolo 103 oao a a Seeded Fe 101 4 3 5 I parametri disponibili un riassunto 103 43 0 Tfilernsultanti soprat n aa See aa he ee ai 103 4 4 Allineamento delle parole 104 4 4 1 I principi di funzionamento gi amp aie eee oe i 105 4 4 2 Schema del procedimento 106 443 L algoritmo di allineamento 108 444 Il punteggio di affinit 109 4 4 5 Interpolazione e verifica finali 113 4 4 6 I parametri disponibili un riassunto 115 4 4 7 Il file di Translation Memory 0 115 4 5 Aggiunta di dati alla TM o rog el di 116 46 Pretrad ziole s u sitiena Sheet ele LES Ade 117 4 6 1 La query di estrazione dei risultati 118 4 6 2 La presentazione dei risultati 121 4 7 Analisi della Translation Memory 122 AS Configurazione aiad ble de ene A ath nare a ba ai Gis 123 5 Il progetto del software 125 ol Epackapeedetosstiz ia ge ty See PE ee te hen ee ee 125 5 1 1 Package SimSearch ooa ae at 126 O Package Alien a ws sadede ea ede is a does aie Coes eS 129 5 1 3 Package Stemming sost dt se ati ee Gi ke ae A wed 130 5 1 4 Package GlobalUtility
12. nomi file frasi separate separatori GlobalUtility readPhrases GlobalUtility GlobalUtility readLines GlobalUtility File di testo lingua sorgente File di testo File preparato lingua destinazione lingua destinazione Figura 5 15 Preparazione all allineamento data flow diagram SentAlign writePrepFile Align File preparato lingua sorgente Le frasi separate vengono dunque inviate al metodo writePrepFile che provvede a scriverle nel formato opportuno nei file preparati 5 2 I flussi di dati DFD 139 5 2 3 Allineamento delle frasi I DFD di figura 5 16 e 5 17 mostrano i flussi di dati rigurdanti il processo di allineamento delle frasi descritto nella sezione 4 3 SentAlign sentAlignMain Align linee paragrafi nomi file linee sep paragrafi frasi sep frasi lunghezze GlobalUtility readLines GlobalUtility SentAlign findSubRegions Align lunghezze frasi SentAlign regionLengths Align File preparati SentAlign sAlign Align allineamento frasi File allineati Pa o Figura 5 16 Allineamento frasi data flow diagram parte 1 La funzione principale sentAlignMain essa richiede la lettura del file di origine a readLines del package GlobalUtility quindi estrae dalle linee let te le regioni di testo paragrafi frasi e le relative lunghezze tramite i metodi findSubRegions e regionLengths
13. public static void disconnect throws SQLException Oracle close e Elimina una tabella delle frasi nome fornito in input public static void dropPTable String tabella throws SQLException controlla che non venga eliminata la tabella permanente TERMS if tabella equalsIgnoreCase TERMS throw new SQLException Impossible to drop TERMS table Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String elimina DROP TABLE tabella stmt execute elimina Elimina la tabella stmt close e Elimina le tabelle dei qgrammi associate alla tabella delle frasi fornita in input public static void dropQTables String tabella throws SQLException String tabellal Q tabella il nome delle tabelle dei qgrammi associate String tabella2 QS tabella Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn A 1 Package SimSearch 175 sqlj runtime ref DefaultContext get Default Context getConnection Statement stmt conn createStatement stmt execute DROP TABLE tabellal Elimina le tabelle stmt execute DROP TABLE tabella2 stmt close e Crea una tabella delle frasi nome fornito in input public static voi
14. ZAMIAMAMAMIAMAMAMAMAMAMAMAMA PretranslationStat AVAVA VAVA VAVA VAVA VAVA VA VAN Classe che implementa l oggetto contenente tutti i dati statistici sulla pretraduzione effettuata AVAVA VAVA VAVA VAVA VAVA VA VAN import java util public class PretranslationStat private int fullTime private int fullTime2 private int subTime private int tot Time A 1 Package SimSearch 201 private int tot TMPhrases private int totPhrases private int fullPhrases private int subPhrases private int notFoundPhrases private int coverage private int fullMatches private int subMatches Ve Costruttore PretranslationStat int ft int ft2 int st int ttmp int tp int fp int sp int fm int sm fullTime ft fullTime2 ft2 subTime st totTime ft ft2 st totTMPhrases ttmp totPhrases tp fullPhrases fp subPhrases sp notFoundPhrases tp fp sp coverage int sp fp 100 tp fullMatches fm subMatches sm Restituisce il tempo totale public int getTotTime return totTime Restituisce il tempo per la ricerca full public int getFullTime return fullTime Restituisce il tempo per la ricerca full seconda passata public int getFullTime2 return fullTime2 202 A Il codice JAVA selezione e Restituisce il tempo per la ricerca sub public int getSubTime return s
15. di sfruttare l informazione degli insiemi di q grammi Go e Gos ignorando le informazioni posizionali per determinare se le frasi 0 e 03 sono all interno di un edit distance k come sempre si ricorda che nella nostra applicazione lunghezza di una frase e distanze sono misurate in parole Enunciato 3 1 Si considerino le frasi o e 03 di lunghezza o e oa ri spettivamente Se o e a2 sono entro un edit distance di k allora la cardina lit di Go N Gos ignorando le informazioni posizionali deve essere di almeno mazx 01 o2 1 k 1 xq dove q la dimensione dei q grammi La query si arricchisce allora del seguente predicato GROUP BY r2 codice rl codice rl frase r2 frase HAVING COUNT x gt rl wordlen 1 lt k gt 1 lt q gt AND COUNT gt r2 wordlen 1 lt k gt 1 lt q gt In esso cos come in quelli degli altri filtri si pu notare l utilizzo della colon na wordlen contenente la lunghezza in parole della frase si preferito registrarla in tabella come dato derivato piuttosto che calcolarla di volta in volta con una funzione esterna poich in quest ultimo caso le numerose chiamate avrebbero ridotto notevolmente le prestazioni lt q gt rappresenta il numero di parole in un q gramma la sua dimensione ed un parametro liberamente modificabile Il filtro di posizione Il filtro di posizione complementa il filtro di conteggio tenendo conto del
16. if lenFilter if posFilter amp amp countFilter approxQuery approxQuery WHERE else approxQuery approxQuery AND approxQuery approxQuery ABS rl wordLen r2 wordLen lt ROUND k r2 wordLen J approxQuery approxQuery GROUP BY r2 codice rl codice rl frase r2 frase r1 wordLen r2 wordLen if countFilter editDist approxQuery approxQuery HAVING if countFilter approxQuery approxQuery COUNT x gt rl wordLen 1 ROUND k r2 wordLen 1 q AND COUNT gt r2 wordLen 1 ROUND k r2 wordLen 1 q if countFilter amp amp editDist approxQuery approxQuery AND na if editDist if subStr false approxQuery approxQuery wordEditDistanceDiag rl1 frase r2 frase k gt 0 else approxQuery approxQuery wordEditDistanceSubCheck rl frase rl codice r2 frase r2 codice k 0 stmt execute approxQuery stmt close java util Date data2 new java util Date calcolo tempo impiegato long fine data2 getTime long durata fine inizio 1000 return new Result 0 durata Esegue la query supplementare di Approximate String Join public static Result approxJoinQueryPass2 String tab1 String tab2 int q double k double
17. 3 5 La metrica di similarit Edit distance 61 3 5 1 Definizione classica 8 ee Ok BS ria 62 3 5 2 D algoritmo per il calcolo Loos aa 63 3 5 3 Applicazione alle frasi 64 3 5 4 L algoritmo ottimizzato per diagonali 65 3 5 5 La scelta degli algoritmi 67 3 6 La query di ricerca delle frasi intere simili 67 Sl Li fet ae delia ia a te ee ina 68 3 6 2 Edit distance relativa e arrotondamenti 70 3 6 3 La query completa st rt Va e Becta nd 72 gT lire le trast intere lt lt Ls ine eni Se BE ag Beets A 73 3 7 1 I limiti da superare aoaaa Ae Be Sted 73 3 7 2 Le nuove modalit di ricerca oaoa a ale 74 3 8 Preparazione alla ricerca delle sottoparti 75 3 8 1 Le informazioni aggiuntive da estrarre 75 3 8 2 Le tre versioni delle query 76 3 9 La query di ricerca delle sottoparti simili 80 3 9 1 Il funzionamento ok ere AA Ahad go sbe ches asl Revises aren Shes 80 3 9 2 doglie Die fanale calar me dee lai ia 81 Oa gt ARMIN pos el ate eA delete aa 82 3 9 4 Un esempio esplicativo 2 13 obs 6 ate ee eee ee 85 3 10 I parametri della ricerca un riassunto 0 86 4 EXTRA un ambiente EBMT 89 41 be f nzionalita Sevilla Prete ec a es eR aes 90 4 2 Preparazione agli allineamenti 0 4 91 4 2 1 Il riconoscimento delle frasi 00 92 INDICE ix 4 2 2 Ale preparati
18. FROM MATCHPOS m1 MATCHPOS m2 tab1 pl tab2 p2 WHERE ml codl m2 codl AND ml cod2 NOT IN SELECT cod2 FROM FULLMATCH ND ml cod2 m2 cod2 ND ml codl pl codice ND ml cod2 p2 codice ND ml nr lt m2 nr ND ml nc lt m2 nc ND m2 nc ml nc 1 gt 1MinSub ND m2 nr ml nr 1 gt 1MinSub ND ABS m2 nc ml nc m2 nr ml nr lt ROUND m2 nc ml nc 1 kSub ND SELECT COUNT FROM MATCHPOS mla i i i i i i 1 i gt P P PPP pp PP i A 1 Package SimSearch 187 WHERE mla codl ml codl AND mla cod2 ml cod2 AND mla nc lt m2 nc AND mla nc gt ml nc AND mla nr lt m2 nr AND mla nr gt ml nr AND ABS mla nc ml nc mla nr ml nr lt ROUND m2 nc ml nc 1 kSub gt ALL m2 nc ml nc 1 ROUND m2 nc ml nc 1 kSub H m2 nr ml nr 1 ROUND m2 nc ml nc 1 kSub AND wordEditDistanceDiag wordSubString p1 frase ml nr m2 nr wordSubString p2 frase ml nc m2 nc kSub gt 0 AND NOT EXISTS SELECT m3 nc m3 nr m4 nc m4 nr FROM MATCHPOS m3 MATCHPOS m4 tab1 p3 tab2 p4 WHERE m3 codl m4 cod1 ND m3 cod2 m
19. Figura 6 2 Distribuzione della collezione Logos Oltre alle collezioni citate poich la collezione DPaint contiene frasi in una sola lingua mentre la collezione Logos bilingue ma con frasi gi correttamen te allineate dai traduttori stessi sono stati utilizzati dei documenti aggiuntivi per testare pi accuratamente gli algoritmi di allineamento come si vedr nelle sezioni successive 148 6 Le prove sperimentali e i risultati ottenuti 6 2 Allineamento delle frasi Per mostrare l efficacia degli algoritmi di allineamento delle frasi si considerano dei paragrafi bilingui tratti dai dibattiti parlamentari Canadian Hansards in inglese e francese I paragrafi di partenza sono mostrati nelle figure 6 3 e 6 4 According to our survey 1988 sales of mineral water and soft drinks were much higher than in 1987 reflecting the growing popularity of these products Cola drink manufacturers in particular achieved above average growth rates The higher turnover was largely due to an increase in the sales volume Employment and investment levels also climbed Following a two year transitional period the new Foodstuffs Ordinance for Mineral Water came into effect on April 1 1988 Specifically it contains more stringent requirements regarding quality consistency and purity guarantees The crisis our farmers are in right now will affect all of us at a certain point in time We are all consumers and we all need a strong and he
20. altamente probabile trovare frasi identiche o quasi a quelle cercate In questi casi essi sono anche in grado di suggerire frasi tradotte gi modificate 6 5 Confronto con altri approcci 165 sostituendo le parole riconosciute come diverse con quelle delle nuove frasi da tradurre Poich per piuttosto ottimistico presupporre che per ogni frase da tradurre ne sia presente una sostanzialmente identica nella Translation Memory la scarsa flessibilit degli algoritmi di ricerca limita in molti casi l effettiva utilit di questi ambienti sia come copertura sia come qualit dei suggerimenti Conclusioni e sviluppi futuri In questo lavoro sono stati raggiunti i seguenti risultati e stata definita una metrica di similarit tra frasi basata su un inedito utilizzo del concetto di Edit Distance che esprime adeguatamente ed ef ficacemente il grado di somiglianza tra i concetti e le strutture delle due frasi pur rimanendo indipendente dai linguaggi utilizzati e utilizzando questa metrica stato definito e affrontato il problema di ri cerca di similarit tra frasi intere individuare data una frase di query le frasi di riferimento pi simili ad essa quelle cio la cui distanza dalla frase cercata non supera una data soglia e stato esteso tale problema di ricerca alla pi complessa ricerca di simi larit tra parti di frasi che si occupa di trovare utilizzando la medesima metrica di similarit anch
21. goritmi di ricerca visti ma fornisce anche una serie di strumenti che permettono di creare gestire e analizzare una Translation Memory partendo da semplici file di testo in svariati formati arriva ad inserire nel DB le varie frasi correttamente individuate messe automaticamente in corrispondenza a quelle della lingua de stinazione elaborate ed allineate nelle due lingue anche internamente a livello delle parole per consentire di sfruttare tutta la potenza della ricerca di similarit parziale tra sottoparti 89 90 4 EXTRA un ambiente EBMT X EXTRA EXample based TRanslation Assistant File Align Sim Search Tools Help File 1 whirl query all tt pretrad al File 2 whirl query all tt al Figura 4 1 EXTRA l ambiente principale 4 1 Le funzionalit Scendendo pi in dettaglio le principali funzionalit offerte come si vede anche dai comandi disponibili nei menu figura 4 2 sono le seguenti e Preparazione agli allineamenti due versioni per altrettanti tipi di file di origine e Allineamento automatico delle frasi e Allineamento automatico delle parole all interno delle frasi e Inserimento dei dati ottenuti nella Translation Memory e Pretraduzione di un documento Accanto a queste caratteristiche fondamentali sono previsti anche e Strumenti per la gestione delle tabelle e l analisi della Translation Memo ry anche grafica con la rappresentazione della distribuzione delle frasi presenti e Co
22. lt kSub gt AND wordEditDistanceDiag wordSubString r3 frase m3 nr m4 nr wordSubString r4 frase m3 nc m4 nc lt kSub gt gt 0 AND m3 cod2 ml cod2 AND ml nc m3 nc AND m4 nc gt m2 nc OR m3 nc lt ml nc AND m2 nc m4 nc OR m3 nc lt ml nc AND m4 nc gt m2 nc OR ml nc m3 nc AND m2 nc m4 nc AND ml codl m3 cod1 AND ml nr m3 nr AND m4 nr gt m2 nr OR m3 nr lt ml nr AND m2 nr m4 nr OR m3 nr lt ml nr AND m4 nr gt m2 nr B 3 4 Estrazione risultati SELECT fm cod2 AS codice2 estrazione risultati frasi intere r2 frase AS frase2 AS sfrase2 r2 fraseorig AS fraseorig2 AS sfraseorig2 fm cod1 AS codicel rl frase AS frasel AS sfrasel rl fraseorig AS fraseorigl AS sfraseorigl rl frasetrad AS frasetradl AS sfrasetrad1 258 B Il codice SQL fm dist AS dist fm dist r2 wordLen AS distrel 0 AS inizio 0 AS sub FROM FULLMATCH fm lt tab1 gt rl lt tab2 gt r2 WHERE fm codl rl codice AND fm cod2 r2 codice eventuale estrazione risultati sottoparti UNION SELECT sm cod2 AS codice2 r2 frase AS frase2 wordSubString r2 frase sm i2 sm f2 AS sfrase2 r2 fraseorig AS fraseorig2 wordSubString r2 fraseorig transPos r2 spos sm i2 transPos r2 spos sm f2 AS sfraseorig2 sm codl AS codicel rl frase AS frasel wordSubString rl frase sm il sm fl AS sfrasel rl fraseorig AS fraseorigl wordSubString rl fraseor
23. private String aScore Costruttore public TMPhrase String po String pt String ap String as phraseOrig po phraseTrad pt aPos ap aScore as Ve Restituisce la frase originaria da tradurre public String getPhraseOrig return phraseOrig Restituisce la frase tradotta 252 A Il codice JAVA selezione public String getPhraseTrad return phraseTrad Restituisce la stringa delle posizioni di allineamento public String getAPos return aPos e Restituisce la stringa dei punteggi di allineamento public String get AScore return aScore Appendice B Il codice SQL B 1 Gli script B 1 1 Creazione delle tabelle CREATE TABLE lt phrasel gt generica tabella delle frasi codice NUMBER 10 PRIMARY KEY fraseorig VARCHAR2 1000 frase VARCHAR2 1000 frasetrad VARCHAR2 1000 wordlen VARCHAR2 1000 apos VARCHAR2 700 ascore VARCHAR2 700 spos VARCHAR2 700 CREATE TABLE lt qphrasel gt generica tabella dei q grammi codice NUMBER 10 REFERENCES lt phrasel gt ON DELETE CASCADE pos NUMBER 3 qgram VARCHAR2 lt size gt PRIMARY KEY codice pos CREATE TABLE FULLMATCH cod2 NUMBER 10 cod NUMBER 10 dist NUMBER 3 PRIMARY KEY cod2 cod1 FOREIGN KEY codl REFERENCES PHRASE codice ON DELETE CASCADE FOREIGN KEY cod2 REFER
24. 12 hanno determinato empiricamente dai numerosi test effettuati permettendo comunque all utente di variarli a seconda delle sue necessit e del tipo di testi utilizzati In particolare c stato stimato contando il numero di caratteri dei paragrafi di una lingua e dividendolo per il numero dei caratteri dei corrispondenti para grafi nell altra lingua Per le lingue Inglese e Tedesco si ottenuto c 1 1 per Inglese e Francese c 1 06 poich la resa dell algoritmo non apparsa troppo sensibile a questi precisi valori stato scelto c 1 come valore independente dalla lingua adatto in particolare per le principali coppie di lingue europee Per quanto riguarda s il modello assume che essa sia proporzionale alla lunghezza La costante di proporzionalit stata calcolata per le coppie Inglese Tedesco s 7 3 e Inglese Francese s 5 6 Anche in questo caso queste differenze non sono troppo significative e viene scelto pertanto un pi semplice valore indipendente dalle lingue s 6 8 Infine per quanto riguarda la probabilit Prob match legata come si visto ai tipi di corrispondenze nell allineamento essa viene calcolata facendo riferimen to ai valori determinati dagli allineamenti corretti di una serie di documenti di riferimento vedi figura 4 10 Categoria Prob match tat 0 89 LS Gel 0 0099 ky 0 089 a 0 011 Figura 4 10 Allineamento frasi le categorie e le relative probabilita 100 4 E
25. 4035 Lai ale hd as 132 glos Package Mainu ro amirni uia bers ag A ar ein 133 5 2 I flussi di dati DFD denti tn dai a are dn 134 5 2 1 Ricerca di similarit oe wknd a ot oe en 134 5 2 2 Preparazione all allineamento 138 5 2 3 Allineamento delle frasi 2 a 139 5 2 4 Allineamento delle parole 140 5 2 5 Aggiunta di dati alla TM aoaaa eed Uh doped ae 141 6 Le prove sperimentali e i risultati ottenuti 145 6 1 Le collezioni usate nei test cs Son Se a 145 6 2 Allineamento delle frasi 148 6 3 Allineamento delle parole a a n a 150 6 4 Ricerca di similarit SLA alate a 153 6 Efficacia 2852 Aa oia a Seok ok IS m aa Sole Ce e ely a ga 154 x INDICE 6 4 2 Efficienza ar ih eR e dele shee each ck SY 157 6 4 3 Variazioni dei parametri gc it pig Ek eS 159 6 4 4 Effetto di filtri e indici 159 6 5 Confronto con altri approcci 4 as a pare al r OH ae 161 God Approcci IR Classil segreto cante i 161 6 52 Altrisistemni MI oa hie ee ie Li Pale 164 Conclusioni e sviluppi futuri 167 III Appendici 171 A Il codice JAVA selezione 173 A 1 Package SimSearch ila aLe aloe hi 173 A 1 1 Classe SimSearch DBConnect 173 A 1 2 Classe SimSearch DBUtility 191 A 1 3 Classe SimSearch Distance 4 194 A 1 4 Classe SimSearch PosQGram LL 199 A 1 5 Classe SimSearch PretranslationStat 200 A 1 6 Classe SimSearch
26. ACTION 1 METHOD 3 IS A DEF METHOD 2 APP Quicksort ACTION 1 APP divide and conquer Figura 1 8 NLP un esempio di rappresentazione REST Altri lavori sono quelli di Strzalkowski e Carballo 40 un parser in grado di riconoscere la struttura delle frasi e le parole pi significative e di Arampatzis Tsoris Koster e Van der Weide 2 che propongono un sistema in grado di agire a pi livelli su lessico sintassi morfologia e semantica In generale si tratta di sistemi che ottengono s buoni risultati ma che pos sono essere applicati solo ad ambiti molto ristretti una lingua e un settore ben precisi data l enorme quantit di informazioni di base che richiedono per poter funzionare 26 1 Analisi dell information retrieval 1 8 2 I Sistemi commerciali Ovviamente non esistono strumenti commerciali specificamente pensati per la ricerca di similarit tra frasi come per la ricerca scientifica tuttavia alcune pro poste offrono interessanti spunti o risultano in qualche modo attinenti a questa problematica Esse vengono pertanto brevemente descritte nei paragrafi seguenti e riguardano principalmente e Sistemi per Text Retrieval su Web e Estensioni ai DBMS per Text Retrieval Sistemi per Text Retrieval su Web In ambito commerciale sono disponibili su Internet diversi sistemi con lo scopo di catalogare organizzare e ricercare documenti di vario genere In particolare possibile accedere a diversi sistem
27. AS sfrase2 r2 fraseorig AS fraseorig2 wordSubString r2 fraseorig transPos r2 spos sm i2 transPos r2 spos sm f2 AS sfraseorig2 sm codl AS codicel rl frase AS frasel wordSubString rl frase sm il sm fl AS sfrasel 120 4 EXTRA un ambiente EBMT rl fraseorig AS fraseorig1 wordSubString rl fraseorig transPos rl spos sm il transPos rl spos sm f1 AS sfraseorigl rl frasetrad AS frasetrad1 wordSubString rl frasetrad transPos rl apos transPos rl spos sm il transPos rl apos transPos rl spos sm f1 AS sfrasetrad1 sm dist AS dist sm dist sm f2 sm i2 1 AS distrel sm i2 AS inizio 1 AS sub FROM SUBMATCH sm lt tab1 gt rl lt tab2 gt r2 WHERE sm codl rl codice AND sm cod2 r2 codice Come si vede le due parti sono perfettamente compatibili quella relativa alle frasi intere estrae campi vuoti per i dati che esistono solo per le sottoparti mediante il valore del campo aggiuntivo sub si in grado di stabilire se i match trovati riguardano frasi intere sub 0 o sottoparti sub 1 La funzione wordSubString come gi visto nelle query di ricerca permette di estrarre una sottoparte di una frase data la posizione della parola iniziale e di quella finale La funzione transPos invece nuova essa esegue la conversione tra le coordinate delle varie frasi permettendo di risalire dalla sottoparte di frase normalizzata alla sottoparte di frase originaria e dalla sottoparte di frase originaria alla sotto
28. IOException e throw new IOException Error creating output file e getMessage lettura dei file di input Vector vPhrasel new Vector Vector vPhrase2 new Vector try riconoscimento frasi e paragrafi if oneLine vPhrasel GlobalUtility GlobalUtility readPhrases inputFile1 vPhrase2 GlobalUtility GlobalUtility readPhrases inputFile2 else frasi gi segmentate vPhrasel GlobalUtility GlobalUtility readLines inputFilel vPhrase2 GlobalUtility GlobalUtility readLines inputFile2 catch IOException e throw new IOException Error reading file e getMessage finally try inputFile1 close inputFile2 close catch IOException e scrittura dei file preparati per l allineamento int hardCount1 writePrepFile vPhrasel outputFile1 int hardCount2 writePrepFile vPhrase2 outputFile2 222 A Il codice JAVA selezione try chiusura file outputFilel close outputFile2 close catch IOException e throw new IOException Error closing file e getMessage if hardCountl hardCount2 return 0 else return 1 e Scrive il file con le frasi preparate per l allineamento private static int writePrepFile Vector vPhrase FileWriter of final String HARDDELIMITER Main MainFrame HARDDELIMITER delimitatori final String SOFTDELIMITER Main MainF
29. K K pwOutFile2 println VIa if SUBSTR A 1 Package SimSearch 207 pwOutFile2 printlIn 4 LMINSUB LMINSUB pwOutFile2 printIn KSUB KSUB pwOutFile2 println nyy pwOutFile2 println FILEIN FILEIN pwOutFile2 println wre pwOutFile2 printIn STEM STEM pwOutFile2 printIn SUBSTR SUBSTR if SUBSTR pwOutFile2 println SUBSTRMODE SUBSTRMODE pwOutFile2 println 2i pwOutFile2 printIn COUNTFILTER COUNTFILTER pwOutFile2 printIn POSFILTER POSFILTER pwOutFile2 printIn LENGTHFILTER LENGTHFILTER pwOutFile2 printIn EDITDISTANCE EDITDISTANCE if SUBSTR pwOutFile2 println COUNTFILTER2 COUNTFILTER2 pwOutFile2 println ae DBConnect db null Result ris null try operazioni sul DB db new DBConnect pulizia tabelle temporanee Main MainFrame setStatusBar Cleaning temp tables db dropResTables db dropQTables TABLE2 db dropPTable TABLE2 db createPTable TABLE2 db createQTable TABLE2 Q false db createQTable TABLE2 QSUB true db createResTables ris db fillPTable vPhrases TABLE2 STEM pwOutFile2 println r n Input file FILEIN pwOutFile2 println Phrases extracted ris getCount pwOutFile2 println Seconds used ris getCompTime if STEM pw
30. Main MainFrame setStatusBar Executing approxStringJoin Pass2 query ris db approxJoinQueryPass2 TABLE1 TABLE2 Q K KSUB LMINSUB COUNTFILTER2 false fullTime2 int ris getCompTime pwOutFile2 println Seconds used ApproxSJ Pass2 fullTime2 else substring 2 pass accurate ris db approxJoinQuery TABLE1 TABLE2 Q K COUNTFILTER POSFILTER LENGTHFILTER EDITDISTANCE false fullTime int ris getCompTime pwOutFile2 println Seconds used ApproxStringJoin fullTime Main MainFrame setStatusBar Executing approxStringJoin Pass2 query ris db approxJoinQueryPass2 TABLE1 TABLE2 QSUB K KSUB LMINSUB COUNTFILTER2 true fullTime2 int ris getCompTime pwOutFile2 println Seconds used ApproxSJ Pass2 fullTime2 int subTime 0 tempo impiegato nella ricerca dei sub match if SUBSTR Main MainFrame setStatusBar Executing findSubMatches query ris db findSubMatches TABLE1 TABLE2 KSUB LMINSUB subTime int ris getCompTime pwOutFile2 println Seconds used findSubMatches subTime Main MainFrame setStatusBar Executing extractResults query ris db extractResults TABLE1 TABLE2 outputFile2 SUBSTR vPhrases DISTDELIMITER SOFTDELIMITER pwOutFile2 println r n Total suggestions found ris getCount A 1 Package SimSearch 209 int fullMatches Inte
31. Perch i suggerimenti di traduzione proposti dal programma possano essere di una qualche utilit necessario poter ricercare 62 3 Ricerca di similarita tra frasi non solo frasi da proporre esattamente uguali a quelle da tradurre ma anche so lo approssimativamente uguali E dunque necessario ricercare i match tra frasi in modo approssimato per poterlo fare necessario definire una metrica di appros simazione Esistono molte proposte teoriche per esprimere l idea di uguaglianza approssimata tra queste la nozione di edit distance tra due frasi quella che ci sembrata pi adatta ai nostri fini nonch quella che poteva meglio essere inserita nel contesto di un DBMS relazionale come mostrato anche in 14 3 5 1 Definizione classica Secondo la nozione classica riguardante le stringhe di caratteri l edit distance tra due stringhe definita come la sequenza di operazioni che con il minor costo trasforma una stringa nell altra Formalmente si indichino stringhe arbitrarie con 01 02 lettere dell alfa beto con a b c la lunghezza della stringa o con o l i esimo carattere di o con a i i 1 o e la stringa vuota con Definizione 3 2 Edit distance L edit distance ed 01 03 tra due stringhe c e 03 il minimo costo della sequenza di operazioni che trasforma 01 inoz Il costo della sequenza di operazioni la somma dei costi delle operazioni individuali Le operazioni son
32. a gety2 gt 0 iy else if a gety1 0 iy if a getx1 0 amp amp a getyl 0 amp amp a getx2 0 amp amp a gety2 0 b iy ix iy for prevx lt ix prevx printRegion pwOutFilel Vector softRegions1 elementAt prevx pwOutFilel printIn DISTDELIMITER a getd pwOutFilel printIn SOFTDELIMITER for prevy lt iy prevy printRegion pwOutFile2 Vector softRegions2 element At prevy pwOutFile2 printIn DISTDELIMITER a getd pwOutFile2 printIn SOFTDELIMITER fe Funzione di preparazione all allineamento delle frasi con riconoscimento e separazione frasi e paragrafi public static int prepareToAlign boolean oneLine throws IOException final String FILEIN1 Main MainFrame FILEIN1 file di input final String FILEIN2 Main MainFrame FILEIN2 apertura dei file di input e output FileReader inputFilel null FileReader inputFile2 null try inputFilel new FileReader FILEIN1 inputFile2 new FileReader FILEIN2 catch FileNotFoundException e A 2 Package Align 221 throw new IOException Error opening input file e getMessage String fileoutl1 FILEIN1 prep String fileout2 FILEIN2 prep FileWriter outputFilel null FileWriter outputFile2 null try outputFilel new FileWriter fileout1 outputFile2 new FileWriter fileout2 catch
33. allinea mento non solo indispensabile per un corretto funzionamento di un sistema EBMT ma anche il punto di partenza di elaborazioni successive di notevole interesse Un esempio di tutto questo sono i lavori di Brew 4 e di Brown 5 che illustrano l estrazione automatica a partire dalle coppie di frasi allineate di un dizionario bilingue Ovviamente sono necessari notevoli volumi di frasi ma si tratta senza dubbio di applicazioni di notevole utilit e fascino 2 4 2 Tipologie di Sistemi commerciali A livello commerciale si distinguono tre tipi fondamentali di sistemi per la traduzione assistita MAHT a seconda del tipo di utente cui si rivolgono 7 Ambienti software per traduttori professionisti che lavorano in gruppo Questo tipo di prodotto rivolto a traduttori competenti che lavorano in gruppo e sono connessi mediante una rete locale La workstation di ciascun traduttore offre strumenti per e accedere a una Terminologia bilingue e accedere a una Translation Memory e inviare parti del testo a un server per la Machine Translation Spesso questi strumenti integrano un elaboratore di testi e associano scorcia toie da tastiera ai termini e alle frasi trovate nella Terminologia e nella Trans lation Memory Una importante decisione di progetto riguarda se offrire uno specifico word processor o se invece appoggiarsi a uno di quelli sviluppati da terze parti Normalmente il server supporta strumenti per e gestire il
34. and H lida An Example Based Disambiguation of Prepositional Phrase Attachment In Proceedings of 5th International Con ference on Theoretical and Methodological Issues in Machine Translation 1993 BIBLIOGRAFIA 263 42 43 44 45 46 oe 47 48 49 50 E Sutinen and J Tarhio On Using Q gram Locations in Approximate String Matching In Proceedings of Third Annual European Symposium 1995 E Sutinen and J Tarhio Filtration with Q samples in Approximate String Matching In Combinatorial Pattern Matching 7th annual symposium 1996 J Tiedemann Word Alignment Step by Step Technical report Uppsala University Department of Linguistics 1999 Trados Team Edition Translation Memory Technologies Home page http www trados com Cypresoft Trans Suite 2000 Home page http www cypresoft com E Ukkonen Algorithms for Approximate String Matching In Information and Control 1985 E Ukkonen Approximate String Matching with Q grams and Maximal Matches In Theoretical Computer Science 1992 J Ullman A Binary n gram Tecnique for Automatic Correction of Substi tution Deletion Insertion and Reversal Errors in Words The Computer Journal 1977 S K M Wong W Ziarko and P C N Wong Generalized Vector Space Mo del in Information Retrieval In Proceedings of 8th ACM SIGIR Conference on Research and Development in Information Retrieval 1985
35. intersezione degli insiemi R ed A figura 1 5 18 1 Analisi dell information retrieval Definizione 1 9 Richiamo Recall Si definisce Richiamo o Recall la fra zione di documenti rilevanti insieme R che stata recuperata cio Ra R Richiamo Definizione 1 10 Precisione Si definisce Precisione la frazione di documenti recuperati insieme A che rilevante cio Ral Precisione A Documenti rilevanti nell insieme di risposta Ra Collezione Documenti Insieme di rilevanti risposta IR A Figura 1 5 Precisione e richiamo per una data richiesta di informazione 1 4 2 Curva precisione richiamo Richiamo e precisione assumono che siano stati esaminati tutti i documenti nel Vinsieme di risposta A Tuttavia all utente non viene normalmente mostrato tutto l insieme dei documenti in una sola volta I documenti in A vengono prima ordinati in base al grado di rilevanza quindi l utente esamina la lista ordinata cominciando dall alto In questa situazione le misure di precisione e richiamo cambiano man mano che questi procede con l esame dell insieme delle risposte A Pertanto per una corretta valutazione necessario disegnare una curva precisione richiamo 3 Si procede nel modo seguente immaginiamo che l insieme R contenga i documenti rilevanti alla query q ad esempio Ra d3 ds dg d25 d39 daa ds6 d71 dg9 d123 1 4 Valutazione dei risultati
36. 13 Ricerca sottoparti simili DBMS data flow diagram 137 5 14 Estrazione risultati data flow diagram 137 5 15 Preparazione all allineamento data flow diagram 138 5 16 Allineamento frasi data flow diagram parte 1 139 5 17 Allineamento frasi data flow diagram parte 2 140 5 18 Allineamento parole data flow diagram parte 1 140 5 19 Allineamento parole data flow diagram parte 2 141 5 20 Aggiunta di dati alla TM data flow diagram parte 1 142 5 21 Aggiunta di dati alla TM data flow diagram parte 2 143 6 1 Distribuzione della collezione DPaint 147 6 2 Distribuzione della collezione Logos 147 6 3 Allineamento frasi i paragrafi di partenza esempio 1 148 6 4 Allineamento frasi i paragrafi di partenza esempio 2 148 6 5 Allineamento frasi i risultati esempio 1 149 6 6 Allineamento frasi i risultati esempio 2 0 0 149 6 7 Allineamento frasi i risultati esempio 2 bis 150 6 8 Allineamento parole i risultati esempio1 151 6 9 Allineamento parole i risultati esempio2 151 6 10 Allineamento parole i risultati esempio 4 152 6 11 Allineamento parole i risultati esempio 5 152 6 12 Allineamento parole i risultati esempio 6 153 6 13 Copertura ottenuta sulle collezioni 154 6 14 Confronto tra i tempi nelle varie modalit di ricerca
37. 135 mato dalla funzione di pretraduzione di cui la ricerca di similarita costituisce una parte fondamentale SimSearch pretranslate SimSearch Tabella FULLMATCH Tabella MATCHPOS nomi tabelle Q K opzioni filtri match per sottoparti se sub 1 passaggio match frasi complete DBConnect approxJoinQuery SimSearch frasi frasi q grammi q grammi Tabella PHRASE1 Tabella PHRASE2 Tabella QPHRASE1 Tabella QPHRASE2 Figura 5 10 Ricerca frasi intere simili data flow diagram In figura 5 11 si presenta invece pi in dettaglio il punto di vista del DBMS con le stored procedure da esso utilizzate per risolvere la query DBConnect approxJoinQuery SimSearch Distance wordEditDistanceDiag Distance wordEditDistanceSubCheck SimSearch SimSearch DBU tility minimum Li SimSearch eta DBUtility vectorFromString SimSearch Figura 5 11 Ricerca frasi intere simili DMBS data flow diagram 136 5 Il progetto del software Per queste ultime vengono rappresentate anche le semplici funzioni di utilita da esse richiamate e minimum utilizzata dall algoritmo standard dell edit distance per trova re il minore tra tre valori numerici e vectorFromString utilizzata da entrambi gli algoritmi di edit distance per separare e confrontare le parole di una frase Gli schemi riguardanti la query di preparazione alle sottoparti sono sostan
38. Activity diagram dettagliato Nelle sezioni seguenti verranno spiegati in dettaglio tutti questi punti 3 3 Le tabelle utilizzate Vengono qui presentate le tabelle utilizzate nel procedimento di ricerca di si milarit poich si tratta di informazioni indispensabili alla comprensione del 3 3 Le tabelle utilizzate 57 funzionamento delle query in esso utilizzate nello schema si evidenziano in par ticolare i nomi delle tabelle gli attributi le primary key e le foreign key le frecce rappresentano i collegamenti tra le tabelle referenziate nonch gli indici utilizzati Un avvertimento nonostante sia possibile comprendere sin d ora il significato e l utilizzo della maggior parte degli attributi per alcuni ad esempio quelli contenenti dati di allineamento questo sar del tutto chiaro solo dopo aver letto le relative sezioni del presente capitolo e del successivo PHRASE1 Pn conice FRASEORIG FRASE FRASETRAD WORDLEN APOS ASCORE SPOS QPHRASE1 PHRASE2 CODICE FRASEORIG FRASE FRASETRAD WORDLEN APOS ASCORE SPOS QPHRASE2 QSPHRASE1 QSPHRASE2 Figura 3 4 Schema delle tabelle tabelle delle frasi In figura 3 4 vengono mostrate le tabelle utilizzate per la memorizzazione delle frasi i nomi sono quelli predefiniti ma sono configurabili dall utente e Phrasel contiene le frasi della translation memory cio quelle dei docu menti di riferimento da cui verranno estrat
39. Asr APr ASd INS 31 170 1798 Figura 2 9 Sistemi commerciali Atril D j Vu Cypresoft Trans Suite 2000 Si tratta di una suite di programmi creata da traduttori per i traduttori 46 I prodotti inseriti in questa suite sono e Editor il programma cuore del sistema figura 2 10 che unisce in un unica interfaccia la modifica delle frasi sorgente e destinazione dei dizionari e la visualizzazione dei suggerimenti di traduzione e Align il programma di allineamento delle frasi e Utility per la gestione dei dizionari Dictionary Setup Utility DSU Ma ster Dictionary Editor e Translation Management System TSMS que st ultimo in grado di estrarre informazioni statistiche dai dizionari e dalla Translation Memory 2 4 EBMT Stato dell arte 4T s a real Data Dictionary f y useful information that enables you to manage your projects on a higher professional level e TSMS also auto recovers lost data due to a computer failure it automatically regenerates databases project information Dictionary and Translation Memory information and lots more TRANS Suite 2000 has a very powerful editor thet converts complicated documents into a Deze informatie werd automatisch gege td terwijl de De TSMS reageer als een echte Data Dictionary Directory waardoor u zeer bruikbare informatie kan opwragen die een in staat brengen om op een professioneel hoog niveau aan roject Management te doen Het genereert automatis
40. DI inimumO int See transPos int wordEditDistance int vectorFromString Vector wordEditDistanceDiag int wordLen int wordEditDistanceSubCheck int wordSubString String Queste sono le classi caricate e registrate in Oracle metodi richiamati da Oracle nelle query Figura 5 3 Package SimSearch class diagram parte 2 Si ricorda che nei DFD delle sezioni 5 2 1 e 5 2 5 verr mostrato pi in det taglio il funzionamento dei metodi per la ricerca di similarit e per l aggiunta di dati alla Translation Memory Infine una nota per quanto riguarda le tabel le utilizzate da questo package per una descrizione completa si rimanda alla sezione 3 3 5 1 I package e le classi 129 5 1 2 Package Align In figura 5 4 sono mostrate le classi del package Align che realizzano l allinea mento tra frasi si tratta di una classe astratta SentAlign contenente i me todi che implementano gli algoritmi di allineamento descritti nel capitolo 4 e Sent Alignment una classe istanziabile che rappresenta l oggetto di allineamento vero e proprio abstract Align SentAlign Align SentAlignment prepareTabbed void prepareToAlign int sentAlignMain void findSubRegions Vector lengthOfARegion int match int pnorm double SentAlignment void printRegion void int regionLengths int int sAlign Vector int twoSideDistance int int wordSi
41. In questa sezione verranno mostrate le classi e le tabelle di questo package in modo da creare un quadro unitario del software nel suo insieme inol tre verranno introdotte le estensioni e le ottimizzazioni che sono state apportate per soddisfare le nuove esigenze di utilizzo sia in termini di nuove funzioni sia in termini di maggiore efficienza Estensioni al codice Le classi del package Stemming utilizzate in questo software sono mostrate in figura 5 9 La classe NormalizzaFrase e in particolare il metodo normalizz il cuore del package ed quella che viene richiamata direttamente da SimSearch Utilizzando le classi Rule per le regole di elaborazione e le classi radice Rad per nomi aggettivi e avverbi essa restituisce un oggetto Output che prevede phrase una stringa contenente la frase normalizzata e comp_time il tempo im piegato per l elaborazione Proprio la classe dei risultati Output stata estesa per coprire tutte le esigenze della nuova applicazione il software nella ricerca di sottoparti simili non poteva comprendere a quali parole della frase originale corrispondessero le parole presenti nella parte normalizzata E stato pertanto aggiunto un membro a questa classe sPos una stringa contenente le posizioni numeri delle parole della frase originaria cui corrispondono le parole della frase normalizzata vedi anche la sezione 4 5 Ottimizzazioni alle tabelle e alle query Le tabelle utilizzate dallo st
42. JAVA selezione while score n lt 0 if lok return 1 else return n e Estrae il vettore di distanze dal vettore delle frasi private static Vector extractDist Vector vLines String delim Vector vDist new Vector for int i 0 i lt vLines size i String line String vLines elementAt i if line startsWith delim linea contenente informazioni di distanza String num line substring delim length 1 int dist Integer parseInt num vDist addElement new Integer dist return vDist e Restituisce il vettore delle frasi privato delle linee contenenti le informazioni sulla distanza private static Vector removeDist Vector vLines String delim for int i 0 i lt vLines size i String line String vLines elementAt i if line startsWith delim linea contenente informazioni di distanza vLines removeElementAt i i return vLines e Restituisce il vettore delle frasi privato delle linee contenenti i commenti A 2 Package Align 241 private static Vector removeComments Vector vLines for int i 0 i lt vLines size i String line String vLines elementAt i if line startsWith linea contenente commenti vLines removeElement At i i return vLines Calcola la Longest Common Substring in caratteri tra due stringhe parole
43. Memory L accuratezza e la qualit della traduzio ne dipendono fortemente dalla dimensione e dalla copertura della Translation Memory ma non necessario che questa assuma le dimensioni dei database ri chiesti ad esempio dai sistemi di traduzione statistica poich non necessario coprire l intero vocabolario 36 2 Analisi della traduzione assistita I normali sistemi di traduzione automatica producono le traduzioni applican do conoscenza linguistica essi analizzano linguisticamente il testo nel linguaggio sorgente associano le strutture linguistiche alle loro controparti nel testo de stinazione e costruiscono una traduzione da zero Questi sistemi hanno due principali svantaggi sono dipendenti dalla lingua poich impiegano avanzate tecniche linguistiche che si possono applicare esclusivamente a una lingua speci fica Pertanto sono limitati ai linguaggi che possono gestire Inoltre poich un programma per computer non potra mai riuscire a capire realmente il linguaggio e il contesto i sistemi automatici producono traduzioni sterili e spesso inoppor tune La maggior parte di questi sistemi hanno dizionari e frasi che possono essere personalizzati ma difficilmente raggiungono la qualita di una traduzione umana professionale I sistemi di tipo Translation Memory TM invece memorizzano le tradu zioni passate e le propongono quando traducendo nuovo materiale incontrano frasi identiche o simili I sistemi TM imparan
44. PathX e PathY partendo dalla cella in basso a destra possibile ricostruire a ritroso il miglior allineamento trovato dalla cella 2 2 si passa alla cella 1 1 quindi alla cella di partenza 0 0 figura 4 12 0 1 2 i i Figura 4 12 Allineamento frasi il percorso di allineamento Ognuno di questi movimenti corrisponde ad un allineamento la cui di stanza si calcola sottraendo il valore della cella di partenza di D a quella di arrivo 4 3 Allineamento delle frasi 103 2 2 1 1 sostituzione Distanza 66 53 13 frase 2 1 1 0 0 gt sostituzione Distanza 53 0 53 frase 1 L allineamento risultante allora nel formato X1 Y1 X2 Ya D 15100053 frase lunga 15 allineata con frase lunga 10 distanza 53 560013 frase lunga 5 allineata con frase lunga 6 distanza 13 La distanza totale del miglior allineamento trovato per questo paragrafo per tanto 66 53 13 Il risultato dell allineamento di questo esempio abbastanza scontato ma stato volutamente reso molto semplice per non complicare eccessivamente la trattazione e far comunque capire i passi fondamentali del calcolo dinamico Esempi pi significativi dal punto di vista dei risultati ottenuti saranno mostrati nel Capitolo 6 4 3 5 I parametri disponibili un riassunto Si riassumono qui di seguito i parametri disponibili per l allineamento delle frasi per fornirne una visione unitaria Sono variabili d
45. Result 203 A 1 7 Classe SimSearch SimSearch 204 A 1 8 Classe SimSearch Utility posto eek hg eed gs eS 214 A 2 Package Alieni he he ar he Be Sth oh Bn hen cA dina ches aA k Rio esd 217 A 2 1 Classe Align SentAlign oaa a 217 A 2 2 Classe Align SentAlignment 230 A 2 3 Classe Align Token sta oa hod ad ae te Ho hea eS ceed 231 A 2 4 Classe Align WordAlign LL 232 A 2 5 Classe Align WordAlignment 244 A 3 Package GlobalUtility 5 32983 Gs Sed amp Dede Sele ee 245 A 3 1 Classe GlobalUtility GlobalUtility 0 02 245 A 3 2 Classe GlobalUtility TMPhrase 251 B Il codice SQL 253 Bel Asi Serpe tele Arene he et tt di Gt atte de eee a Be 253 B 1 1 Creazione delle tabelle 253 B 2 Creazione delle stored procedure LL 254 Boeder nebbie dedotti a i 255 B 3 1 Ricerca full primo passo 255 B 3 2 Ricerca full secondo passo 255 Biol R icet a Subi apx fot a eee ie eee ke e a eaS 256 B 3 4 Estrazione risultati 0a a a a a a a a a a 257 Elenco delle figure 1 1 La vista logica di un documento da full text a parole chiave 1 2 Il procedimento dell Information Retrieval 1 3 Modello booleano le tre componenti congiuntive della query q 1 4 Modello vettoriale il coseno di 0 adottato come sim d q 1 5 Precisione e richiamo per una data richiesta di informazione 1 6 Curva Richiamo Precisione un
46. SE dj A bj Pertanto per calcolare il punteggio di LCS tra le parole example ed esem pio si costruir la matrice mostrata in figura 4 16 il risultato ottenuto una lunghezza di tre caratteri cella in basso a destra opportuno inoltre rapportatare questo risultato assoluto alla lunghezza del le parole confrontate dividendo il valore ottenuto dal calcolo per il massimo delle lunghezze delle due parole si ottiene un valore compreso tra 0 parole diverse e 1 parole identiche Verranno considerate simili le parole con un punteggio superiore al parametro minLC S normalmente impostato a 0 4 per l esempio il punteggio 3 7 0 43 gt minLC S pertanto le due parole vengono considerate giustamente affini e messe in corrispondenza Il punteggio di somiglianza risulta LCS scoresim A B lesMultx _ maz Al B 112 4 EXTRA un ambiente EBMT Figura 4 16 Allineamento parole LCS un esempio di calcolo Esso calcolato moltiplicando il valore relativo dell LCS per il moltiplicatore lesMult essendo lesMult impostato di default a 1000 i punteggi di affinit delle parole saranno in questo caso compresi tra 0 e 1000 La funzione di smorzamento I valori di punteggio visti per uguaglianza e somiglianza vengono poi smorzati da un opportuna funzione di smorzamento che risente della distanza relativa tra le posizioni nelle rispettive frasi delle due parole confrontate evidente
47. Valutazione con singoli valori sus Ga ee Le query di un sistema IR Las Lire Ei RE EIA Operazioni sul testo eat WoO Stemming 2 2 ea aa ana a pa era p ee aS eh a Indicizzazione e Inverted index LL IR e Ricerca di Similarit Stato dell arte 0202 1 8 1 La Ricerca scientifica L20000 1 8 2 I Sistemi commerciali lt a 2 Analisi della traduzione assistita 2 1 2 2 2 3 2 4 Introduzione alla Machine Translation paradigmi dei sistemi di MT ul seach ete nok pat ee pa 2 2 1 Paradigmi linguistic based 2 2 2 Paradigmi non linguistic based Sistemi EBMT 2s 472k le al at cn are aloe i 2 3 1 Schema di funzionamento 84 EBMT Stato dell arte vil 10 11 12 13 15 17 17 18 20 20 21 22 22 23 23 26 viii INDICE 2 4 1 La Ricerca scientifica be PR kM 2 ee a 39 2 4 2 Tipologie di Sistemi commerciali 42 2 4 3 I Sistemi commerciali pi diffusi 43 244 di lirit attuali gt Leni ola bi ee dla 47 II Il progetto EXTRA 51 3 Ricerca di similarit tra frasi 53 Bal ea re tee 25g allea en ale ot oa ies 53 3 2 I passi fondamentali del procedimento 54 3 3 Le tabelle utilizzate tsk 2 2 de eS e e a 56 3 4 Preparazione delle frasi 3 Casa dialer Be ole 59 3 4 1 D elaborazione tt ni ELE nai 59 3 4 2 La suddivisione inqgrammi 60 vd Dbainserimento Sa oe A AIR ei edi 61
48. View Insert Format Tools Table Window Help Trados x Dedeay irsa lt o c boa qgse ss kKo n amp cra F S Match 1 of 2 Generieren eines Event Objekts To create an Event Object please follow the actions below Um ein Event Objekt zu l schen gehen Sie bitte wie folgt vor Click the Event Object button on the Object Palette Figure 12 left Click the Object button on the Object Palette Figure 13 right Click in the Designer Window An Event Object appears surrounded by handles If you dont see it choose Invisible Objects from the View menu Either way the object s default name appears in the Objects List of the Scene RIA Figura 2 8 Sistemi commerciali Trados Translator Workbench Atril D j Vu D j Vu 9 un prodotto integrato che utilizza tecniche di EBMT e Translation Memory anch esso in grado di cercare e fornire suggerimenti su frasi trovate in modo esatto eract match o approssimato fuzzy match utilizza inoltre una serie di database aggiuntivi che vengono chiamati memory database terminology database e project lexicon per migliorare la qualit delle frasi suggerite D j Vu ha anche molte caratteristiche aggiuntive un ambiente integrato per la traduzione in figura 2 9 l interfaccia utilizzata completo di word proces sor proprietario ricerca automatica delle frasi presenti nella translation memory possibilit di presentare in vario modo i
49. array numerici contenenti ciascuno tanti elementi quante sono le parole della frase della lingua sorgente e Pos posizione dell elemento della frase destinazione cui l elemento della frase sorgente associato e Score punteggio dell associazione tra gli elementi Ad esempio l assegnazione Pos 3 4 equivale ad associare al terzo elemen to della lingua sorgente il quarto della lingua destinazione Utilizzando queste strutture dati viene mantenuto il carattere della funzione di allineamento poich ad ogni elemento corrisponde una specifica posizione nell array ad ogni elemen to della frase sorgente non corrisponder mai pi di un elemento della relativa traduzione 4 4 Allineamento delle parole 109 L algoritmo ha la seguente struttura V categoria di elementi V elemento j della frase destinazione bestScore minScore bestPos 1 ricerca del miglior allineamento per l elemento corrente V elemento i della frase sorgente Calcola il punteggio di affinit score i j Se score i j gt bestScore bestScore Score i j bestPos i Se bestPos 1 trovato un possibile allineamento pos bestPos j score bestPos bestScore Gli elementi della frase destinazione vengono esaminati uno dopo l altro e per ciascuno viene ricercato il miglior accoppiamento possibile con gli elementi della frase sorgente alla fine del processo avremo per ciascun elemento della frase sorgente il migliore accoppiament
50. che allineano gradualmente le varie porzioni dei testi ini zialmente viene prodotto un allineamento sommario su tutto il documento poi uno sempre pi preciso su finestre di testo via via pi ridotte Ci che pi interessante di questo approccio la ricerca delle parole affini cognates parole che nelle due lingue rimangono uguali o comunque molto simili sintatticamente e che dunque saranno molto probabilmente in corrispondenza In particolare Church considera affini le parole che contengono 4 caratteri iniziali uguali L allineamento a livello delle parole proposto da molti altri ricercatori che nei loro lavori hanno soprattutto tentato di trovare metodi migliori per la ricerca delle parole affini Simard Foster e Isabelle 38 propongono di allineare parole corte trovate per intero o lunghe e con almeno 4 caratteri iniziali in comune alcuni altri ricercatori 17 suggeriscono invece di considerare affini parole con 42 2 Analisi della traduzione assistita in comune 4 caratteri consecutivi ma non necessariamente in posizione iniziale In generale i risultati ottenuti sono piuttosto incoraggianti Alcuni si spingono ancora pi in l come Tiedemann 44 o Kondrak 18 che utilizza informazioni fonetiche e semantiche per ottenere allineamenti pi accurati ovviamente i tempi di calcolo e la quantit di informazioni necessarie aumentano esponenzialmente Come conclusione di questa panoramica importante ricordare che l
51. che utilizzano istruzioni JDBC 29 per interfacciarsi ad Oracle ed eseguire query non definite staticamente ma create dinamicamente 128 5 Il progetto del software La classe PosQGram implementa l oggetto q gramma posizionale utilizzato nelle fasi di filtraggio della ricerca la classe astratta Utility contiene una serie di funzioni di varia utilita come la generazione di un vettore di q grammi da una frase metodo qGramVector o Velaborazione delle frasi stesse Questa classe si avvale anche per la normalizzazione del package Stemming le cui classi saranno analizzate nella relativa sezione Completano il package le classi astratte Distance e DBUtility figura 5 3 che contengono i metodi legati al calcolo dell edit distance e altre funzioni di utilit Queste funzioni si differenziano da quelle presenti nella classe Utility per il fatto che saranno richiamate direttamente dalle query eseguite in Oracle a questo fine devono essere registrate e caricate nel DBMS mediante l apposito comando loadjava e i relativi script mostrati nell appendice B 1 Esse divengono in pratica funzioni interne al DBMS e vengono pertanto definite Stored Procedure 32 Tra quelle presenti ricordiamo wordSubString per estrarre una sottoparte di una frase wordLen per calcolare la lunghezza di una frase in parole transPos per il calcolo delle corrispondenze tra sottoparti di frasi nelle due lingue abstract abstract ir
52. della traduzione assistita L allineamento Rimane da considerare un ultimo aspetto del procedimento ultimo ma non certo meno importante l allineamento Per poter introdurre i documenti nella Trans lation Memory e perch questa possa essere di una qualche utilit necessario che le frasi della lingua sorgente da tradurre siano messe in relazione alle cor rispondenti frasi tradotte della lingua destinazione Per poterlo fare necessario attuare un processo di allineamento che dati i due documenti nelle due lingue fornisce in uscita le coppie di frasi da registrare nella TM L allineamento fondamentalmente una funzione di corrispondenza 1 1 in spazi bitestuali Un bitesto bitext comprende due versioni di un testo cio un testo in due differenti lingue creato dai traduttori ogni volta che traducono un testo Ogni bitesto definisce uno spazio bitestuale di forma rettangolare come illustrato in figura 2 6 Termine Diagonale principale posizione nel testo 2 y Origine X posizione nel testo 1 Figura 2 6 Allineamento uno spazio bitestuale La larghezza e l altezza del rettangolo sono le lunghezze delle due componenti di testo L angolo del rettangolo in basso a sinistra l origine dello spazio bitestuale e rappresenta l inizio dei due testi L angolo in alto a destra il termine e ne rappresenta la fine La linea tra l origine e il termine la diagonale principale Oltre
53. di dati alla TM data flow diagram parte 1 In figura 5 21 viene mostrata l ulteriore operazione svolta l estrazione e la registrazione dei due set di q grammi uno di dimensione q registrato nelle tabelle QPhrase ed uno di dimensione minore qSub registrato nelle tabelle QSPhrase richiesti dalle operazioni di ricerca che verranno svolte sulla TM Vengono utilizzate le seguenti funzioni e qGramVector applicata alla frase estesa con i caratteri iniziali e finali restituisce il vettore di q grammi risultanti e fillQtable provvede ad interfacciarsi con il DBMS e a registrare i q grammi nelle opportune tabelle 5 2 I flussi di dati DFD 143 SimSearch addMemory SimSearch Tabella Tabella QPHRASE1 QSPHRASE1 nome tab frasi Q QSUB q grammi q grammi dim Q dim QSUB DBConnect fillQTable SimSearch frasi q grammi Utility qGramVector SimSearch frasi frasi frasi estese Tabella PHRASE1 Utility extendString Translation Memory SimSearch Figura 5 21 Aggiunta di dati alla TM data flow diagram parte 2 Capitolo 6 Le prove sperimentali e 1 risultati ottenuti In questo capitolo vengono mostrati i risultati ottenuti utilizzando gli approcci fin qui descritti in particolare si analizzer tanto l efficacia quanto l efficienza delle varie funzionalit offerte da EXTRA sia per quanto riguarda gli algoritmi di allineamento sia per la ricerca di similarit nel su
54. di produrre il file di output di tutto il processo di pretraduzione questo contiene tutti i suggerimenti trovati e le in formazioni aggiuntive quali tempo impiegato nelle varie fasi percentuale di frasi trovate ecc SimSearch pretranslate SimSearch File Pretradotto nomi tabelle file output opzioni DBConnect extractResults SimSearch frasi frasi match frasi complete match sottoparti Tabella PHRASE1 Tabella PHRASE2 Tabella FULLMATCH Tabella SUBMATCH Figura 5 14 Estrazione risultati data flow diagram 138 5 Il progetto del software Per quanto riguarda i metodi richiamati dal DBMS oltre a wordSubString utilizzato anche transPos per ricavare dalle stringhe di coordinate le giuste corrispondenze tra le frasi in lignua sorgente elaborate quelle in forma originaria e quelle nella lingua destinazione 5 2 2 Preparazione all allineamento La preparazione all allineamento descritta nella sezione 4 2 Nel DFD di figura 5 15 sono mostrati i metodi coinvolti il metodo principale prepare ToAlign della classe Align Esso fa uso dei metodi della classe GlobalUtility per effettuare la lettura dei file da preparare e readPhrases nel caso in cui le frasi non siano gi separate una per linea ed occorra pertanto identificarle correttamente e readLines in caso contrario SentAlign prepareToAlign Align nome file output frasi separate
55. di un sistema di IR 19 Ipotizziamo che l algoritmo da valutare presenti il seguente elenco ordinato di documenti 2 dg4 T ds11 12 dag 3 gt ds 8 d129 13 da50 4 de 9 dig7 14 d113 5 dg 10 gt d 15 gt d I documenti rilevanti alla query q sono evidenziati da una freccia gt Si ricavano queste considerazioni il documento dj23 ha il massimo ranking ed rilevante Inoltre il documento corrisponde al 10 di tutti i documenti rilevanti dell insieme R Pertanto avremo una precisione del 100 ad un richiamo del 10 Poi il documento dsg che ha un ranking di 3 il prossimo documento rilevante a questo punto la precisione sar di circa il 66 con il 20 di richiamo Proseguendo in questo modo si pu ottenere il grafico mostrato in figura 1 6 120 100 80 60 Precisione 40 20 Richiamo Figura 1 6 Curva Richiamo Precisione un esempio Infine per valutare un algoritmo di IR su tutte le query di test si mediano i valori di precisione a ogni livello di richiamo 20 1 Analisi dell information retrieval no e dove P r la precisione media al livello di richiamo r N il numero delle query e P r la precisione al livello di richiamo r per la i esima query 1 4 3 Valutazione con singoli valori possibile ottenere delle valutazioni complessive di un sistema di IR anche utilizzando un solo valore Due sono le tecniche pi utilizzate e Precisione media ai document
56. distanza calcolata che verr registrata in tabella altrimenti restituisce 1 e provoca l esclusione della coppia di frasi candidate La sezione identificata dall etichetta lt lt filtri gt gt contiene particolari condi zioni che riescono a filtrare preventivamente le possibili coppie di frasi velociz zando cos l esecuzione della query Essi si basano sull utilizzo dei q grammi precedentemente estratti e memorizzati e verranno ora analizzati in dettaglio 3 6 1 I filtri Un punto di forza dell approccio presentato la possibilit di inserire nella query una serie di filtri che riducono al minimo indispensabile il richiamo della stored procedure per il calcolo dell edit distance essi sfruttando i q grammi memo rizzati nelle tabelle ausiliarie riescono a garantire ottime prestazioni grazie al basso numero di falsi positivi restituiti e correttezza grazie all assenza di false esclusioni I filtri implementati per questa query sono l adattamento di quel li descritti in 14 segue una descrizione del fondamento teorico di ciascuno di 3 6 La query di ricerca delle frasi intere simili 69 essi oltre a come vengono implementati nella query precedentemente vista Si ricorda che ciascuno di essi liberamente attivabile o disattivabile mediante op portuni parametri in modo da poterne testare accuratamente e singolarmente il comportamento Il filtro di conteggio L idea di fondo del filtro di conteggio
57. diversi aspetti la dimensione dei q grammi q e quella minima della sottoparte IMinSub sono variabili e indipendenti inoltre non si pu pi tener conto dei q grammi estesi in tutto 2 q 1 che sono disponibili solo per le frasi intere Giocando su questi parametri la versione qui presentata viene denomina ta veloce poich utilizza nella query il set di q grammi di dimensione maggiore normalmente avente q 3 quello utilizzato anche nella query del primo pas saggio in questo modo il DBMS lavorando sulle stesse tabelle fornisce una notevole ottimizzazione di prestazioni Inoltre poich tipicamente la dimensio ne dei q grammi maggiori paragonabile alla lunghezza minima delle sottoparti normalmente anche MinSub 3 il valore minCount risulta piuttosto basso cio uguale a uno o inferiore normalmente si considerano pertanto le frasi che abbiano almeno 1 q gramma cio q parole consecutive in comune Nonostante si possa vedere che anche in questo caso non tutte le possibili sottoparti vengono individuate per grandi valori di q e bassi valori di MinSub non detto che ci siano q grammi comuni tuttavia si vede che con le impo stazioni standard e con tipiche Translation Memory gi possibile individuare buona parte 80 circa dei suggerimenti possibili in un tempo molto ridotto Versione a 2 passi accurata Questa versione sostanzialmente analoga a quella a due passi vista preceden temente tuttavia e
58. e Dist la distanza assoluta tra la coppia di frasi simili il valore dell edit distance e DistRel la distanza tra le frasi simili espressa come percentuale della lunghezza della frase cercata La parte di query relativa alle frasi intere strutturata come segue 4 6 Pretraduzione 119 estrazione risultati frasi intere SELECT fm cod2 AS codice2 r2 frase AS frase2 AS sfrase2 r2 fraseorig AS fraseorig2 AS sfraseorig2 fm codl AS codicel rl frase AS frasel AS sfrasel rl fraseorig AS fraseorig1 AS sfraseorigl rl frasetrad AS frasetrad1 AS sfrasetrad1 fm dist AS dist fm dist r2 wordLen AS distrel 0 AS inizio 0 AS sub FROM FULLMATCH fm lt tab1 gt rl lt tab2 gt r2 WHERE fm codl rl codice AND fm cod2 r2 codice ORDER BY codice2 sub inizio dist codicel In caso di ricerca di sottoparti attiva per i match tra sottoparti vengono anche estratti i seguenti dati e SFrase2 e SFrase1 le parti delle frasi elaborate effettivamente riconosciute come simili e Inizio il punto di inizio nella frase cercata della parte trovata e SFraseOrig2 e SFraseOrig1 le parti delle frasi originarie corrispondenti e SFraseTrad2 e SFraseTrad1 le parti delle traduzioni corrispondenti Alla query viene aggiunta la seguente parte eventuale estrazione risultati sottoparti UNION SELECT sm cod2 AS codice2 r2 frase AS frase2 wordSubString r2 frase sm i2 sm f2
59. e controllo X Figura 4 15 Allineamento parole funzionamento 1 scomposizione delle frasi in elementi token 2 suddivisione di tali elementi in categorie 3 ricerca del migliore allineamento per ciascun elemento di queste categorie 108 4 EXTRA un ambiente EBMT 4 controllo ed interpolazione dell allineamento per ottenere l allineamento finale Le categorie in cui vengono suddivisi gli elementi sono e elementi di punteggiatura punti virgole parentesi virgolette e cos via e sigle e termini alfanumerici parole contenenti almeno un carattere nume rico e parole non contenenti caratteri numerici e di lunghezza maggiore o uguale ad un parametro configurabile minTokLen normalmente impostato a 4 caratteri Per ciascuna di queste categorie viene eseguito separatamente l algoritmo di allineamento questo possibile grazie alla disgiunzione tra i loro elementi ele menti di punteggiatura di una frase potranno allinearsi solo con gli elementi di punteggiatura dell altra e cos via La presenza del parametro minTokLen per mette di scartare dall allineamento quelle parole poco significative e tra le quali sarebbe difficile se non a volte impossibile trovare una corrispondenza lalli neamento di queste risulter comunque dall interpolazione finale ed il processo risulta cos pi veloce ed affidabile 4 4 3 L algoritmo di allineamento L algoritmo prevede l utilizzo dei seguenti
60. esistono inoltre query booleane che utilizzano cio gli operatori OR AND e cos via fino ad arrivare a query in linguaggio naturale e Query strutturali query che riguardano la struttura del testo che pu essere ad esempio basato su ipertesti o gerarchie e Query basate su pattern matching un pattern un insieme di caratteri stiche sintattiche che devono ricorrere in un segmento di testo I pattern pi usati sono parole prefissi suffissi e sottostringhe inoltre possibile tollerare errori specificando non solo la parola ma anche la soglia di erro re Nonostante ci siano molti modelli per la similarit tra le parole il pi accettato nell IR di testi la Levenshtein distance o edit distance L edit distance tra due stringhe il minimo numero di inserimenti cancella zioni e sostituzioni di caratteri necessari a rendere le due stringhe uguali Come si vedr nel Capitolo 3 della seconda parte cui si rimanda per una definizione pi precisa e formale proprio il concetto di edit distance stato approfondito ed esteso nel progetto EXTRA dove rappresenta il vero cardine della ricerca di similarit tra frasi 1 6 Operazioni sul testo Le Text Operation 3 operazioni sul testo riguardano la pre elaborazione del testo di un documento Questa procedura pu essere divisa in pi parti 1 analisi lessicale del testo con trattamento di cifre punteggiatura ecc 2 eliminazione delle parole troppo
61. if di 1 amp amp dj 0 cancellazione Sent Alignment alignS new Sent Alignment x i 1 0 0 0 dist i j dist i 1 j ralign addElement alignS else if di 0 amp amp dj 1 inserimento A 2 Package Align 227 SentAlignment alignS new SentAlignment 0 y j 1 0 0 dist i j dist i j 1 ralign addElement alignS else if dj 1 contrazione Sent Alignment alignS new SentAlignment x i 2 y j 1 x i 1 0 dist i j dist i 2 j 1 ralign addElement alignS else if di 1 espansione Sent Alignment alignS new SentAlignment x i 1 y j 2 0 y j 1 dist i j dist i 1 j 2 ralign addElement alignS else di 2 66 dj 2 fusione SentAlignment alignS new Sent Alignment x i 2 y j 2 x i 1 y j 1 dist i j dist i 2 j 2 ralign addElement alignS for int i ralign size 1 i gt 0 i align addElement SentAlignment ralign elementAt i return align e Restituisce l area sottesa da una distribuzione normale compresa tra inf e z deviazione standard private static double pnorm double z double t pd t 1 1 0 2316419 z pd 1 0 3989423 Math exp z 2 2 1 330274429 t 1 821255978 t 1 781477937 t 0 356563782 x t 0 319381530 gt t vedere Abramowitz M and I Stegun 1964 26 2 17 p 982 r
62. invece considerato e analizzato in quanto copre una porzione della frase cercata l ultima parte non inclusa in nessun altra Pertanto nella tabella dei risultati SubMatch verranno registrati i soli dati dei match migliori in questo caso quelli della frase 10271 e 13456 vedi figura3 17 Come si vedr nel capitolo seguente al momento della presentazione di questi risultati grazie agli algoritmi di allineamento sar possibile suggerire i segmenti delle corrispondenti traduzioni che il traduttore potr riutilizzare direttamente Welcome world compute generate art b 2518 s gt 3945 Se L i l 5673 i I I I I 10271 13456 Figura 3 17 Ricerca delle sottoparti un esempio 3 10 I parametri della ricerca un riassunto Ora che stato descritto tutto il procedimento di ricerca come ricapitolazione finale opportuno riassumerne i vari parametri che nel loro insieme forniscono una notevole flessibilit Sono variabili a piacere e le dimensioni dei q grammi q e qSub 3 10 I parametri della ricerca un riassunto 87 e la massima distanza consentita tra frasi intere k e la massima distanza consentita tra sottoparti di frase kSub e la lunghezza minima in parole dei suggerimenti MinSub Inoltre possibile attivare o meno a seconda delle necessit e
63. l c v 1 582 La misura di distanza cercata data allora da una stima della probabilit condizionata Prob match 6 di cui si considerer il logaritmo per fare in modo che la somma di queste distanze produca i risultati desiderati log Prob match Con Prob match si indica la probabilit legata ad un particolare tipo di corrispondenza nell allineamento I tipi considerati sono i seguenti e 1 1 il caso pi tipico in cui ad una frase in una lignua ne corrisponde una ed una sola nell altra e 1 0 o 0 1 una frase in una lingua non ha corrispondenze nell altra e 2 1 o 1 2 ad una frase in una lingua ne corrispondono due nell altra e 2 2 a una coppia di frasi considerata nel suo insieme corrisponde una coppia di frasi nell altra lingua Come dimostrato in 12 l assunzione di distribuzione normale per 6 molto vicina alla realt della maggior parte dei testi soprattutto quando le due porzio ni di testo in analisi sono effettivamente la traduzione l una dell altra Il grafico della densit empirica presenta di solito un picco pi pronunciato di una gaus siana ma le differenze sono molto piccole e non influenzano l algoritmo figura 4 9 Definita cos la distanza si pone ora il problema di come ottenerne una stima il pi possibile precisa ed allo stesso tempo pratica da calcolare 98 4 EXTRA un ambiente EBMT 0 6 l 0 5 Densit Delta Figura 4 9 Alline
64. lavoro nella Translation Memory Le varie operazioni legate alla ricerca di somiglianza sono state gi descritte nel Capitolo 3 cui si rimanda per un analisi dettagliata In particolare erano state descritte le operazioni relative alla ricerca di frasi intere e di sottoparti con le relative query che arrivavano a registrare nelle tabelle dei risultati i dati dei vari match trovati 118 4 EXTRA un ambiente EBMT File di testo Risultati Lingua sorgente pretraduzione Lingue sorgente e destinazione Translation I Allineamento parole Memory Figura 4 20 Pretraduzione schema Rimane pertanto solo da descrivere l estrazione di questi dati dalle tabelle e la presentazione dei suggerimenti derivanti 4 6 1 La query di estrazione dei risultati Per estrarre i dati relativi ai match delle frasi intere e delle sottoparti si utilizza una query unica formata da una parte per i fullmatch match tra frasi intere sempre presente e da una opzionale per i submatch match tra sottoparti I dati estratti per i fullmatch sono i seguenti e Codice e Codicel i codici rispettivamente della frase da tradurre e di quella della Translation Memory riconosciuta come simile e Frase e Frasel le frasi intere elaborate normalizzate o semplicemente senza punteggiatura e FraseOrig2 e FraseOrig1 le frasi in forma originaria non elaborata e FraseTrad2 e FraseTrad1 le frasi tradotte nella lingua destinazione
65. le traduzioni delle passate edizioni dello stesso manuale In questo modo infatti il sistema fornirebbe dopo aver svolto una ricerca nella TM per frasi identiche o simili suggerimenti pi numerosi e mirati garantendo tra l altro la consistenza dello stile Il meccanismo di ricerca delle frasi nella Translation Memory varia da si stema a sistema cos come il modo in genere molto limitativo di intendere la somiglianza tra esse gli approcci pi utilizzati a questo riguardo verranno illustrati nelle seguenti sezioni di questo capitolo in cui si descriveranno alcuni dei pi importanti sistemi EBMT sviluppati in ambito di ricerca sezione 2 4 1 e in ambito commerciale sezione 2 4 3 Avvenuta la ricerca il traduttore in grado di svolgere il proprio lavoro sul documento utilizzando i preziosi suggerimenti fornitigli dal sistema In questo modo viene prodotto il documento tradotto e il ciclo si chiude esso potr a sua volta essere inserito nella Translation Memory Si rende cos evidente ancora una volta uno dei grandi pregi dei sistemi EBMT man mano che passa il tempo ed il sistema viene utilizzato l utente pu contare su un patrimonio di frasi tradotte sempre pi ricco e completo Suggerimenti per la traduzione r Testo 4 da I tradurre Traduttore Translation professionista Memory Testo Coppie di tradotto Frasi I I Figura 2 5 Funzionamento di un sistema EBMT 38 2 Analisi
66. lo stemming delle frasi e la ricerca delle sottoparti simili e la relativa modalit a un passo a due passi veloce a due passi accurata e i filtri delle query di ricerca conteggio posizione lunghezza e cos via In questo modo il processo di ricerca adattabile alle diverse esigenze dell u tente e consente anche al ricercatore di indagare sul funzionamento delle varie componenti vedendo il comportamento nelle varie situazioni Capitolo 4 EXTRA un ambiente EBMT La ricerca di similarit descritta nel capitolo precedente utilizzata come si visto per sfruttare appieno il potenziale di una Translation Memory fornendo al traduttore preziosi suggerimenti per la traduzione di nuovo materiale Essa ha indubbiamente un importanza fondamentale ma per renderla pienamente utiliz zabile e per avere un vero sistema sistema di Example Based Machine Translation EBMT sono necessarie un certo numero di utilit e funzionalit aggiuntive Lo studio e il progetto di queste ulteriori funzionalit hanno portato alla crea zione di un unico ambiente che fornisse al traduttore tutti i principali strumenti di cui necessitava dal funzionamento integrato e richiamabili e configurabili co modamente tramite un interfaccia comune Questo ambiente stato chiamato EXTRA EXample based TRanslation Assistant in figura 4 1 mostrata la finestra principale EXTRA non solo permette di pretradurre un documento utilizzando gli al
67. niente equivalente a A sheep eats the wolf pur contenendo le stesse identiche parole il significato anzi agli antipodi Mentre i tradizionali modelli di IR in questo caso reputerebbero identiche le due frasi l approccio con edit distance restituisce una notevole distanza facendo intuire la scarsa somiglianza tra i due concetti 3 5 4 L algoritmo ottimizzato per diagonali Come mostrato da E Ukkonen 47 possibile migliorare l algoritmo preceden temente descritto per quanto riguarda il caso peggiore possibile sfruttare la propriet che le diagonali della matrice di programmazione dinamica sono monotonamente crescenti In particolare C 1 j 1 Ci j Cig 1 Figura 3 8 Edit distance l algoritmo ottimizzato per diagonali Come mostrato in figura 3 8 l algoritmo procede calcolando tratti stroke diagonali ogni tratto rappresenta un numero di errori ed una sequenza in cui entrambe le stringhe frasi corrispondono Quando inizia un tratto di e errori esso continua finch continuano gli adiacenti tratti e 1 oppure finch continua la corrispondenza delle stringhe sufficiente una delle condizioni enunciate figura 3 9 66 3 Ricerca di similarita tra frasi x N N N N N Figura 3 9 Edit distance il calcolo dei tratti diagonali In questo modo possibile arrivare alla cella finale il risultato calcolando un numero notevolmente inferiore di celle e velocizzando dunqu
68. per esempio che se le frasi in questione contengono due virgole una in posizione iniziale ed una in posizione finale pi probabile che la prima virgola incontrata in una frase sia da allineare con la prima incontrata nell altra e cos via per ottenere questo comportamento necessario che il punteggio tra elementi in posizioni vicine a parit di uguaglianza o somiglianza sia maggiore di quello in posizioni lontane La funzione di smorzamento cos definita 1 minDecay 1 coeff x pa p s pa pg minDecay 4 In figura 4 17 ne mostrato l andamento per minDecay coeff 0 2 i valori standard 4 4 Allineamento delle parole 113 S 1 0 p1 p2 Figura 4 17 Allineamento parole la funzione di smorzamento Il punteggio finale si ottiene moltiplicando il punteggio di uguaglianza o somiglianza per il valore di questa funzione score A B scor eq sim A B Xx s pa pr Ovviamente pa e pg rappresentano le posizioni delle parole all interno delle frasi quando le due parole si trovano nella stessa posizione lo smorzamento risulter nullo s 0 1 pi la posizione sar differente pi lo smorzamento sar elevato tendente asintoticamente a minDecay 0 2 C da notare un ultimo aspetto di questa funzione le posizioni delle parole PA e PB prima di essere utilizzate nel calcolo vengono rese confrontabili Ad esempio se la frase in cui presente la parola A di 2
69. quelle sviluppate da F Gavioli 13 sezione 1 8 2 I limiti principali di questi approcci sono risultati evidenti la ricerca di simi larit limitata alle sole frasi intere permettendo in questo modo un inferiore copertura delle collezioni In particolare stato possibile confrontare dettaglia tamente la copertura ottenibile da EXTRA sulla collezione DPaint con quella delle query di ricerca basate su estensioni per Text Retrieval descritte nella sezione 1 8 2 Copertura 71 Bow 70 60 50 40 30 20 10 0 Query approccio Query EXTRA IR classico Figura 6 19 Confronto di copertura In figura 6 19 si pu vedere che con tali algoritmi non viene superato il 40 di 162 6 Le prove sperimentali e i risultati ottenuti frasi trovate contro il 71 ottenuto dagli algoritmi utilizzati in EXTRA valori standard dei parametri Per fare degli esempi le seguenti frasi trovate da EXTRA effettivamente utili non vengono individuate da approcci classici Frase cercata If you re an experienced computer graphics artist you might want to move directly to About this Manual Frase con parte simile EXTRA If you have some experience with computer graphics software you may want to use this chapter to learn how DPaint handles features you may have encountered in other programs Frase cercata These chapters describe the fundamentals of the program and introduce
70. si postpone DDD DD NI NNQN NM Pye DDD 99 999 i e della punteggiatura che si prepone RA 99 99 99 for int j 1 j lt line length 1 j if line charAt j amp amp line charAt j 1 mLine mLine j else if line charAt j amp amp line charAt j 1 mLine mLine j else if line charAt j amp amp line charAt j 1 mLine mLine j 3 else if line charAt j amp amp line charAt j 1 250 A Il codice JAVA selezione wo mLine mLine 573 j else if line charAt j amp amp line charAt j 1 mLine mLine j else if line charAt j amp amp line charAt j 1 mLine mLine j else if line charAt j mLine mLine else if line charAt j line charAt j line charAt j mLine mLine mLine mLine else if line charAt mLine mLine XN else if line charAt j 29 line charAt j 1 else if line charAt mLine mLine else mLine mLine String valueOf line charAt j separazione punteggiatura terminale non seguita da spazio if line charAt line length 1 line charAt l
71. util Date calcolo tempo impiegato long fine data2 getTime long durata fine inizio 1000 return new Result phraseCount durata numero frasi inserite e tempo impiegato e Inserisce le frasi della translation memory passate come parametro nella tabella delle frasi fornita in input translation memory public static Result memToDB Vector vTMPhrases String tabella int startCod boolean stem throws SQLException java util Date datal new java util Date per calcolo tempo long inizio datal getTime int phraseCount 0 Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection PreparedStatement pstmt conn prepareStatement INSERT INTO tabella VALUES 2P for phraseCount 0 phraseCount lt vTMPhrases size phraseCount Main MainFrame setStatusBar Extracting and elaborating phrases phraseCount of vTMPhrases size GlobalUtility TMPhrase tmPhrase GlobalUtility TMPhrase vTMPhrases elementAt phraseCount String phraseOrig tmPhrase getPhraseOrig String phraseTrad tmPhrase getPhraseTrad String aPos tmPhrase getAPos String aScore tmPhrase get AScore restituisce la frase normalizzata se stem true oppure la frase senza punteggiatura se stem false Output elabOut Utili
72. void extractResults Result fillPTable Result fillQTable Result findSubMatches Result getLengthDistrib int getMaxCod int memToDB Result abstract SimSearch Utility cleanPhrase Output elabPhase Output extendString String qGramVector Vector SimSearch PretranslationStat fullTime int fullTime2 int subTime int totTime int totTMPhrases int totPhrases int fullPhrases int subPhrases int notFoundPhrases int coverage int fullMatches int subMatches int PretranslationStat void getFullTime int getFullTime2 int getSubTime int getTotTime int getTotTMPhrases int getTotPhrases int getFullPhrases int getSubPhrases int getNotFoundPhrases int getCoverage int getFullMatches int getSubMatchesi int Stemming NormalizzaFrase Figura 5 2 Package SimSearch class diagram parte 1 che di pretraduzione mostrate alla fine dell operazione e il risultato di una elaborazione completo di tempo impiegato Essa utilizza anche e soprattutto DBConnect che contiene tutti i metodi che si interfacciano con il DBMS Oracle tra cui le fondamentali query di ricerca di similarit descritte nel capitolo 3 e mostrate per esteso nell appendice B 3 Queste query vengono realizzate da me todi quali approxJoinQuery ricerca frasi intere o findSubMatches ricerca sottoparti
73. wordSubString r2 frase ml nc m2 nc lt kSub gt gt 0 AND lt lt filtro di inclusione gt gt La query lavora in modo simile a quella delle frasi intere mentre questa re gistrava nella tabella FullMatch i codici delle frasi simili e la relativa distanza minore di k questa registra nella tabella SubMatch i codici delle frasi conte nenti i migliori segmenti simili le loro coordinate posizione delle parole e la relativa distanza minore di kSub La sezione controllo degli estremi semplicemente impone il giusto ordine nella scelta degli estremi dei segmenti m1 dovr avere numero di colonna e di riga inferiore rispetto a m2 La sezione controllo lunghezza minima controlla ap punto che la lunghezza in parole dei segmenti calcolabile come differenza tra le coordinate omonime 1 non sia inferiore al parametro MinSub La nuova stored procedure wordSubString utilizzata dal DBMS per otte nere il segmento in questione a partire dalla frase completa 3 9 3 I filtri I filtri utilizzati hanno qui il compito di velocizzare l analisi e la costruzione dei vari segmenti scartando molte coppie a priori e riducendo cos il calcolo della reciproca edit distance filtro di lunghezza AND ABS m2 nc ml nc m2 nr ml nr lt ROUND m2 nc ml nc 1 lt kSub gt filtro di conteggio AND SELECT COUNT x FROM MATCHPOS mla WHERE mla codl m1 cod1 AND mla cod2 ml cod2 AND mla nc lt m2 n
74. 0 parole mentre la frase in cui presente la parola B di 10 la posizione pg verr prima moltiplicata per 2 il rapporto tra le lunghezze len FraseA A len FraseB In questo modo ad esempio la ventesima parola della prima frase e la deci ma parola della seconda ottengono punteggio pieno poich in posizioni relative identiche le ultime delle rispettive frasi 4 4 5 Interpolazione e verifica finali Ottenuta la migliore serie di punti di allineamento come passo finale necessario congiungerli ed interpolarne i valori per i termini intermedi Innanzitutto si provvede ad aggiungere i punti iniziali e finali se non presenti quindi per ogni coppia di punti si immagina di tracciare un segmento che li congiunge e si assegnano i valori compresi tra gli estremi alle parole intermedie 114 4 EXTRA un ambiente EBMT Frase in lingua destinazione punto effettivo punto interpolato X punto scartato 1 2 3 4 5 6 Frase in lingua sorgente Figura 4 18 Allineamento parole interpolazione e verifica un esempio Nell esempio di figura 4 18 le parole della frase sorgente 2 3 e 5 hanno ottenuto dall interpolazione i propri valori di allineamento In questa fase finale previsa anche una verifica dei punti trovati per recupe rare alcuni possibili errori delle fasi precedenti La verifica consiste nell evitare di creare una funzione di allineamento con picchi troppo pronunciati nell esempio il p
75. 104 Allineamento parole un esempio LL 105 Allineamento parole funzionamento 107 Allineamento parole LCS un esempio di calcolo 112 Allineamento parole la funzione di smorzamento 113 Allineamento parole interpolazione e verifica un esempio 114 Creazione della Translation Memory schema riassuntivo 116 Pretraduzione schema iu via ee lio ue ele ie aa 118 Estrazione risultati le coordinate per le sottoparti 120 EXTRA il resoconto grafico sulla pretraduzione 122 EXTRA l analisi grafica della distribuzione della TM 123 EXTRA la configurazione della ricerca di similarit 123 EXTRA la configurazione degli allineamenti 124 EXTRA package diagram es posero BRE SA 126 Package SimSearch class diagram parte 1 127 Package SimSearch class diagram parte 2 128 Package Align class diagram parte 1 129 Package Align class diagram parte 2 ooa a 129 Package Stemming class diagram LL 131 Package Stemming le tabelle utilizzate 0 02 132 Package GlobalUtility class diagram 133 Package Main class diagram ii Sie eee die be war 134 Ricerca frasi intere simili data flow diagram 135 Ricerca frasi intere simili DMBS data flow diagram 135 ELENCO DELLE FIGURE xiii 5 12 Ricerca sottoparti simili data flow diagram 136 5
76. 2 gt CREATE TABLE SUBMATCH cod NUMBER 10 712 NUMBER 3 12 NUMBER 3 codl NUMBER 10 Pil NUMBER 3 f NUMBER 3 dist NUMBER 3 PRIMARY KEY cod2 i2 codl il FOREIGN KEY codl il cod2 i2 REFERENCES MATCHPOS cod1 nr cod2 nc ON DELETE CASCADE FOREIGN KEY cod1 fl cod2 2 REFERENCES MATCHPOS cod1 nr cod2 nc ON DELETE CASCADE pye stmt execute creal stmt execute crea2 stmt execute crea3 stmt close e Elimina le tabelle dei FOREIGN KEY cod2 REFERENCES PHRASE2 codice ON DELETE CASCADE Crea la tabella FULLMATCH Crea la tabella MATCHPOS Crea la tabella SUBMATCH risultati public static void dropResTables throws SQLException Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String eliminal DROP TABLE FULLMATCH String elimina2 DROP TABLE SUBMATCH String elimina3 DROP TABLE MATCHPOS 178 A Il codice JAVA selezione stmt execute eliminal Elimina la tabella FULLMATCH stmt execute elimina2 Elimina la tabella SUBMATCH stmt execute elimina3 Elimina la tabella MATCHPOS stmt close Inserisce le frasi presenti nel file estra
77. 4 cod2 ND m3 codl p3 codice ND m3 cod2 p4 codice ND m3 nr lt m4 nr ND m3 nc lt m4 nc ND m4 nr m3 nr 1 gt 1MinSub ND ABS m4 nc m3 nc m4 nr m3 nr lt ROUND m4 nc m3 nc 1 kSub AND SELECT COUNT FROM MATCHPOS m3a WHERE m3a codl m3 cod1 AND m3a cod2 m3 cod2 AND m3a nc lt m4 nc AND m3a nc gt m3 nc AND m3a nr lt m4 nr A A P gt PPPPPEPD 1 H AND m3a nr gt m3 nr ND ABS m3a nc m3 nc m3a nr m3 nr lt ROUND kSub m4 nc m3 nc 1 gt ALL m4 nc m3 nc 1 ROUND m4 nc m3 nc 1 kSub m4 nr m3 nr 1 ROUND m4 nc m3 nc 1 kSub AND wordEditDistanceDiag wordSubString p3 frase m3 nr m4 nr wordSubString p4 frase m3 nc m4 nc kSub gt 0 AND m3 cod2 ml cod2 AND ml nc m3 nc AND m4 nc gt m2 nc OR m3 nc lt ml nc AND m2 nc m4 nc OR m3 nc lt ml nc AND m4 nc gt m2 nc OR ml nc m3 nc AND m2 nc m4 nc AND ml codl m3 codl AND ml nr m3 nr AND m4 nr gt m2 nr OR m3 nr lt ml nr AND m2 nr m4 nr OR m3 nr lt ml nr AND m4 nr gt m2 nr
78. Algoma sugg rait mardi soir qu il fallait que le gouvernement se prononce clairement et s engage aider nos agriculteurs avant qu il ne soit trop tard Figura 6 4 Allineamento frasi i paragrafi di partenza esempio 2 Forniti i paragrafi in input in essi vengono automaticamente riconosciute le varie frasi e quindi l allineamento delle frasi fornisce in output il risultato mostrato nelle figure 6 5 e 6 6 6 2 Allineamento delle frasi 149 I CI According to our survey 1988 sales of mineral water and soft drinks were much higher than in 1987 reflecting the growing popularity of these products Cola drink manufacturers in particular achieved above average growth rates Quant aux eaux min rales et aux limonades elles rencontrent toujours plus d adeptes En effet notre sondage fait ressortir des ventes nettement sup rieures celles de 1987 pour les boissons base de cola notamment The higher turnover was largely due to y an increase in the sales volume La progression des chiffres affaires r sulte en grande partie de l accroissement du volume des ventes Employment and investment levels also climbed L emploi et les investissements ont galement augment Following a two year transitional period the new Foodstuffs Ordinance for Mineral Water came into effect on April 1 1988 Specifically it contains more stringent requirements regarding quality consistency and p
79. Database Lessicale Multilingue Condiviso MLDB e gestire un database di terminologia multilingue MTDB 2 4 EBMT Stato dell arte 43 e gestire una Translation Memory condivisa in questo frangente sono cru ciali un accesso concorrente e delle rigide procedure di validazione e gestire i compiti di traduzione Ambienti software per traduttori professionisti indipendenti Questi ambienti sono in genere meno potenti molto pi economici e accessibili da tutti gli elaboratori di testi e di documenti commerciali Per quanto riguarda i dizionari non esiste pi un MLDB centrale da gestire ma comunque molto im portante per i traduttori poter facilmente creare accedere modificare esportare e importare la terminologia e le frasi dai database Strumenti per traduttori occasionali Un traduttore occasionale potrebbe essere competente in entrambe le lingue ma anche solo nella lingua sorgente quella cio dei testi da tradurre Di fatto esistono degli strumenti per aiutare persone con una scarsa conoscenza della lingua di destinazione a produrre traduzioni parametrizzabili Questi strumenti offrono funzionalit diverse da quelle dei professionisti e la Translation Memory molto ridotta se non addirittura assente e i dizionari devono contenere molti termini generali e spesso esistono tre livelli di dizionari termini personali terminologia e vocabolario generale e ci sono aiuti per la lingua di destinazione thes
80. ENCES PHRASE2 codice ON DELETE CASCADE 253 254 B Il codice SQL CREATE TABLE MATCHPOS codi NUMBER 10 cod2 NUMBER 10 nr NUMBER 3 nc NUMBER 3 PRIMARY KEY cod1 cod2 nr nc FOREIGN KEY codl REFERENCES PHRASE codice ON DELETE CASCADE FOREIGN KEY cod2 REFERENCES PHRASE2 codice ON DELETE CASCADE CREATE TABLE SUBMATCH cod2 NUMBER 10 i2 NUMBER 3 f2 NUMBER 3 codl NUMBER 10 il NUMBER 3 fl NUMBER 3 dist NUMBER 3 PRIMARY KEY cod2 i2 codl il FOREIGN KEY codl il cod2 i2 REFERENCES MATCHPOS cod1 nr cod2 nc ON DELETE CASCADE FOREIGN KEY codl f1 cod2 2 REFERENCES MATCHPOS cod1 nr cod2 nc ON DELETE CASCADE FOREIGN KEY cod2 REFERENCES PHRASE 2 codice ON DELETE CASCADE B 2 Creazione delle stored procedure CREATE OR REPLACE FUNCTION wordLen frase VARCHAR2 RETURN NUMBER AS LANGUAGE JAVA NAME SimSearch DBUtility wordLen java lang String return int CREATE OR REPLACE FUNCTION wordSubString frase VARCHAR2 da NUMBER a NUMBER RETURN VARCHAR2 AS LANGUAGE JAVA NAME SimSearch DBUtility wordSubString java lang String int int return java lang String CREATE OR REPLACE FUNCTION transPos frase VARCHAR2 n NUMBER RETURN NUMBER AS LANGUAGE JAVA NAME SimSearch DBUtility transPos java lang String int return int CREATE OR REPLACE FUNCTION wordEditDistanceDiag stringal VARCHAR2 stringa2 VARCHAR2 maxd NUMBER RE
81. MINLEN caratteri int tokCount 0 StringTokenizer st new StringTokenizer sent while st hasMoreTokens String tok st nextToken if punctCheck tok vPunct addElement new Token tokCount tok else if numCheck tok vNum addElement new Token tokCount tok else if tok length gt MINTOKLEN vWords addElement new Token tokCount tok tokCount vTokens addElement vPunct vTokens addElement vNum vTokens addElement vWords vTokens addElement new Integer tokCount return vTokens e Verifica se il token avuto in ingresso contiene almeno un carattere numerico private static boolean numCheck String token boolean num false int cont 0 A 2 Package Align 243 while num amp amp cont lt token length if Character isDigit token charAt cont num true cont cont 1 return num e Verifica se il token avuto in ingresso un carattere di punteggiatura private static boolean punctCheck String token if token length 1 amp amp token equals token equals 0499 79 C token equals token equals token equals token equals token equals token equals token equals return true else return false e Restituisce una stringa per ogni sottoregione trovata il delimitatore quello specificato
82. NDER MASC SUBJ NUMB SG DEF SPEC PRED 4 PRED TOMBER t SUBJ COMPL DE XCOMP TENSE INF SUBJ BEBE Figura 2 2 CBMT la struttura f delle frasi di esempio 32 2 Analisi della traduzione assistita Knowledge Based MT Questo paradigma si concentra sullo sviluppo di informazione lessicale incredi bilmente dettagliata di tipo morfologico sintattico ma anche semantico a ogni frase viene associata una rappresentazione in testo interlingua ILT che eviden zia non solo la natura degli elementi chiave ma anche il loro presunto significato sulla base del contesto e del modo cui si relazionano alle parole circostanti Lexical Based MT Questi sistemi si basano sulla costruzione di grammatiche ad albero che vengono collegate da un linguaggio all altro mediante un lessico bilingue questo associa direttamente gli alberi sorgente e destinazione attraverso collegamenti tra gli oggetti lessicali In pratica questo approccio utilizza elementi di informazione bilingui ognuno contenente una corrispondenza tra frase sorgente e destinazione Uno svantaggio di questo approccio che richiede il mantenimento di interi alberi per ogni coppia tradotta Rule Based MT Questi sistemi si fondano sull utilizzo di diversi livelli di regole linguistiche Le cosiddette regole M sono regole che preservano il significato e collegano gli al beri sintattici alle corrispondenti strutture di significato le regole S invece si disinteress
83. NT FROM MATCHPOS mla WHERE mla codl ml codl ND mla cod2 m1 cod2 ND mla nc lt m2 nc ND mla nc gt ml nc ND mla nr lt m2 nr ND mla nr gt ml nr gt gt gt PP filtro di posizione AND ABS mla nc ml nc mla nr ml nr lt ROUND m2 nc ml nc 1 lt kSub gt gt ALL m2 nc ml nc 1 ROUND m2 nc ml nc 1 lt kSub gt m2 nr ml nr 1 ROUND m2 nc ml nc 1 lt kSub gt AND wordEditDistanceDiag wordSubString rl frase ml nr m2 nr wordSubString r2 frase ml nc m2 nc lt kSub gt gt 0 B 3 Le query filtro di inclusione AND NOT EXISTS SELECT m3 nc m3 nr m4 nc m4 nr FROM MATCHPOS m3 MATCHPOS m4 lt tab1 gt r3 lt tab2 gt r4 WHERE m3 codl m4 codl ND m3 cod2 m4 cod2 ND m3 cod1 r3 codice ND m3 cod2 r4 codice ND m3 nr lt m4 nr ND m3 nc lt m4 nc ND m4 nr m3 nr 1 gt lt IMinSub gt rrr PrP Pp p gt ND SELECT COUNT FROM MATCHPOS m3a WHERE m3a codl m3 cod1 AND m83a cod2 m3 cod2 AND m83a nc lt m4 nc AND m83a nc gt m3 nc AND m83a nr lt m4 nr AND m83a nr gt m3 nr ND ABS m4 nc m3 nc m4 nr m3 nr lt ROUND m4 nc m3 nc 1 lt kSub gt AND ABS m3a nc m3 nc m3a nr m3 nr lt ROUND lt kSub gt m4 nc m3 ne 1 gt ALL m4 nc m3 nc 1 ROUND m4 nc m3 nc 1 lt kSub gt m4 nr m3 nr 1 ROUND m4 nc m3 nc 1
84. OutFile2 println with stemming else pwOutFile2 println without stemming Main MainFrame setStatusBar Extracting q grams ris db fillQTable TABLE2 1 Q false pwOutFile2 println r n Q grams extracted ris getCount pwOutFile2 println Seconds used ris getCompTime r n if QSUB Q ris db fillQTable TABLE2 1 QSUB true pwOutFile2 println Q grams extracted sub ris getCount pwOutFile2 println Seconds used ris getCompTime r n 208 A Il codice JAVA selezione int fullTime 0 tempo impiegato nella ricerca dei full match int fullTime2 0 tempo impiegato nella ricerca dei full match seconda passata Main MainFrame setStatusBar Executing approxStringJoin query if SUBSTR SUBSTR amp amp SUBSTRMODE 1 no substring o substring 1 pass ris db approxJoinQuery TABLE1 TABLE2 Q K COUNTFILTER POSFILTER LENGTHFILTER EDITDISTANCE SUBSTR fullTime int ris getCompTime pwOutFile2 println Seconds used ApproxStringJoin fullTime else if SUBSTRMODE 2 QSUB Q substring 2 pass fast ris db approxJoinQuery TABLE1 TABLE2 Q K COUNTFILTER POSFILTER LENGTHFILTER EDITDISTANCE false fullTime int ris getCompTime pwOutFile2 println Seconds used ApproxStringJoin fullTime
85. Per ogni paragrafo viene costruito l array contenente le lunghezze delle relative frasi e viene passato al metodo sAlign che esegue l allineamento vero e proprio Questo sar poi scritto nel file tramite writeSentAlign In figura 5 17 vengono dettagliate le funzioni utilizzate dal metodo di alli neamento twoSideDistance che implementa la funzione di distanza per i vari casi di allineamento match che restituisce il punteggio tra due elementi da al lineare e pnorm utilizzata da match per i calcoli riguardanti le distribuzioni normali Insieme queste funzioni forniscono i punteggi distanze su cui tutto il processo basato 140 5 Il progetto del software SentAlign sAlign Align lunghezze frasi distanze SentAlign twoSideDistance Align coppia lunghezze distanza coppia SentAlign match Align Sent Align pnorm Align Figura 5 17 Allineamento frasi data flow diagram parte 2 5 2 4 Allineamento delle parole L allineamento delle parole descritto nella sezione 4 4 le figure 5 18 e 5 19 mostrano i relativi DFD WordAlign wordAlignMain Align nomi file GlobalUtility readLines GlobalUtility WordAlign removeComments Align File allineati allineamento frasi WordAlign extractDist Align WordAlign mergeRegions Align WordAlign separatePunct Align Figura 5 18 Allineamento parole data flow diagram parte 1 L
86. RA nel suo insie me si analizzeranno le ulteriori funzionalit di quest ultimo collocando quanto precedentemente descritto nel contesto globale e mostrando quelle caratteristi che aggiuntive che lo rendono un sistema completo di Example Based Machine Translation 3 1 Le finalit Progettando gli algoritmi di ricerca di similarit si cercato di creare dei proce dimenti che soddisfacessero i seguenti requisiti e Rigorosita pur riguardando un campo che ha molti elementi soggettivi basarsi su una solida struttura teorica che fornisca un metodo chiaro ed univoco per quantificare la somiglianza tra frasi e Praticit non utilizzare informazioni che vanno oltre le frasi stesse spesso non disponibili o non pratiche da ottenere come strutture che ne descri vono la semantica e Flessibilit adattarsi alle diverse tipologie di utenti e o testi 53 54 3 Ricerca di similarita tra frasi e Efficacia produrre dei risultati effettivamente utili e di qualita e Efficienza essere ottimizzate anche come tempi di esecuzione indispensa bile per poter gestire notevoli volumi di dati Per soddisfare tutti questi punti si studiato e implementato un procedi mento piuttosto innovativo basato nelle sue linee di fondo sul concetto di Edit Distance e su un analisi della frase prettamente sintattica Il procedimento di ricerca vero e proprio suddiviso in pi fasi ognuna implementata mediante query ad un DBMS P
87. T basata su statistica Statistical Based MT SBMT e MT basata su dialogo Dialog Based MT DBMT e MT basata su reti neurali Neural Network Based MT NBMT e MT basata su esempi Example Based MT EBMT Statistical Based MT La produzione di traduzione basata su predizione statistica SBMT fondata su tecniche derivanti da studi sulla elaborazione del linguaggio parlato che analiz zano statisticamente il corpus parallelo bilingue In particolare utilizzata una variante della regola di Bayes per mostrare che la probabilit che una stringa di parole 7 sia la traduzione di una data stringa di parole 5 proporzionale al prodotto tra la probabilit che la stringa destinazione sia un espressione valida 34 2 Analisi della traduzione assistita nel linguaggio destinazione e la probabilita che una stringa di parole nel linguag gio sorgente sia la traduzione della stringa di parole nel linguaggio destinazione Formalmente P T S P T x P S T Se si conoscono le probabilit del membro di destra si pu ottenere la tradu zione scegliendo T in modo che la probabilit del membro di sinistra sia massima Ovviamente non possibile conoscere le probabilit di tutte le stringhe nei due linguaggi pertanto sar necessario stimarle definendo modelli probabilistici ap prossimati costruiti sulle probabilit che possono essere direttamente stimate dai dati esistenti Si tratta di un approccio in grado di pro
88. TURN NUMBER B 3 Le query 255 AS LANGUAGE JAVA NAME SimSearch Distance wordEditDistanceDiag java lang String java lang String double return int CREATE OR REPLACE FUNCTION wordEditDistanceSubCheck s1 VARCHAR2 cl NUMBER s2 VARCHAR2 c2 NUMBER maxd NUMBER RETURN NUMBER AS LANGUAGE JAVA NAME SimSearch Distance wordEditDistanceSubCheck java lang String int java lang String int double return int B 3 Le query B 3 1 Ricerca full primo passo INSERT INTO FULLMATCH SELECT r2 codice AS cod2 rl codice AS cod1 wordEditDistanceDiag r1 frase r2 frase lt k gt FROM lt tab1 gt rl lt qtabl gt rlq lt tab2 gt r2 lt qtab2 gt r2q WHERE rl codice rlq codice AND r2 codice r2q codice AND rlq qgram r2q qgram filtro di posizione AND ABS rlq pos r2q pos lt ROUND lt k gt r2 wordLen filtro di lunghezza AND ABS rl wordLen r2 wordLen lt ROUND lt k gt r2 wordLen GROUP BY r2 codice rl codice rl frase r2 frase rl wordLen r2 wordLen filtro di conteggio HAVING COUNT gt rl wordLen 1 ROUND lt k gt r2 wordLen 1 lt q gt AND COUNT gt r2 wordLen 1 ROUND lt k gt r2 wordLen 1 lt q gt solo ricerca full AND wordEditDistanceDiag rl frase r2 frase lt k gt gt 0 ricerca full preparazione sub AND wordEditDistanceSubCheck r1 frase rl codice r2 frase r2 codice l
89. Tutto questo grazie all algoritmo di LCS che permette di cogliere le notevoli similarit tra coppie di parole quali observations e osservazioni reduce e ridurre e cos via ricerca di tempo il notevolmente ridurre di permettono aggiuntive osservazioni Alcune Some additional observations make it possible to reduce search time dramatically Figura 6 8 Allineamento parole i risultati esempio 1 In figura 6 9 mostrato un altro esempio in questo caso la corrispondenza tra le frasi pi lineare ma le parole uguali o simili sono quasi inesistenti ey F Filtrante posizione in sia previsto se cappa della interno all selettore il che Controllare Check that the switch inside the hood if fitted is on position F Filter Figura 6 9 Allineamento parole i risultati esempio 2 L algoritmo qui in grado di risalire al corretto allineamento soprattutto grazie alla funzione di individuazione ed accoppiamento della punteggiatura con 152 6 Le prove sperimentali e i risultati ottenuti le parentesi e le virgolette che forniscono punti di corrispondenza praticamente certi Nelle figure 6 10 e 6 11 sono mostrate frasi dalla struttura abbastanza par ticolare con pesanti inversioni nell ordine delle parole Anche in questi casi complessi l allineamento produce risultati incoraggianti intermedie regolazioni possibili Sono Intermediat
90. UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA FACOLT DI INGEGNERIA Corso DI LAUREA IN INGEGNERIA INFORMATICA EXTRA Progetto e Sviluppo di un Ambiente per Traduzioni Multilingua Assistite Riccardo Martoglia Tesi di Laurea Relatore Controrelatore Chiar mo Prof Paolo Tiberio Chiar mo Prof Sonia Bergamaschi Correlatore Dott Federica Mandreoli Anno Accademico 2000 2001 RINGRAZIAMENTI Ringrazio il Professor Paolo Tiberio la Professoressa Sonia Bergamaschi e il personale della LOGOS S p A per la disponibilit e la collaborazione fornita Un grazie particolare alla Dottoressa Federica Mandreoli per l appoggio e la costante assistenza PAROLE CHIAVE Ricerca di Similarita Edit Distance Machine Translation Allineamento Translation Memory Indice Introduzione I Introduzione al problema 1 Analisi dell information retrieval 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 Introduzione all information retrieval I concetti alla base del IR o oo aaa 0 000 Tamod llicdicER d ves nee eee ei Be a ees actos a aA 1 3 1 Formalizzazione generale 4 1 3 2 Il modello booleano 0 00000 1 3 3 Il modello vettoriale 1 3 4 Modello vettoriale generalizzato Valutazione dei risultati di un sistema di IR 1 4 1 Una misura dell efficacia Richiamo e Precisione 1 4 2 Curva precisione richiamo Lou be Le licia Ak 1 4 3
91. XTRA un ambiente EBMT 4 3 3 L algoritmo di programmazione dinamica L algoritmo di programmazione dinamica utilizzato ha il compito per ciascuna coppia di paragrafi che formano i file forniti in input di individuare il miglior allineamento possibile delle frasi al loro interno quello cio che minimizza la distanza descritta precedentemente Per ottenere questo esso si basa sul calcolo ricorsivo in particolare esso uti lizza una funzione di distanza d che attraverso i quattro parametri x1 Y1 2 ed Y2 permette di esprimere i costi legati alle varie corrispondenze di allineamento viste x ed y rappresentano rispettivamente le frasi del primo e del secondo documento da allineare d x1 Y1 0 0 il costo della sostituzione di x con y d x1 0 0 0 il costo dell eliminazione di x d 0 y1 0 0 il costo dell inserimento di y d x1 Y1 2 0 il costo della contrazione di x ed x2 in y d x1 Y1 0 y2 il costo dell espansione di x in y ed y2 d x1 Y1 2 42 il costo della fusione di z ed x2 sostituiti da y1ed y2 Passando a questa funzione le lunghezze delle frasi in questione essa resti tuisce un valore di distanza calcolato come spiegato nei paragrafi precedenti L equazione di ricorsione vera e propria allora definibile formalmente come segue Definizione 4 2 L equazione di ricorsione S indichino con s i 1 I le frasi in una lingua e con t j 1 J le traduzioni di queste fr
92. a turi per essere di vera utilit sono stati effettuati dei test di traduzione delle frasi delle collezioni con uno dei pi diffusi di questi strumenti I risultati rias sunti nell esempio che segue confermano come all attuale stato della tecnologia sistemi EBMT come EXTRA siano di gran lunga pi promettenti ed efficaci Frase cercata Insert the power supply cable into the cable clamp and connect the conductors to the mounting plate as indicated in the diagram printed on the cover Traduzione automatica HAMT Inserisca il cavo di approvvigionamento di potere nel morsetto del cavo e connetta i bigliettai al piatto che monta come indic nel diagramma stampato sulla coperta Traduzione parziale suggerita EXTRA Inserire quindi il cavo alimentatore nel morsetto serrafilo e collegare i fili al blocco terminale come indicato nel diagramma stampato sul coperchio Per quanto riguarda invece gli ambienti EBMT commerciali descritti nel ca pitolo 2 valgono considerazioni praticamente analoghe a quelle viste per gli ap procci IR classici la mancanza della ricerca relativa alle sottoparti una limita zione fondamentale anche in questo caso Di conseguenza non vengono riportati ulteriori esempi che risulterebbero analoghi a quelli mostrati nella sezione pre cedente dai test svolti tali sistemi permettono risultati di buona qualit ma solo in presenza di Translation Memory di notevoli dimensioni e ben consolidate in cui
93. a di documenti attinenti a una query ma a una sua applicazione ben specifica quella della ricerca di similarit tra frasi alla base del nostro progetto 1 8 1 La Ricerca scientifica Il problema della ricerca di similarit tra frasi un problema del tutto nuovo in campo scientifico date due frasi si tratta di stabilire se e quanto sono vicine Andando ancora oltre data una frase e un insieme di frasi con cui confrontarla occorre recuperare le frasi che pi si avvicinano a quella data Un problema che nessun ricercatore ha mai studiato specificamente tuttavia proprio in ambito di Information Retrieval si sono svolti parecchi studi che pur non riguardanti speci ficamente questo problema si sono rivelati comunque molto utili per affrontarlo al meglio nel nostro progetto Pattern matching approssimato Questo uno dei problemi classici in ambito di IR presentato nella sezione 1 5 che pi hanno in comune con quello della similarit Si tratta anche in questo caso di ricercare quanto un dato pattern simile ad un altro e se la somiglianza rientra in una certa soglia di proporlo nel risultato della ricerca 24 1 Analisi dell information retrieval In particolare ad esempio Gravano Ipeirotis Jagadish Koudas Muthukri shnan e Srivastava 14 propongono un interessante algoritmo per il join appros simato di stringhe presenti in un database le stringhe cio faranno join non solo se esattamente uguali ma anch
94. a funzione principale in questo caso wordAlignMain essa richiede alle consuete funzioni la lettura dei file di origine in seguito esegue in catena una 5 2 I flussi di dati DFD 141 serie di metodi per la successiva elaborazione dei dati estratti In particolare con removeComments vengono rimosse le linee di commento con extract Dist vengono estratte le informazioni di distanza prodotte dal precedente allineamento delle frasi con mergeRegions vengono fusi gli eventuali elementi formati da due frasi ed infine con separatePunct si provvede a separare la punteggiatura per la successiva corretta individuazione degli elementi da allineare token WordAlign wordAlignMain Align File tm Translation Memory coppie di frasi WordAlign wAlign Align allineamento frasi token token allineamento allineamento completo WordAlign findTokens WordAlign tokAlign WordAlign validateAlign Align Align Align coppie token punteggio WordAlign matchScore Align WordAlign lcs Align WordAlign decay Align Figura 5 19 Allineamento parole data flow diagram parte 2 Le frasi estratte vengono dunque passate alla funzione wAlign figura 5 19 che esegue l algoritmo di allineamento vero e proprio utilizzando i metodi per il riconoscimento e la categorizzazione dei token findTokens e per il loro allineamento tokAlign L assegnazione di un punt
95. a tabella delle frasi della Translation Memory e del documento da pretradurre e Dalla tabella MatchPos vengono estratte le coordinate dei punti corri spondenti a parole uguali come visto nella sezione 3 8 1 in particolare vengono estratte due posizioni m1 e m2 rispettivamente punto di inizio e di fine del segmento simile da esaminare e Immaginando come spiegato nella sezione 3 8 1 la matrice delle frasi con ciascuna colonna corrispondente alle parole della frase cercata r2 e cia scuna riga a quelle della frase della Translation Memory r1 ognuno di questi punti individuato da due valori nc e nr rispettivamente numero di colonna e di riga 3 9 2 La query La struttura della query la seguente INSERT INTO SUBMATCH SELECT ml1 cod2 ml nc m2 nc ml cod1 ml nr m2 nr wordEditDistanceDiag wordSubString r1 frase ml nr m2 nr wordSubString r2 frase ml nc m2 nc lt kSub gt FROM MATCHPOS m1 MATCHPOS m2 lt tab1 gt rl lt tab2 gt r2 WHERE ml codl m2 cod1 AND ml cod2 m2 cod2 AND ml codl rl codice AND ml cod2 r2 codice controllo estremi AND ml nr lt m2 nr AND ml nc lt m2 nc controllo lunghezza minima AND m2 nc ml nc 1 gt lt IMinSub gt AND m2 nr ml nr 1 gt lt IMinSub gt 82 3 Ricerca di similarita tra frasi AND lt lt filtri di lunghezza conteggio e posizione gt gt AND wordEditDistanceDiag wordSubString rl frase ml nr m2 nr
96. ad aPos aScore phraseOrig in readLine return vTMPhrases Automa deterministico che separa le frasi in un documento di testo e restituisce un vettore con le frasi estratte La condizione di separazione tra una frase e l altra 1 seguiti da spazio o invio oppure doppio invio quest ultima condizione corrisponde anche alla fine del paragrafo public static Vector readPhrases FileReader FileR throws IOException A 3 Package GlobalUtility 247 final int CR 13 carriage return final int LF 10 line feed int i char c String s BufferedReader in new BufferedReader FileR StringBuffer phrase new StringBuffer Vector vPhrases new Vector int stato 0 stato iniziale while i in read 1 lettura del file c char i switch stato case 0 if c CR in read scarta il successivo LF stato 3 else if c c c phrase append c stato 1 else phrase append c J break case 1 if c CR in read scarta il successivo LF stato 2 else if c stato 2 else phrase append c stato 0 i break case 2 vPhrases add phrase toString aggiunta della frase phrase new StringBuffer 248 A Il codice JAVA selezione case 3 case 4 case 5 if c CR in read scarta il successivo LF sta
97. adeguatamente estratta dal contesto globale della frase tradotta Per poter ottenere questi risultati sono stati studiati e im plementati anche una serie di algoritmi che partendo dai due documenti forniti uno la traduzione dell altro si occupano di allineare mediante varie elabora zioni ed in modo completamente automatico ed indipendente dalle lingue prima Introduzione 3 le frasi all interno dei paragrafi poi le parole all interno delle frasi modulo di allineamento Completano EXTRA il modulo di stemming sviluppato origina riamente in 13 ottimizzato ed esteso per essere inserito nel nuovo contesto e per potenziare ulteriormente la ricerca e un interfaccia grafica progettata per rendere comodamente richiamabili e configurabili tutte le funzionalit offerte dal sistema Il progetto stato svolto in collaborazione con LOGOS S p A leader mon diale nella traduzione multilingua di documenti le cui soluzioni si avvalgono di team di localizzazione professionali distribuiti in tutto il mondo Per quanto riguarda la struttura della tesi essa organizzata come segue Nella Prima Parte vengono introdotti i numerosi argomenti di ricerca studiati per affrontare la realizzazione del software EXTRA In particolare nel Capitolo 1 vengono descritte le principali nozioni di Information Retrieval nonch lo stato dell arte in questo campo con particolare riferimento alla ricerca di somiglian za Inoltre nel Capitolo 2
98. adotte Quello che per interessa al traduttore e che il programma deve suggerire non tanto la frase simile a quella da tradurre ma la traduzione di quest ultima proprio qui che l allineamento delle parole si rivela indispensabile le frasi della translation me mory e le relative traduzioni vengono analizzate mettendo in corrispondenza le varie parole una con l altra Questi dati di allineamento vengono quindi registra ti nella Translation Memory per poi essere sfruttati al momento dell estrazione dei suggerimenti grazie ad essi possibile sapere a quale parte di frase tradotta che verr suggerita corrisponde la parte in lingua sorgente riconosciuta come Allineamento a delle parole Risultati allineamento frasi Lingue sorgente e destinazione simile File di Translation Memory Figura 4 13 Allineamento parole schema Partendo allora dai file risultanti dall allineamento delle frasi l ulteriore pas 4 4 Allineamento delle parole 105 saggio per arrivare alla costruzione della Translation Memory completa di tutti i dati richiesti l allineamento delle parole in figura 4 13 ne mostrato lo schema 4 4 1 I principi di funzionamento Il problema che l allineamento delle parole deve risolvere il seguente date una frase in lingua sorgente e la corrispondente frase in lingua destinazione neces sario trovare la funzione di corrispondenza tra esse che pi possibile rispecchi la rea
99. alabilit Sempre sulla collezione Logos sono stati eseguiti test di scalabilit In questo caso per ciascun carico di lavoro 25 50 e 100 sono stati generati 10 file da pretradurre contenenti frasi diverse tra loro ed estratte casualmente tra le 421 a disposizione per le query dei tempi ottenuti in ciascuna delle tre query stata quindi eseguita la media I risultati sono mostrati in figura 6 15 450 5 397 400 350 300 250 Full Secondi impiegati E Pre Sub 200 165 A Sub 150 12 104 100 43 5I 4 50 33 0 7 25 50 100 Quantit di frasi Figura 6 15 Test di scalabilit Come messo in evidenza dai test e i tempi della query per le frasi intere presentano un andamento meno che lineare all aumentare del numero delle frasi da pretradurre 6 4 Ricerca di similarit 159 e le query per la preparazione e la ricerca delle sottoparti presentano un andamento approssimativamente lineare La query di ricerca delle sotto parti quella che richiede pi tempo all aumento del carico di lavoro fatto comprensibile se si pensa alla notevole complessit delle operazioni ad essa richieste 6 4 3 Variazioni dei parametri I risultati mostrati fino ad ora sono riferiti ai valori di default dei parametri k e q rispettivamente fissati a 0 2 errore massimo ammesso del 20 e 3 utilizzo di tri grammi Gli effetti della variazione di questi parametri sono mo
100. ali di carattere scientifico tecnico ma utilizzabile in molti altri ambiti importante sottolineare come questo strumento non voglia affatto sostituirsi al la figura del traduttore professionista proponendo autonomamente traduzioni di nuovi documenti ma anzi si appoggi al lavoro precedentemente svolto da questi al fine di accelerare il processo di traduzione Il programma fondamentalmente uno strumento EBMT Example Based Machine Translation il cui compito predominante quello di effettuare la co siddetta pretraduzione il traduttore fornisce come input i documenti da lui precedentemente tradotti possibilmente di argomento attinente e il nuovo do cumento da tradurre il programma costruisce una base di dati di frasi gi ap provate la cosiddetta Translation Memory e da questa attinge per suggerire le traduzioni delle frasi pi somiglianti A questo punto al traduttore non rimane altro che utilizzare ed eventualmente modificare i suggerimenti in mo do da portare a termine il lavoro e successivamente inserirlo a sua volta nella memoria di traduzione Per poter fornire suggerimenti utili e accurati il modulo di ricerca di simila rit del software non si limita a considerare le frasi gi tradotte e a proporle se riconosciute simili a quelle da tradurre esso svolge un lavoro molto pi minu zioso e innovativo ricercando e proponendo anche le eventuali sottoparti simili complete della relativa traduzione
101. all origine e al termine ogni spazio bitestuale contiene un certo numero di punti di corrispondenza effettivi True Points of Correspondence o TPC 2 4 EBMT Stato dell arte 39 Ad esempio se un elemento alla posizione p sull asse x ed uno alla posizione q sull asse y sono la traduzione l uno dell altro allora le coordinate p q nello spazio bitestuale rappresentano un TPC Possono essere definiti TPC anche in corrispondenza di delimitazioni del testo come frasi paragrafi capitoli L insieme completo dei punti TPC l allineamento vero e proprio gli algorit mi per ricercare gli allineamenti come ovvio variano anch essi profondamente da sistema a sistema nella sezione successiva verranno mostrati gli approcci pi diffusi 2 4 EBMT Stato dell arte In questa sezione verr analizzato lo stato dell arte della ricerca scientifica nel campo della traduzione assistita nonch i pi importanti software disponibili in ambito commerciale I sistemi di traduzione automatica HAMT non sono nella maggior parte dei casi sufficientemente pratici e non possono essere applicati se non in ambi ti molto ristretti altrettanto sistemi completamente automatici FAMT che producano autonomamente traduzioni di alta qualit rimangono a tutt oggi un sogno Pertanto in questa analisi ci si concentrer sulla Traduzione Umana As sistita dalla Macchina MAHT Come si gi ricordato d altronde proprio questo il
102. all utente e i delimitatori di frase soft Delimiter e paragrafo hardDelimiter non ch quello di distanza distDelimiter e la media della distribuzione normale dei caratteri c e la varianza della distribuzione normale dei caratteri s2 4 3 6 I file risultanti Il risultato dell allineamento delle frasi sono due file uno per lingua con esten sione al che presentano la seguente struttura Frase 1 DEST xx indicatore di distanza SENT separatore di frasi Frase 2 DIST xx SENT 104 4 EXTRA un ambiente EBMT Come si vede la separazione tra paragrafi utilizzata per l allineamento delle frasi non pi necessaria e pertanto non compaiono pi i separatori di paragrafo Compare invece l indicatore di distanza seguito dalla distanza di allineamento di ciascuna coppia di frasi essa verr poi inserita insieme agli altri dati nella Translation Memory 4 4 Allineamento delle parole In EXTRA l allineamento delle frasi solo un primo passo un passo indispensa bile ma insufficiente a sfruttare appieno il potenziale della Translation Memory Come si visto nel capitolo precedente uno dei punti di forza di questo ambiente il fatto che la ricerca di somiglianza non si limiti ad analizzare le frasi intere ma consideri anche eventuali sottoparti Ovviamente la ricerca avviene sulle frasi nella lingua sorgente la nuova frase da tradurre viene confrontata con le frasi precedentemente tr
103. althy agricultural sector I am glad that the Hon Member for Algoma mentioned figures in his remarks Otherwise the Government might have eluded the problem once again The Hon Member for Algoma suggested Tuesday night that the Government had to take a clear position and make a commitment to assist our farmers before it is too late Quant aux eaux min rales et aux limonades elles rencontrent toujours plus d adeptes En effet notre sondage fait ressortir des ventes nettement sup rieures a celles de 1987 pour les boissons a base de cola notamment La progression des chiffres d affaires r sulte en grande partie de l accroissement du volume des ventes L emploi et les investissements ont galement augment La nouvelle ordonnance f d rale sur les denr es alimentaires concernant entre autres les eaux min rales entr e en vigueur le ler avril 1988 apr s une p riode transitoire de deux ans exige surtout une plus grande constance dans la qualit et une garantie de la puret Figura 6 3 Allineamento frasi i paragrafi di partenza esempio 1 La crise que vivent en ce moment nos agriculteurs se r percutera sur tous et chacun de nous un certain moment Nous sommes des consommateurs Nous avons tous besoin d une agriculture saine et forte Heureusement que le d put d Algoma a mentionn des chiffres dans ses remarques sans cela ce gouvernement s en serait sorti en douce encore une fois Le d put d
104. amento frasi la distribuzione di Delta La stima della distanza La quantit log Prob match 5 non comodamente stimabile ma con alcuni semplici passaggi matematici possibile esprimerla in una maniera alternativa che ne permetta un calcolo pi diretto Utilizzando il teorema di Bayes possibile esprimere in questo modo la probabilit condizionata in questione Prob match 6 k x Prob d match x Prob match dove k una costante che ai nostri fini pu essere ignorata La probabilit Prob match pu a sua volta essere espressa nel seguente modo Prob 6 match 2 1 Prob 6 Prob 6 comodamente calcolabile in quanto per come stata scelta corrisponde alla probabilit che una variabile aleatoria con una distribuzione normale media nulla e varianza unitaria assuma valori maggiori di Questa calcolabile con le formule note in particolare chiamata z questa variabile risulta 1 l 2 Prob d vv L e 12 dz 4 3 Allineamento delle frasi 99 Utilizzando questi passaggi e per il calcolo di questo integrale una appros simazione descritta da Abramowitz e Stegun 1 si ottiene pertanto la stima richiesta I valori dei parametri L unico punto rimasto ancora in sospeso circa il calcolo della distanza riguar da i valori da utilizzare per i parametri c ed s nonch per la probabilit Prob match Per tutti questi sono stati utilizzati di default i valori che Ga le e Church
105. ampo ad esempio i lavori di Simard 38 o di Church 6 e producendo un algoritmo che combinasse i pregi dei vari approcci proponendo allo stesso tempo diverse idee innovative Le caratteristiche fondamentali sono e identificazione ed allineamento delle parole quali sigle nomi propri ecc rimaste immutate nelle due lingue e identificazione ed allineamento della punteggiatura e identificazione ed allineamento delle cosiddette parole affini chiamate in inglese cognate attraverso un algoritmo di ricerca di somiglianza e allineamento basato su punteggio un elemento parola punteggiatura della lingua sorgente messo in relazione se possibile a quello della lingua 4 4 Allineamento delle parole 107 destinazione con cui ha un maggiore punteggio di affinit dipendente non solo dalle parole in s ma anche dalla posizione che esse assumono nelle frasi e notevoli efficienza e precisione e indipendenza dalla coppia di lingue analizzate e flessibilit grazie ai numerosi parametri previsti l algoritmo risulta adat tabile alla maggior parte delle esigenze Il procedimento adottato prevede per ogni coppia di frasi i passi mostrati in figura 4 15 Suddivisione e categorizzazione degli elementi Parole Elementi di almeno un rimanenti Parole non punteggiatura carattere lunghezza gt significative numerico MinTokLen Allineamento Allineamento Allineamento Completamento interpolazione
106. ano della semantica e mettono in corrispondenza elementi lessicali e alberi sintattici Non vengono forniti ulteriori esempi per non appesantire la trattazione di troppi dettagli In conclusione si pu dire che tutti questi paradigmi sono in grado di for nire traduzioni di discreta qualit e completamente automatiche Hanno per una grandissima limitazione possono essere applicati soltanto ad ambiti ben ri stretti e definiti poich la quantit di informazione richiesta sarebbe altrimenti proibitiva sia come costo che come tempi per produrla e per gestirla 2 2 2 Paradigmi non linguistic based Negli ultimi anni i ricercatori hanno investigato soprattutto paradigmi di Ma chine Translation che non fossero basati su teorie linguistiche o su specifiche 2 2 I paradigmi dei sistemi di MT 33 propriet del linguaggio Questa ricerca stata resa possibile dai rapidi avanza menti nella potenza computazionale e nella crescente disponibilit di dizionari leggibili dalla macchina e di corpus di testi monolingui e bilingui Questi ap procci dipendono infatti dall esistenza di grandi corpus utilizzati come dati di addestramento o come database di traduzioni esistenti figura 2 3 Fr PAST E s ase Elaborazioni non linguistiche Frase sorgente destinazione Grande corpus di testi bilingui Figura 2 3 Funzionamento dei paradigmi non linguistic based Le principali tipologie di questo nuovo filone sono 10 e M
107. asi nell altra lingua Sia d la funzione di distanza descritta e D i j la minima distanza tra le frasi 81 8 e le loro traduzioni t1 t nel caso di allineamento migliore D i j calcolata minimizzandone il calcolo sui sei casi possibili sostituzione cancellazione inserimento contrazione espansione e fusione partendo dalla condizione iniziale D i j 0 D i j definita dalla seguente ricorsione D i j 1 d 0 t 0 0 D i 1 j d s 0 0 0 joe i SM LL D i 1 j 2 d s t 0 t 1 D i 2 j 1 d si tj Si 1 0 D i 2 j 2 d si tj Si 1 tj 1 4 3 Allineamento delle frasi 101 Utilizzando la ricorsione indicata per ogni paragrafo viene compilata una matrice di distanza D che unita a due matrici ausiliarie Path X e PathY per tenere traccia del percorso di allineamento seguito permette di risalire all allineamento pi probabile quello migliore per le frasi del paragrafo preso in considerazione 4 3 4 Un esempio del calcolo Per chiarire con un esempio il calcolo delle tre matrici utilizzate per l allinea mento tra frasi D PathX e PathY immaginiamo un caso molto semplice due documenti contenenti un solo paragrafo ciascuno formato da due frasi Documento X paragrafo 1 frase 1 lunghezza 15 frase 2 lunghezza 5 Documento Y paragrafo 1 frase 1 lunghezza 10 frase 2 lunghezza 6 L allineamento utilizzando la ricorsione vista procede calcolando da sini stra verso
108. ate informazioni che non sempre sono disponibili a meno di non costringere l utente a una lunga elaborazione dei propri testi Altri ricercatori hanno in seguito approfondito l aspetto della corrispondenza tra le frasi buoni risultati sono stati ottenuti nell ambito della ricerca di corri spondenza delle frasi nel loro intero ad esempio da Foruse e Hida 11 anche se la maggior parte degli usi del EBMT ristretta a particolari sottoproblemi Per citare alcuni importanti lavori Sumita 41 si occupato della somiglianza tra parole funzionali Sato 37 di quella tra frasi nominali sempre Sumita del problema delle frasi preposizionali e dei termini tecnici In effetti su questo particolare argomento non il caso di soffermarsi ulte riormente lo stato dell arte della ricerca scientifica sulla somiglianza tra frasi alla base dei paradigmi EBMT non molto lontano dal corrispondente ambi to in Information Retrieval descritto nel Capitolo 1 Come gi sottolineato in quell occasione non esiste fino ad ora nessun sistema che proponga un metodo che sia applicabile in generale non solo a ristretti sottoproblemi necessitanti dati molto dettagliati e spesso non disponibili e che fornisca suggerimenti mi rati intelligenti e non banali frasi trovate identiche a meno di insignificanti differenze L allineamento di un certo interesse soffermarsi sui vari approcci proposti per permettere un allineamento quasi a
109. ato ma anche a quelle caselle in corrispondenza a parole uguali In particolare per le coppie di frasi che soddisfano determinate condizioni nella tabella Match Pos verranno registrati e i codici delle frasi in questione e le posizioni delle parole uguali che non sono altro che le coordinate della cella interessata Pertanto nelle frasi dell esempio in figura 3 15 verranno registrate informa zioni del tipo Codice frasel Codice frase2 1 1 prima parola della prima frase uguale alla prima parola della seconda Codice frasel Codice frase2 2 2 seconda parola della prima frase uguale alla seconda parola della seconda e cos via 3 8 2 Le tre versioni delle query Sono state sviluppate tre versioni figura 3 16 di questa prima parte della ricerca che in modi diversi raggiungono la stessa finalit quella di eseguire la ricerca delle frasi intere e di preparare la successiva ricerca delle sottoparti Query di ricerca frasi intere simili e dati per sottoparti y 1 passo 2 passi Query unica Query frasi intere Query dati sottoparti ottimizzata Versione Versione ottimizzata per ottimizzata per ricerca veloce ricerca accurata Figura 3 16 Le tre versioni della ricerca 3 8 Preparazione alla ricerca delle sottoparti 77 Si tratta di rielaborazioni ed estensioni della query utilizzata per la ricerca delle frasi intere gi presentata nella sezione 3 6 nei casi pi complessi c
110. ato in questo capitolo la struttura di questo package nonch le modifiche apportate verranno descritte nei capitoli successivi 3 4 2 La suddivisione in q grammi Il concetto di g gramma per una stringa di testo come descritto in 14 quello di breve sottostringa di lunghezza q caratteri consecutivi i vari q grammi as sociati a una stringa o si ottengono allora facendo scorrere una finestra ampia q caratteri dall inizio alla fine della stringa Poich i q grammi all inizio e alla fine della stringa avrebbero meno di q caratteri di o vengono introdotti nuovi caratteri e e si estende concettualmente la stringa o aggiungendo un prefisso di g 1 caratteri e un suffisso di q 1 caratteri Esprimendo formalmente queste nozioni Definizione 3 1 Q gramma posizionale Sia X una alfabeto finito di di mensione X sia o una stringa di lunghezza n ofi j 1 lt i lt j lt n una sottostringa di o di lunghezza j i 1 che comincia alla posizione i Si defini sce q gramma posizionale di una stringa o la coppia i o i i q 1 dove 3 5 La metrica di similarita Edit distance 61 oli q 1 il g gramma di o che inizia alla posizione i contando sulla stringa estesa L insieme Go di tutti i q grammi posizionali di una stringa o l insieme di tutte le o q 1 coppie ottenute da tutti i q grammi di o L intuizione che sta dietro all uso dei q grammi per la ricerca di somig
111. aurus coniugatori control lori di stile ecc 2 4 3 I Sistemi commerciali pi diffusi I sistemi in commercio appartenenti alle tre categorie viste sono molto numero si Esempi di prodotti per traduttori professionisti sono Trados Atril D j Vu Cypresoft Trans Suite IBM Translation Manager SITE Eurolang Eurolang Op timizer importanti prodotti per traduttori occasionali sono invece Ambassador di Language Engineering Comp o Power Translator di Globalink Tuttavia come ci si sar resi conto dalla precedente descrizione la categoria di strumenti per traduttori occasionali solo ai margini dell argomento centrale di questa panoramica la traduzione EBMT per esempi Le categorie che pi si 44 2 Analisi della traduzione assistita rivelano interessanti da analizzare ai fini di evidenziarne le funzionalita offerte sono pertanto quelle dei software per traduttori professionisti I software pit diffusi e di maggiore rilevanza in questo settore sono tre e verranno brevemente presentati nei paragrafi seguenti Trados Team Edition Trados 5 Team Edition 45 unisce in un ambiente integrato una notevole serie di funzionalita quali e gestione di Translation Memory e gestione di database di terminologia e allineamento di frasi e gestione e modifica dei documenti tradotti o da tradurre e sofisticate funzionalita di project management Il programma centrale di questo ambiente il cosiddetto Translator Work ben
112. ay for i 0 i lt n i for j 0 j lt m j ali j VUOTO for i 0 i lt n i starty i 0 for j 0 j lt m j startx j 0 calcolo della matrice per stroke diagonali for stroke 0 stroke lt Math round maxDist m stroke calcolo stroke diagonali della matrice triangolare superiore k posx while k lt stroke amp amp k lt stopx i startx k j k startx k do if i n amp amp j m return stroke d i j stroke i j if i gt n posx k 1 stopy 1 break if j gt m stopx k 1 break while String sv elementAt i 1 compareTo String tv elementAt j 1 A i 1 j stroke 1 d i j 1 stroke 1 startx k i k calcolo stroke diagonali della matrice triangolare inferiore k posy while k lt stroke amp amp k lt stopy i k starty k A 1 Package SimSearch 197 j starty k do if i n amp amp j m return stroke d i j stroke i j if i gt n stopy k 1 break if j gt m posy k 1 stopx 1 break while String sv elementAt i 1 compareTo String tv elementAt j 1 0 d i 1 j stroke 1 d i j 1 stroke 1 starty k j k return 1 Calcola la Edit Distance distanza in parole tra due stringhe versione con estrazione risultati parziali per success
113. b catch SQLException e 212 A Il codice JAVA selezione Controlla lo stato numero di frasi inserite della tabella della translation memory public static int memStatus throws SQLException final String TABLE1 Main MainFrame TABLE1 tabella delle frasi di riferimento DBConnect db null int num 0 try operazioni sul DB db new DBConnect num db getMaxCod TABLE1 return num numero di frasi nella memoria di traduzione catch SQLException e throw new SQLException SQL error e getMessage finally try db disconnect disconnessione dal db catch SQLException e e Restituisce la distribuzione statistica delle lunghezze delle frasi nella translation memory public static int memDistr throws SQLException final String TABLE1 Main MainFrame TABLE1 tabella delle frasi di riferimento DBConnect db null int len lunghezze delle frasi try operazioni sul DB db new DBConnect len db getLengthDistrib TABLE1 return len catch SQLException e A 1 Package SimSearch 213 throw new SQLException SQL error e get Message finally try db disconnect disconnessione dal db catch SQLException e Crea tutte le tabelle public static void createTables throws SQLException final String TABLE1 Main MainFrame TABLE1 tabella delle fra
114. borata alcune parole in co mune con la frase cercata le cui coordinate saranno dunque state registrate nella tabella MatchPos La query di ricerca delle sottoparti deve individuare le sottoparti migliori scegliendo opportunamente l inizio e la fine del segmento simile ed applicando i vincoli richiesti Nell esempio la frase 2518 fornisce un solo possibile segmento welcome world Poich la sua lunghezza di sole due parole in entrambe le frasi esso non verr considerato tra i possibili candidati 2 lt MinSub 3 La frase 3945 presenta due parole comuni i segmenti candidati saranno per tanto quelli che nelle due frasi iniziano e finiscono con quelle parole welcome world compute generate art e welcome guest Madrid art L edit distance dei due segmenti per elevata 3 su 5 parole cercate 3 5 gt kSub 0 3 pertanto anche questo candidato dovr essere scartato Consideriamo infine le ultime tre frasi presentate la frase 5673 presenta un segmento welcome world compute L edit distance tra questo segmento e il 86 3 Ricerca di similarita tra frasi corrispondente della frase cercata che risulterebbe nulla non viene in questo caso nemmeno calcolata la frase 10271 presenta un segmento welcome world compute generate che inizia nello stesso punto ma che copre una porzione mag giore della frase cercata filtro di inclusione Il segmento compute generate art della frase 13456
115. c AND mla nc gt ml nc 3 9 La query di ricerca delle sottoparti simili 83 AND mla nr lt m2 nr AND mla nr gt ml nr filtro di posizione AND ABS mla nc ml nc mla nr ml nr lt ROUND m2 nc ml nc 1 lt kSub gt gt ALL m2 nc ml nc 1 ROUND m2 nc ml nc 1 lt kSub gt m2 nr ml nr 1 ROUND m2 nc ml nc 1 lt kSub gt Come si vede si basano sulle stesse considerazioni e assunti spiegati nella sezione 3 6 1 per la query delle frasi intere e cui si rimanda per una spiegazione pi dettagliata Ad esempio il filtro di lunghezza impedisce che vengano ulteriormente ana lizzati segmenti di lunghezza molto diversa tra loro ad esempio un segmento di tre parole in una frase non potr mai essere sufficientemente simile ad uno di dieci nell altra Allo stesso modo vengono riadattati i filtri di conteggio e posi zione segmenti sufficientemente simili dovranno avere al loro interno un certo numero minimo di parole dipendente dal tetto massimo di distanza richiesto kSub poste in posizioni non troppo differenti un segmento dall altro Il filtro veramente nuovo in questo caso il cosiddetto filtro di inclusione questo si occupa di scartare tutti quei segmenti non ottimi ad esempio quelli inclusi in altri Da notare che segmenti sovrapposti ma non inclusi uno nell altro non vengono scartati in quanto si riveleranno molto utili per coprire la frase cercata Q
116. campo che ha raccolto i maggiori sforzi dei ricercatori e che ha prodotto i risultati pi interessanti In particolare ci si concentrer proprio sui prodotti e sui progetti di Example based Machine Translation Dopo aver analizzato i vari approcci si cercher an che di evidenziarne le limitazioni e le carenze comuni esse hanno fornito un note vole spunto per gettare le basi di un progetto che fosse innovativo nel suo campo e che si spingesse oltre la maggior parte di questi limiti il progetto EXTRA della cui descrizione ci si occuper nella seconda parte di questo documento 2 4 1 La Ricerca scientifica La somiglianza tra frasi Il primo a suggerire tecniche di Example Based Machine Translation Nagao 26 nel 1984 Questi getta le basi di quella che chiama Traduzione per analo gia una frase viene semplicemente riconosciuta come simile se compare identica 40 2 Analisi della traduzione assistita nei due testi a meno di una pur simile parola di contenuto cio contenente una precisa semantica La vicinanza nella somiglianza sarebbe in questo caso de terminata dalla distanza di significato tra le due parole di contenuto misurata da metriche basate su un ontologia La traduzione risultante non altro che la sostituzione della diversa parola nella frase pi somigliante trovata Un approc cio indubbiamente interessante ma che come si vede piuttosto limitato nella ricerca di somiglianza e si appoggia a sofistic
117. ch vedi figura 2 8 in cui il traduttore pu effettuare la traduzione di un documento con l ausilio dei suggerimenti forniti dal motore di ricerca La ricerca nei database strutturata su vari livelli e Livello 1 Ricerca di frasi intere La translation memory viene scandita alla ricerca di frasi esattamente identiche exact match o quasi con un piccolo numero di parole diverse fuzzy match e Livello 2 Ricerca di una parte Selezionando la parte interessata della frase da tradurre viene ricercato un elemento della Translation Memory che sia identico a questa e Livello 3 Ricerca di terminologia Il database di terminologia viene esa minato per trovare delle ulteriori corrispondenze esatte Occorre inoltre sottolineare come il modulo di allineamento sia uno dei pi potenti sul mercato esso fornisce una interfaccia per l allineamento manuale ma utilizza anche una serie di algoritmi proprietari per eseguire un allineamento automatico delle frasi di alta qualit 2 4 EBMT Stato dell arte 45 TRADOS Translator s Workbench project English United Kingdom 10 x File Settings View Options Tools Help To create an Event Object please follow the actions below Event Ereignis To delete an Event Object please follow the below E Um ein Event Objekt zu l schen gehen Sie bitte wie folgt vor lt 842 gt 82 e422 Fuzzy Match iu project doc Microsoft Word Jof x File Edit
118. ch databases project informatie Woordenboek en Vertaal Geheugen veal vool meer 0 2000 h zeer krachtige editor die zeer complexe documenten converieert z e TSMS also suto recowrs lost data due to a computer failure e sofware also aulo recovers lost data due to a computer failure De software herstelt ook verioren gegevens na een computer fout Figura 2 10 Sistemi commerciali Cypresoft Trans Suite 2000 Editor Le caratteristiche del motore di ricerca delle frasi sono piuttosto tradizionali e Ricerca di frasi intere esatte Exact match e Ricerca di frasi intere simili che utilizza il cosiddetto Cypresoft Fuzzy Logic Generation 2 engine come detto per D j Vu vengono proposte frasi con alcune differenze in parole non fondamentali come date orari sigle nomi propri ecc Inoltre queste differenze vengono evidenziate graficamente con colori particolari L allineatore anche in questo caso praticamente manuale le frasi dei due documenti vengono spezzate e il traduttore deve indicare i giusti collegamenti tra frasi sorgente e destinazione mediante una semplice interfaccia grafica vedi figura 2 11 2 4 4 I limiti attuali I vari ambienti analizzati sono abbastanza analoghi come caratteristiche e pur troppo anche come limiti Le limitazioni riscontrate possono essere riassunte nei seguenti punti fondamentali 48 2 Analisi della traduzione assistita Sypresoft launches a new way of translation that ca
119. co delle parole necessario indicizzarle La forma di indice pi diffusa nell ambito di IR l inverted index 3 Un inverted index un meccanismo orientato alle parole per indicizzare una collezione di testo al fine di velocizzare l operazione di ricerca La struttura dell inverted index composta da due elementi figura 1 7 il vocabolario e le occorrenze Il vocabolario l insieme di tutte le parole del testo per ognuna di queste conservata una lista di tutte le posizioni nel testo dove essa compare L insieme di tutte queste liste viene chiamato occorrenze Le posizioni possono fare riferimento a caratteri o a parole Le posizioni rela tive alle parole semplificano le query di prossimit o di frase mentre le posizioni relative ai caratteri facilitano l accesso diretto alle posizioni corrispondenti nel testo 1 8 IR e Ricerca di Similarita Stato dell arte 23 1 2 3 4 5 6 7 8 9 10 11 12 13 Questo un esempio di testo In questo testo ci sono varie parole Testo Vocabolario Occorrenze esempio parole questo 8 Inverted index testo varie Figura 1 7 Inverted Index un esempio 1 8 IR e Ricerca di Similarit Stato dell arte In questa sezione viene fatta una panoramica sullo stato della ricerca scientifica in ambito di Information Retrieval In questo caso non siamo pero interessati alle problematiche classiche quelle che come si visto sono tipiche di questa scienza ricerc
120. cod2 m1 cod2 gt p p p pp controllo di inclusione AND ml nc m3 nc AND m4 nc gt m2 nc OR m3 nc lt ml nc AND m2 nc m4 nc OR m3 nc lt ml nc AND m4 nc gt m2 nc OR ml nc m3 nc AND m2 nc m4 nc AND ml codl m3 codl AND ml nr m3 nr AND m4 nr gt m2 nr OR m3 nr lt ml nr AND m2 nr m4 nr OR m3 nr lt ml nr AND m4 nr gt m2 nr Si ricorda che in appendice B 3 riportata la query completa 3 9 La query di ricerca delle sottoparti simili 85 3 9 4 Un esempio esplicativo Per chiarire meglio il compito della query immaginiamo di aver impostato i parametri MinSub 3 e kSub 0 3 che lo stemming sia attivato e che una delle frasi da ricercare sia nelle due versioni originaria e con stemming 23 So welcome to the world of computer generated art welcome world compute generate art Si supponga inoltre che nella Translation Memory siano presenti tra le altre le seguenti frasi 2518 So welcome to the world of music welcome world music 3945 We welcome our guests to the Madrid Art Expo welcome guest Madrid art Expo 5673 Welcome to the world of computer aided translation welcome world compute aid translation 10271 We welcome you to the world of computer generated fractals welcome world compute generate fractal 13456 This is a computer generated art work be compute generate art work Tutte queste frasi presentano nella versione ela
121. curabili rispetto al tempo di ricerca La modalit di ricerca di sottoparti ad un solo passaggio non stata considerata in quanto disattivandone i filtri per garantire una efficacia elevata quanto nelle altre modalit si rivelata da subito nettamente meno efficiente 2 pass accurate Full E Pre Sub Sub 2 pass fast 1 pass no sub E 0 100 200 300 400 500 600 700 Secondi Figura 6 14 Confronto tra i tempi nelle varie modalit di ricerca Come si vede grazie sopratutto all uso dei filtri e degli indici mostrati nel Capitolo 3 i tempi di ricerca sono notevolmente contenuti soprattutto tenendo 158 6 Le prove sperimentali e i risultati ottenuti conto che la ricerca riguarda in questo caso 421 frasi da pretradurre con una translation memory di oltre 34000 frasi poco pi di un minuto per ricercare tutte le possibili somiglianze tra frasi intere circa quattro minuti per ricercare anche le somiglianze tra sottoparti nel modo veloce meno di dieci minuti per eseguire la ricerca nel modo accurato evidenziando tutti i risultati esistenti In particolare interessante notare come anche nel modo pi accurato i tempi medi totali per frase cercata siano di circa 1 5 secondi un risultato molto incoraggiante e che riesce a rimanere ben al di sotto del tempo di ricerca medio dei normali algoritmi che pure si limitano alla ricerca di frasi intere Sc
122. d createPTable String tabella throws SQLException Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String crea CREATE TABLE tabella codice NUMBER 10 PRIMARY KEY fraseorig VARCHAR2 1000 frase VARCHAR2 1000 frasetrad VARCHAR2 1000 wordlen VARCHAR2 3 apos VARCHAR2 700 ascore VARCHAR2 700 spos VARCHAR 700 4 stmt execute crea Crea la tabella stmt close e Crea una tabella dei q grammi collegata alla tabella delle frasi fornita in input con larghezza della colonna QGRAM adeguata al parametro q numero di parole nel q gramma public static void createQTable String tabSorg int q boolean qSub throws SQLException final int WORDSIZE Main MainFrame WORDSIZE Dimensione delle parole nella frase per il calcolo della larghezza max delle 176 A Il codice JAVA selezione colonne dei q grammi int size q x WORDSIZE Dimensione della colonna qgram String tabDest new String if qSub tabDest QS tabSorg else tabDest Q tabSorg Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement
123. db catch SQLException e A 1 8 Classe SimSearch Utility package SimSearch AVAVAVA VA VAVA VA VAVA VAVA VAN Utility AVAVAVA VAVA VAVA VAVA VAVA VAN Classe astratta contenente funzioni di utilita AVAVAVA VA VAVA VA VAVA VAVA VAN import java util import java io import Stemming eng public abstract class Utility e Restituisce un vettore di q grammi dalla stringa in ingresso la dimensione q dei q grammi e un parametro della funzione A 1 Package SimSearch 215 public static Vector qgramVector String s int q boolean extend String extendedString new String estensione stringa con caratteri e se extend true if extend true extendedString extendString s q else extendedString s Vector vQgram new Vector vettore di q grammi del risultato indici che definiscono la finestra che scorre sulla stringa per formare i qgrammi int inizio 1 int fine 0 for int i 0 i lt q i posizionamento dell indice fine alla fine del primo qgramma fine extendedString indexOf fine 1 int pos 1 contatore posizione qgramma corrente while fine 1 ciclo di aggiunta qgrammi al vettore risultato vQgram addElement new PosQgram pos extendedString substring inizio 1 fine pos avanzamento della finestra inizio extendedString indexOf inizio 1 fine extendedString
124. destra una riga dopo l altra i vari elementi delle matrici D PathX e PathY Ciascuna di queste matrici avr tante righe quante sono le frasi del do cumento X pi una iniziale e tante colonne quante sono le frasi del documento Y pi una iniziale Frasi nel documento Y j A sostituzione B cancellazione C inserimento D contrazione E espansione F fusione X O UBWUNDOP jeu ISLI Figura 4 11 Allineamento frasi gli elementi interessati dal calcolo di i j 102 4 EXTRA un ambiente EBMT Ognuno degli elementi della matrice D viene calcolato osservando i valori degli elementi calcolati precedentemente figura 4 11 sommati ai costi corri spondenti ai relativi salti ad esempio il valore dell elemento i j sar la minore distanza tra quelle risultanti dall elemento i 1 7 1 pi il relativo costo di sostituzione dell elemento i 7 1 pi il relativo costo di inserimento e cos via Come si vede il valore di ogni cella i j della matrice D contiene la minima distanza totale corrispondente al miglior allineamento delle frasi fino a quel punto In ciascuna cella delle matrici Path X e PathY vengono invece registrate le coordinate della cella da cui si proviene nel percorso di allineamento seguito Per le frasi dell esempio le matrici risultano le seguenti 0 694 1313 0 0 0 1 D 783 53 238 PathX 0 0 0 Pathy 0 0 0 1382 343 66 1 0 1 0 0 1 Esaminando le matrici
125. di questa differenza Questo punteggio probabilistico quindi utilizzato in una struttura di programmazione dinamica per trovare il migliore allineamento delle frasi sufficiente osservare la figura 4 8 per capire quanto questo approccio sia ben fondato come si vede le lunghezze in caratteri tra paragrafi in questo caso inglesi e tedeschi sono altamente correlate L asse orizzontale mostra la lunghezza dei paragrafi inglesi la scala verticale le lunghezze dei corrispondenti paragrafi tedeschi Un grande punto di forza del metodo utilizzato indubbiamente il fatto di essere comunque completamente indipendente dalle lingue utilizzate nei docu menti tutto incentrato su modelli e calcoli matematici garantendo in questo 96 4 EXTRA un ambiente EBMT modo non solo una applicabilita generalizzata ma anche una grande efficienza ed accuratezza Q 8 4 ae vv E n wn E go E 84 o amp NE amp hig Nes k yk eae v S ppt N sg IR ic re Rex D x 5 a al Pea Y 4A ot T T T T 0 500 1000 1500 Lunghezza dei paragrafi Inglese Figura 4 8 Allineamento frasi correlazione nelle lunghezze dei paragrafi 4 3 2 La metrica di distanza Come spiegato nel paragrafo precedente alla base di tutto il calcolo di alli neamento c una struttura di programmazione dinamica La programmazione dinamica spesso utilizzata per allineare due sequenze di simboli in mol
126. di tutto le frasi della trans lation memory che risultano sufficientemente simili nella loro interezza a quelle cercate Un esempio di fullmatch il seguente Frase cercata Position the 4 clips D as shown and at the specified dimensions Position clip show specify dimension Frase intera simile Dist 20 Position the 4 clips A as shown and at the specified distance Position clip show specify distance Traduzione suggerita Posizionare le 4 mollette A come indicato e alla distanza prevista Tra parentesi sono riportate le frasi elaborate mediante stemming su cui avviene la ricerca e il calcolo di distanza in questo caso la frase trovata distante il 20 rispetto alla frase cercata edit distance di 1 sulle 5 parole della frase Ancora pi significativi sono i seguenti esempi di submatch in cui il program ma propone suggerimenti parziali che permettono di facilitare notevolmente la traduzione anche di quelle frasi per cui non presente nella translation memo ry nessuna frase simile per intero Per non appesantire troppo gli esempi non vengono ulteriormente riportate le frasi normalizzate e i punteggi di similarit comunque presenti nei file di output generati Vengono invece evidenziate in corsivo le parti riconosciute come simili Frase cercata Insert the power supply cable into the cable clamp and connect the conductors to the mounting plate as indicated in the diagram printed on the cover Frase co
127. do corretto di allineare i termini in modo da perfezionarne l efficacia con l utilizzo a scapito di una diminuzione di prestazioni dovuta ai tempi di ricerca Per rendere tale funzione davvero efficace occorrerebbe effettuare la ricerca sui termini normalizzati richiedendo pertanto l utilizzo di moduli di Stemming relativi a ciascuna lingua utilizzata Conclusioni e sviluppi futuri 169 e migliorare ulteriormente le prestazioni della ricerca delle sottoparti lavo rando ancora sui filtri proposti e studiandone di nuovi e studiare l applicabilita degli algoritmi di ricerca di similarita e in generale di tutto il sistema ad altri ambiti come si capisce infatti la ricerca di similarit un problema di grande interesse non solo nell ambito della traduzione multilingua e gli algoritmi di EXTRA potrebbero con lievi modifiche coprire le esigenze di tante altre applicazioni Concludendo il lavoro svolto in questa tesi stato indubbiamente impegna tivo ma anche notevolmente stimolante stato possibile approfondire e mettere in pratica le conoscenze acquisite nell ambito dei Sistemi Informativi e delle Basi di Dati confrontandosi per la prima volta direttamente con esigenze e proble matiche non solo di correttezza ma anche di efficienza Sempre per la prima volta si avuta la possibilit di progettare un software di notevoli dimensioni e di curarne lo sviluppo completo dalle funzionalit principali all in
128. documenti da tradurre visualizzando ad esempio le frasi ordinate alfabeticamente o nel loro contesto possibilit di lavorare con diversi traduttori su un unico progetto multilingua supporto ad una moltitudine di formati di file ed altro ancora La ricerca di frasi simili viene svolta per passi successivi con queste modalit 1 Exact Scan viene scandita la Translation Memory alla ricerca di frasi identiche 2 Fuzzy Scan vengono ricercate frasi quasi uguali a quelle da tradurre iden tiche ma con un alcune differenze in parole non fondamentali come sigle nomi propri ecc 46 2 Analisi della traduzione assistita 3 Assemble se la ricerche precedenti non sono sufficienti possibile atti vare questa nuova modalit che cerca di tradurre una frase unendo varie sottoparti trovate in modo esatto ed integrale nella TM Infine per quanto riguarda l allineamento fornito un apposito programma aggiuntivo che pur non offrendo un procedimento automatico dispone di un in terfaccia utente grafica per permettere al traduttore di svolgere questo delicato lavoro we C My Projects ACME SP720 Sp720 dvf Deja u File Edit Tools Users Window Help Dlls Sls aradr ae alase a elo E Specs SP720 rtf Spanish x All rows x Spanish 4 Printing Method I Four color CMYK ink jet technology Nozzle Configuration Monochrome Head Product Accessory Part Numbers AAs
129. durre traduzioni di buona qualit senza il bisogno di utilizzare grammatiche o lessici Tuttavia necessario che esista un corpus bilingue di notevoli dimensioni poich il funzionamento del sistema sar basato interamente su questo Inoltre l unico modo di migliorare la qualita delle traduzioni quella di migliorare l accuratezza dei modelli statistici che per gi per i semplici modelli descritti presentano una quantit incredibile di parametri nell ordine dei milioni Dialog Based MT La traduzione basata su dialogo un paradigma rivolto a un utente che sia l auto re originale del testo da tradurre I sistemi basati su questo approccio forniscono un meccanismo per instaurare con questi un dialogo sulla traduzione un esem pio in figura 2 4 permettendo all utente stesso di rimuovere le ambiguit del testo di origine e di incorporare dettagli stilistici e culturali in modo da rendere la traduzione di alta qualit The word pen means 1 a writing pen 2 a play pen 3 a pig pen NUMBER gt Figura 2 4 Interazione DBMT con l utente un esempio 2 3 Sistemi EBMT 35 Neural Network Based MT Questo un campo ancora molto sperimentale sono stati per ora svolti alcuni esperimenti per risolvere mediante la tecnologia delle reti neurali alcuni comuni problemi nell ambito della Machine Translation ad esempio l analisi e la rimo zione delle ambiguit lessicali e l apprendimento di regole
130. e Frase cercata On completion of electrical connections fit the cooktop in place from the top and secure it by means of the clips as shown Frase con parte simile 1 After the electrical connection fit the hob from the top and hook it to the support springs according to the illustration Traduzione completa 1 Dopo aver eseguito il collegamento elettrico montare il piano cottura dall alto e agganciarlo alle molle di supporto come da figura Traduzione suggerita 1 collegamento elettrico montare il piano cottura dall alto Frase con parte simile 2 Secure it by means of the clips 6 4 Ricerca di similarit 157 Traduzione suggerita 2 Fissare definitivamente per mezzo dei ganci In questo caso per una stessa frase vengono forniti pi suggerimenti parziali che insieme la coprono quasi completamente Altri esempi verranno mostrati nella sezione 6 5 dedicata al confronto con altri approcci 6 4 2 Efficienza I tempi nelle varie modalit di ricerca In figura 6 14 vengono mostrate le prestazioni relative alle diverse modalit di ricerca disponibili In particolare vengono riportati i tempi delle varie query di ricerca relativi alla collezione Logos la pi indicata per test di questo tipo date le sue ragguardevoli dimensioni i tempi di inserimento delle frasi da pretradurre complete dei relativi q grammi nelle tabelle del DMBS sono uguali per tutte le modalit e non vengono riportati in quanto tras
131. e Restituisce un vettore contenente le sottoregioni trovate nella regione passata come parametro il delimitatore quello specificato private static Vector findSubRegions Vector vRegion String delimiter Vector vSubRegion new Vector Vector vResult new Vector 230 A Il codice JAVA selezione for int i 0 i lt vRegion size i if String vRegion elementAt i equals delimiter vResult addElement Vector vSubRegion vSubRegion new Vector else vSubRegion addElement String vRegion elementAt i return vResult A 2 2 Classe Align SentAlignment package Align ZA VAVA VAVA VAVA VA VAVA VAVA VAN SentAlignment ZAMIANMIAMA IANMAMAMAMAMAMAMAMA Classe che implementa l oggetto allinemento tra frasi AVAVA VAVA VAVA VAVA VAVA VA VAN public class SentAlignment private int xl private int yl private int x2 private int y2 private int d e Costruttore SentAlignment int xli int yli int x2i int y2i int di xl xli yl yli x2 x2i y2 y2i d di e Restituisce x1 public int getx1 return xl A 2 Package Align 231 VE Restituisce y1 public int gety1 return yl Vi Restituisce x2 public int getx2 return x2 Restituisce y2 public int gety2 return y2 Ve Restituisce la distanza p
132. e di smorzamento maggiore quanto pi grande la differenza tra le posizioni passate come parametro private static double decay int p1 double p2 parametri per definire la funzione di smorzamento final double COEFF Main MainFrame COEFF final double MINDECAY Main MainFrame MINDECAY double decay MINDECAY 1 MINDECAY 1 COEFF Math pow p1 p2 2 return decay 238 A Il codice JAVA selezione Controlla eventualmente correggendo e completa l allineamento mediante interpolazione private static WordAlignment validateAlign WordAlignment wa parametri per l eliminazione di picchi tipicamente errati nell allineamento final double MAXSLRATIO Main MainFrame MAXSLRATIO final double MAXSCRATIO Main MainFrame MAXSCRATIO int pos wa getPos int score wa getScore int targetLen wa getTargetLen if pos 0 1 eventuale aggiunta allineamento parole iniziali if checkReverse pos 1 pos length 1 pos 0 targetLen inversione allineamento else pos 0 1 allineamento standard score 0 1 if pos pos length 1 1 eventuale aggiunta allineamento parole finali if checkReverse pos targetLen 0 pos pos length 1 1 inversione allineamento else pos pos length 1 targetLen allineamento standard score pos length 1 1 int start 1 int end 0 int end2 1 cic
133. e getMessage String fileoutl FILEIN1 al apertura dei file di output String fileout2 FILEIN2 al FileWriter outputFilel null FileWriter outputFile2 null try outputFilel new FileWriter fileout1 outputFile2 new FileWriter fileout2 catch IOException e throw new IOException Error creating output file e getMessage Vector vLinesl new Vector lettura dei file di input Vector vLines2 new Vector try vLinesl GlobalUtility GlobalUtility readLines inputFile1 vLines2 GlobalUtility GlobalUtility readLines inputFile2 catch IOException e throw new IOException Error reading file e getMessage finally try inputFile1 close inputFile2 close catch IOException e controllo sugli HARD DELIMITER e separazione paragrafi Vector hardRegions1 findSubRegions vLines1 HARDDELIMITER A 2 Package Align 219 int numberOfHardRegions1 hardRegions1 size Vector hardRegions2 findSubRegions vLines2 HARDDELIMITER int numberOfHardRegions2 hardRegions2 size if numberOfHardRegions1 numberOfHardRegions2 throw new IOException Input files don t contain the same number of hard delimiters ciclo di allinemento frasi per ciascun paragrafo for int i 0 i lt numberOfHardRegions1 i Main MainFrame setStatusBar Computing Sentece Align i
134. e i calcoli in figura 3 10 viene mostrato l esempio completo del calcolo dell edit distance con il metodo ottimizzato applicato alle frasi gi utilizzate negli esempi della sezione precedente 9 S 3 8 3 3 8 3 3 try D 3 D 7 S D 77 ee a r ny The TROR tools 2 Ai DNO Sal Si disk 3 NOLO includes 4 Es a pei Po SSS Figura 3 10 Edit distance il calcolo ottimizzato Nell implementazione sono stati inoltre apportati i seguenti accorgimenti e raggiunta la massima distanza consentita k l algoritmo si interrompe comunicando esito negativo e durante il calcolo dei tratti diagonali in caso di raggiungimento degli estre 3 6 La query di ricerca delle frasi intere simili 67 mi della matrice il calcolo procede solo pit per i tratti utili quelli cio che porteranno verso la cella finale vedi figura 3 11 7v Figura 3 11 Edit distance accorgimenti utilizzati nell algoritmo 3 5 5 La scelta degli algoritmi Gli algoritmi enunciati per il calcolo dell edit distance vengono realizzati con opportune stored procedure che vengono richiamate direttamente dal DBMS nelle query di ricerca In particolare per i nostri fini si deciso di utilizzare entrambi gli algoritmi mostrati e quando non richiesta dall utente la ricerca delle sottoparti simili viene utilizzato l algoritmo pe
135. e i documenti utili di una collezione Oggi la ricerca nell IR include modellazione classificazione e categorizzazione di documenti architetture di sistema interfacce utente visualizzazione di dati filtraggio ecc Inoltre con l introduzione del World Wide Web VIR ha perso la connotazione di piccola area di interesse per pochi eletti come bibliotecai od esperti di informazione ed ha assunto un importanza e una rilevanza globali 1 2 I concetti alla base dell IR L efficacia del recupero delle informazioni direttamente influenzata da due aspetti chiave il modo in cui l utente svolge il proprio compito normalmen te specificare un insieme di parole che esprima adeguatamente la semantica della propria richiesta di informazione e la vista logica dei documenti adot tata dal sistema di IR Proprio quest ultimo aspetto merita una spiegazione pi dettagliata I documenti in una collezione sono spesso rappresentati da un insieme di keyword le quali possono essere estratte direttamente dal testo del documento o possono essere esplicitamente indicate in un sunto iniziale preparato da uno specialista Comunque vengano estratte sono proprio queste parole a fornire 1 2 I concetti alla base dell IR 9 una vista logica del documento che pu essere pi o meno dettagliata a seconda della tipologia I moderni computer stanno rendendo possibile rappresentare un documento con l intero insieme delle sue parole In questo ca
136. e le eventuali parti di frasi che pi risultano simili a una qualunque parte della frase cercata e sono stati mappati tali problemi di ricerca in una serie di query progettate in modo da garantire una buona efficienza grazie all uso di opportuni filtri e indici e un alta portabilit grazie all utilizzo di comuni istruzioni SQL e stored procedure Java e per permettere a tali query di fornire effettivi suggerimenti di traduzione cio di suggerire la parte di frase in lingua destinazione corrispondente al la parte di frase in lingua sorgente riconosciuta simile sono stati studiati ed implementati una serie di algoritmi di allineamento per allineare auto maticamente nel miglior modo possibile e sempre indipendentemente dalle lingue usate prima le frasi all interno dei paragrafi poi le parole all interno delle frasi 167 168 Conclusioni e sviluppi futuri e stato infine progettato un ambiente comune che riunisce queste funziona lit e ne permette un utilizzo semplice e congiunto fornendo anche un in terfaccia comune la possibilit di configurare i vari parametri nonch la possibilit di gestire ad analizzare una Translation Memory In questo modo si ottenuto un ambiente completo progettato e realizzato in modo da essere auspicabilmente sia utile in campo professionale si pensi ad esempio ai team di traduzione impiegati da Logos sia di interesse dal punto di vista della ricerca
137. e produrre nel lignuaggio destinazione una resa appropriata della frase da tradurre figura 2 1 Brevemente vengono qui esaminati i principali tipi di paradigmi rientranti in questa categoria 10 e MT basata su vincoli Constraint Based MT CBMT e MT basata su conoscenza Knowledge Based MT KBMT e MT basata su lessico Lexical Based MT LBMT e MT basata su regole Rule Based MT RBMT 2 2 I paradigmi dei sistemi di MT 31 Linguaggio Comprensione Generazione di Linguaggio sorgente del linguaggio linguaggio destinazione Informazioni di corrispondenza sorgente destinazione 41klkAde_m___em L I I I I I I 4 Figura 2 1 Funzionamento dei paradigmi linguistic based Constraint Based MT Alla base di questa tecnica c la cosiddetta struttura funzionale o struttura f si tratta di una struttura gerarchica che evidenzia il ruolo dei vari componenti della frase soggetto verbo ecc e la loro relazione In questo modo la traduzione basata su equazioni che mettono in corrispondenza le strutture f del linguaggio sorgente con quelle del linguaggio di destinazione A titolo di esempio in figura 2 2 mostrata la struttura f per questa coppia di frasi in inglese e francese E The baby just fell F Le b b vient de tomber PRED JUST t ARG PRED FALL SUBJ TENSE PAST PRED BABV ae ae sc SUBJ SPEC E oo PRED THE PRED VENIR t SUBJ XCOMP PRED B BE GE
138. e se uguali solo in modo approssimato La finalit molto diversa dalla nostra essi intendono ovviare con questo metodo a possibili errori ad esempio di battitura che normalmente esistono nei dati Per esempio i due diversi inserimenti Smith e Smiht quest ultimo errato verrebbero comunque riconosciuti e posti in join dal DBMS Le tecniche che stanno alla base tuttavia sono molto potenti e flessibili e si riveleranno utili anche per il nostro problema il motore di similarit di EXTRA prende spunto proprio dai concetti di q grammi e di edit distance proposti in questo lavoro si rimanda alla seconda parte per una spiegazione dettagliata Proximity Search Un altro problema classico dell IR e un altra notevole fonte di ispirazione senza dubbio quello del Proximity Search Anche in questo caso le finalit dei ricerca tori sono diverse dalle nostre in particolare ci si occupa di effettuare una ricerca in documenti di una serie di parole che devono comparire vicine le une alle altre se non addirittura in sequenza Un interessante studio a questo riguardo stato svolto da Grossman Hol mes Frieder e Roberts 15 in cui viene proposto un metodo per un efficace implementazione SQL di questo tipo di query Spostando il problema dai documenti alle frasi si capisce che anche questo problema ha molto a che fare con quello della similarit tra frasi una frase simile ad un altra se presenta le parole fondamenta
139. e settings are possible Figura 6 10 Allineamento parole i risultati esempio 4 selezionato programma nuovo il automaticamente avvia lavastoviglie La The dishwasher starts the newly selected programme automatically Figura 6 11 Allineamento parole i risultati esempio 5 Per sottolineare la sostanziale indipendenza dai linguaggi utilizzati in figura 6 12 mostrato un esempio di allineamento tra due frasi in polacco ed inglese Da notare che e la sigla ISSO 123 stata trovata identica tra le due frasi e costituisce pertanto un punto saldo dell allineamento e le parole information e informacje nonch products e produkty sono messe in corrispondenza grazie all algoritmo di somiglianza LCS efficace anche per queste lingue e il termine standard e le sue varianti compaiono due volte in ciascuna frase grazie alla funzione di smorzamento di distanza vengono messe in corrispondenza nel modo pi opportuno L efficacia raggiunta dall algoritmo di allineamento delle parole di tutto rispetto fornendo questo come si visto allineamenti corretti o comunque 6 4 Ricerca di similarit 153 standard the to conform products Our request on available is translation Polish A standard ISSO 123 the concerns information This Te informacje dotycza standardu ISSO 123 Nasze produkty spelniaja ten standard Figura 6 12 Allineamento parole i risu
140. e tracciare questa linea di corrispondenza in modo del tutto univoco ed esatto il compito di questo allineamento non d altronde quello di stabilire con certezza a quale precisa parola corrisponda ogni singola parola della frase da tradurre Ci che si vuole invece stabilire con buona approssimazione a quale segmento della frase destinazione corrisponda un dato segmento della frase sorgente Sempre osservando l esempio in figura si capisce che non tutte le parole di una lingua sono in precisa relazione con quelle dell altra ad esempio la paro la di in italiano non corrisponde a nessuna precisa parola inglese Tuttavia osservando il grafico si capisce bene che se siamo interessati ad esempio alla traduzione del segmento alignment example esso in chiara corrispondenza con le parole esempio di allineamento che proprio il suggerimento che il programma potr fornire Come si vede il compito dell algoritmo di allineamen to sar pertanto quello di trovare nel modo che si vedr solo alcuni punti di corrispondenza quelli pi certamente individuabili in questo caso example ed esempio alignment ed allineamento e dall unione interpolazione di questi punti base risalire all allineamento completo 4 4 2 Schema del procedimento Il procedimento seguito per realizzare l allineamento delle parole stato con cepito partendo dalle idee migliori presenti nella ricerca di questo c
141. eDialog e MainFra me_GraphicDialog le classi che implementano le finestre figlie rispettivamente quella di configurazione descritta in 4 8 e quella per i grafici Quest ultima utilizzata per visualizzare sia le statistiche di pretraduzione sezione 4 6 2 sia la distribuzione delle frasi presenti nella Translation Memory sezione 4 7 134 5 Il progetto del software ain MainFrame Figura 5 9 Package Main class diagram 5 2 I flussi di dati DFD Per meglio spiegare e riassumere lo schema di funzionamento del programma si riportano i Data Flow Diagram DFD riguardanti le operazioni pi significative la ricerca di similarit e gli allineamenti Per migliorarne la comprensione e non appesantirli eccessivamente in alcuni casi essi risultano leggermente semplificati rispetto alla effettiva implementazione pur rimanendo fedeli alla logica sotto stante Per quanto riguarda i metodi interessati vengono indicati oltre al nome degli stessi anche la classe di appartenenza anteposta e il relativo package in basso tra parentesi 5 2 1 Ricerca di similarit Ricerca di frasi intere I diagrammi di questa sezione mostrano i metodi utilizzati per compiere le operazioni di ricerca tra frasi intere come descritte nella sezione 3 6 In figura 5 10 vengono mostrati le tabelle del DB interessate e ad alto livello il metodo che gestisce la query approrJoinQuery come si vede esso richia 5 2 I flussi di dati DFD
142. ebra booleana Le query vengono espresse come espressioni booleane con precise semantiche fornendo a questo modello una notevole semplicit e una chiara formalizzazione Passando alla caratterizzazione formale Definizione 1 3 Modello booleano Per il modello booleano le variabili peso dei termini indice sono binarie cio w j 0 1 Una query q una convenzio nale espressione booleana Sia Tang la forma disgiuntiva normale della query q Gee ognuna delle componenti congiuntive di Gans La similarit di un documento d alla query q definita come 4 gt 1 sea Tee Tec Tanf A Vki gi d gil Gee 0 altrimenti sim d q Se sim d q 1 allora il modello booleano predice che il documento dj o Ow rilevante per la query q Altrimenti la predizione che il documento non rilevante Per meglio chiarire la definizione facciamo questo esempio formulare la query q kaN kyV 7k significa richiedere i documenti che contengono il termine ka ed il termine ky oppure quelli che contengono ka ma non ke e cos via In forma disgiuntiva normale sulla base della tupla ka ks kc la query cos espressa 1 3 I modelli di IR 13 Tans 1 1 1 V 1 1 0 VG 0 0 figura 1 3 Il documento d 0 1 0 che contiene solo il termine kp sarebbe pertanto considerato non significativo L4 Figura 1 3 Modello booleano le tre componenti congiuntive della query q Il modello booleano un modello
143. eggio di allineamento ad ogni coppia di token effettuata mediante le funzioni macthScore e quelle da essa dipendenti Infine mediante validateAlign l allineamento viene verificato e completato per poi essere finalmente scritto nel file di output 5 2 5 Aggiunta di dati alla TM Il procedimento di aggiunta di dati alla Translation Memory descritto nella sezione 4 5 Il metodo principale in questo caso addMemory come mostrato 142 5 Il progetto del software dalla figura 5 20 esso tramite le consuete funzioni di utilita legge i dati dal file tm generato dagli allineamenti e mediante la funzione memToDB prov vede ad inserire i dati contenuti nel file nelle opportune tabelle insieme alle elaborazioni delle varie frasi ottenute tramite elabPhrase A seconda delle im postazioni queste elaborazioni consistono semplicemente nella rimozione della punteggiatura metodo cleanPhrase o nella normalizzazione ottenuta tramite il package Stemming SimSearch addMemory SimSearch Tabella PHRASE1 Translation Memory frasi TM nome tabella DBConnect memToDB SimSearch frasi TM nome file frasi frasi elaborate lingua sorgente GlobalUtility readTMFile GlobalUtility Utility elabPhrase SimSearch se STEM Flint Translation Memory NormalizzaFrase normalizz Stemming Utility cleanPhrase SimSearch Figura 5 20 Aggiunta
144. emmer sono molto semplici e vengono mostrate in figura 5 7 Esse vengono utilizzate fondamentalmente per controllare se una 5 1 I package e le classi 131 Stemming Rule getSuffix1 String getSuffix2 String Stemming ConnectSQLJ conneciSqlj void cercalnAbbreviazioni String cercalnDizionario String cercalnEccezioni String cercalnStoplist String cercaVerbo String chiudiOracle void dbConneci void Stemming NormalizzaFrase NormalizzaFrase void normalizz Output Stemming OperazSuFrase filtraCodice String alfanumerica Boolean pulisci String filtraDoppiSpazi String Stemming Output cercalrregolare String cercaRegolare String isNecessary Boolean ricavaRadice String Figura 5 6 Package Stemming class diagram parola appartiene ad una determinata categoria stopword nella tabella STO PLIST verbi nella tabella VERBI_EN se una parola normalizzata compare nel dizionario inglese tabella DIZ o se un abbreviazione tabella ABBREV_EN Le tabelle non presentavano chiavi primarie e quindi i dati non erano ben organizzati e non disponevano di indici adatti a velocizzare la ricerca Pertanto sono stati aggiunti e tabelle DIZ e STOPLIST chiave e indice sulla colonna word in modo da velocizzarne la ricerca ed impedire al tempo stesso la presenza di due parole uguali caso che capitava erroneam
145. ente e tabella VERBI_EN chiave sugli id in modo che dato id del verbo e id 132 5 Il progetto del software Figura 5 7 Package Stemming le tabelle utilizzate della coniugazione corrispondesse uno e un solo termine e indici su di essi ma anche sulla colonna verb contenente i termini ricercati e tabella ABBREV_EN chiave e indice sulla colonna espressione quella ricercata nelle query Inoltre stato leggermente modificato ed ottimizzato il codice delle query ed stato corretto un malfunzionamento nella query dei verbi che si occupa di controllare se una parola un verbo e di coniugarla all infinito essa generava errore nel caso di ricerca di un termine collegato a differenti id ad esempio bit sia infinito del verbo omonimo sia passato di bite Con queste migliorie l operazione di stemming ha beneficiato di una maggiore correttezza e di un notevole incremento 70 80 di prestazioni 5 1 4 Package GlobalUtility Nel package GlobalUtility sono racchiuse quelle funzioni di utilit comuni a tutto il software utilizzate per la ricerca di similarit ma anche per gli allineamenti figura 5 8 Queste funzioni sono contenute nella classe omonima GlobalU tility le utilit per la lettura dei file sia riga per riga readLines sia identificando corretta mente le varie frasi readPhrases quelle per la separazione della punteggiatura separatePunct ed altre ancora Inoltre abbiamo la funzi
146. er migliorare l efficienza si utilizzano inoltre particolari strutture dati le tabelle dei g grammi ed una serie di filtri per ottenere ottime prestazioni in ciascuna di esse A seconda delle esigenze dell utente possibile ricercare intere frasi simili ma anche sottoparti di queste permettendo in questo modo un maggiore sfrut tamento del potenziale insito nella Translation Memory spesso due frasi sono diverse nel loro insieme ma presentano magari una sottoparte del tutto analoga come struttura e pertanto utile Come si vedr anche possibile agire sui principali parametri in modo ad esempio da escludere frasi che siano diverse da quella cercata oltre una certa soglia da aumentare l accuratezza o piuttosto la velocit della ricerca e cos via 3 2 I passi fondamentali del procedimento Come si ricorder dal Capitolo 2 e in particolare dalla sezione 2 3 la ricerca di similarit tra frasi al centro del funzionamento di un sistema EBMT dato un documento di testo da tradurre questa operazione consente di accedere alla base di dati di frasi tradotte la Translation Memory identificare le frasi pi simili a quelle contenute nel documento e proporle come suggerimento per la futura traduzione figura 3 1 In questo capitolo ci disinteresseremo di tutte le operazioni pur indispen sabili relative alla creazione e alla gestione della Translation Memory come l identificazione e la corretta separazione delle frasi
147. ere i risultati delle ricerche di somiglianza FullMatch contiene le coppie di frasi simili trovate e relativa distanza mentre MatchPos e SubMatch contengono rispettivamente i risultati intermedi e finali della ricerca delle sottoparti di frase simili oltre ai codici delle frasi interessate esse contengono anche le posizioni di inizio e fine della sottoparte Per una descrizione dettagliata dell utilizzo di queste tabelle si rimanda alle relative sezioni query di ricerca delle frasi intere 3 6 e query di ricerca delle sottoparti 3 9 Nella sezione B 1 in appendice sono riportati gli script completi utilizzati nella creazione di queste tabelle 3 4 Preparazione delle frasi 59 FULLMATCH PHRASE1 PHRASE2 CODICE CODICE FRASEORIG FRASEORIG FRASE FRASE FRASETRAD FRASETRAD WORDLEN WORDLEN APOS PRE II APOS ASCORE PK FK2 11 ASCORE SPOS PKI SPOS PK PK FK1 FK2 11 PK FK1 I1 PK FK1 FK2 11 PK FK1 I1 Figura 3 5 Schema delle tabelle tabelle dei risultati 3 4 Preparazione delle frasi La ricerca delle frasi simili ha al suo cuore per lo meno nella fase iniziale di ricerca di frasi intere una rielaborazione della tecnica di approximate string join descritta in 14 e basata sul concetto di q gramma 42 43 48 per poter applicare questa tecnica efficientemente necessario innanzitutto elaborare le frasi da ricercare quindi generare i qg grammi associati inserire le frasi e i q grammi nelle oppo
148. ermine k tra i documenti della collezione fattore idf o inverse document frequency Formalizzando questi concetti Definizione 1 5 Pesi dei termini modello vettoriale Sia N il numero totale di documenti del sistema e n il numero dei documenti i cui compare il termine indice k Sia freq la frequenza del termine k nel documento d cio il numero di volte in cui il termine k usato nel testo del documento d Allora la frequenza normalizzata f del termine k nel documento d data da fg freq max freq dove il massimo calcolato tra tutti termini menzionati nel testo del docu mento dj Se il termine k non compare nel documento d allora fij 0 Inoltre sia idf la inverse document frequency di k cos definita idf ig i I pi noti schemi di peso dei termini usano pesi forniti da wig fig X idfi o da una variante di questa formula Questi vengono detti schemi tf idf I vantaggi del modello vettoriale sono diversi in particolare l utilizzo di pesi migliora la performance del recupero dei documenti consente il recupero di do cumenti che approssimano le condizioni di query Inoltre la formula di ranking con il coseno ordina i documenti rispetto al grado di somiglianza con la que ry Un difetto pu essere invece riconosciuto nel fatto che i termini indice sono sempre assunti mutualmente indipendenti 1 3 4 Modello vettoriale generalizzato Come si visto il modello vettoriale classico ass
149. ero di q grammi in comune mediante un istruzione SQL di questo tipo SELECT lt codice gt COUNT x FROM SELECT lt codice gt FROM lt tabella frasi gt WHERE CONTAINS lt colonna frase gt lt trigramma gt gt 0 UNION ALL SELECT lt codice gt una istruzione SELECT per ogni trigramma dove CONTAINS un estensione interMedia per la ricerca di frasi all in terno di testi Il risultato l insieme dei testi che contengono esattamente 28 1 Analisi dell information retrieval la frase in input Il valore di similarit prodotto da CONTAINS deter minato dal prodotto dei pesi dei termini che compaiono nella frase in input con i pesi dei termini dei testi risultato della query In particolare viene scelto di utilizzare trigrammi q 3 e di utilizzare la seguente metrica per quantificare la somiglianza tra la coppia di frasi il rapporto tra il numero di trigrammi comuni e il numero di trigrammi che compongono la frase da tradurre Come gi ricordato nella seconda parte di questo documento Capitolo 6 verranno confrontati sia in efficienza che in efficacia i risultati conseguiti dal modulo di ricerca di similarit del nostro sistema EXTRA con quelli ottenibili da altri approcci tra cui appunto quello appena descritto Nel prossimo capitolo invece si concentrer l attenzione su un altro impor tante argomento anch esso centrale ed indispensabile per collocare il progetto EXTRA
150. esempio 1 7 Inverted Index un esempio a pi oo ak a he ber ne pa 1 8 NLP un esempio di rappresentazione REST 2 1 Funzionamento dei paradigmi linguistic based 2 2 CBMT la struttura f delle frasi di esempio 2 3 Funzionamento dei paradigmi non linguistic based 2 4 Interazione DBMT con l utente un esempio 2 6 Funzionamento di un sistema EBMT ili la ea ewe ed 2 6 Allineamento uno spazio bitestuale 0 2 7 Allineamento le tipologie proposte in ricerca 2 8 Sistemi commerciali Trados Translator Workbench 2 9 Sistemi commerciali Atril D j Vu 2 10 Sistemi commerciali Cypresoft Trans Suite 2000 Editor 2 11 Sistemi commerciali Cypresoft Trans Suite 2000 Align 2 12 Fuzzy match un esempio ian eri Ae Li 3 1 La ricerca di similarit o oo a a 3 2 Activity diagram della ricerca di similarit 3 3 Activity diagram dettagliato lt ui sea serata 3 4 Schema delle tabelle tabelle delle frasi ooa 3 5 Schema delle tabelle tabelle dei risultati 02 3 6 Edit distance esempio di calcolo 0 3 7 Edit distance applicazione alle frasi 3 8 Edit distance l algoritmo ottimizzato per diagonali 3 9 Edit distance il calcolo dei tratti diagonali 3 10 Edit distance il calcolo ottimizzato ire orale fe 3 11 Edit distance accorgime
151. eturn pd e Restituisce 100 x log della probabilit che una frase di lunghezza len1 sia la traduzione di una frase di lunghezza len2 La probabilit basata su due parameri la media e la varianza del numero di caratteri stranieri per carattere della lingua di partenza 228 A Il codice JAVA selezione private static int match int len1 int len2 parametri per l allineamento delle lunghezze final double C Main MainFrame C final double S2 Main MainFrame S2 final int BIGDISTANCE 2500 double z pd mean if lenl 0 amp amp len2 0 return 0 mean lenl len2 C 2 z C x lenl len2 Math sqrt S2 mean Si utilizzano entrambi i lati della distribuzione binomiale if z lt 0 z z pd 2 x 1 pnorm z if pd gt 0 return int 100 Math log pd else return BIGDISTANCE Funzione di distanza con 4 argomenti twoSideDistance x1 y1 0 0 d il costo di sostituzione of x1 by y1 twoSideDistance x1 0 0 0 d il costo di cancellazione of x1 twoSideDistance 0 y1 0 0 d il costo di inserimento of y1 twoSideDistance x1 y1 x2 0 d il costo di contrazione of x1 x2 to y1 twoSideDistance x1 y1 0 y2 d il costo di espansione of x1 to y1 y2 twoSideDistance x1 y1 x2 y2 d il costo di fusione da x1 x2 a y1 y2 private static int twoSideDistance int x1 int yl int x2 int y2 final int PENALTY21 230 100 x log prob di match 2 1 prob di ma
152. fico di figura 6 13 essi sono in grado di fornire suggerimenti per la maggior parte delle frasi cercate 450 400 35017 3004 Frasi non trovate E Frasi Sub E Frasi Full 2504 Frasi 1504 1004 504 Logos Dpaint Fast Dpaint Accurate Fast Accurate Figura 6 13 Copertura ottenuta sulle collezioni Per la collezione Logos che dispone di una translation memory pi ricca e consolidata la maggior parte dei suggerimenti costituita da frasi intere simili In questo caso la copertura rimane invariata con oltre il 99 di frasi trovate passando da una ricerca veloce ad una accurata e i dati presentati per essa riguardano entrambe queste modalit di ricerca Utilizzando invece la collezione D Paint pi piccola e pertanto meno ottimale dal punto di vista della quantit di frasi da cui attingere i suggerimenti si vede che gli algoritmi di ricerca di sottoparti assumono un ruolo molto pi impor tante permettendo di raggiungere un ottima copertura anche in questa difficile situazione soprattutto nel caso di ricerca accurata 71 di frasi trovate 6 4 Ricerca di similarit 155 I suggerimenti forniti Vengono ora riportati degli esempi riguardanti la ricerca di similarit si tratta di esempi di pretraduzione delle collezioni Logos e DPaint che ben rappresentano l efficacia dei suggerimenti di traduzione forniti Come si visto il programma individua prima
153. frasi nella TM il traduttore deve trattare separatamente anche l immisione della terminologia specifica in dizionari aggiuntivi nonostante queste siano informazioni gi presenti nelle frasi della TM e Allineamenti non automatici La procedura di allineamento delle frasi quasi sempre di tipo manuale costringendo il traduttore a lunghe sessioni di lavoro sui testi paralleli per evidenziare le frasi metterle in corrispon denza ecc Inoltre nessun tipo di allineamento previsto all interno delle frasi ad esempio tra le varie parole Come gi ricordato partendo proprio dalla comprensione di questi notevoli limiti sono state gettate le basi del progetto EXTRA innovativo nelle concezioni e pensato per superare la maggior parte di essi Nella parte seguente di que sto documento ci si occuper della sua descrizione dall approccio adottato alla progettazione dalle caratteristiche fondamentali ai risultati ottenuti Parte II Il progetto EXTRA Capitolo 3 Ricerca di similarita tra frasi In questo capitolo ci si concentrera sull approccio seguito per realizzare quella che la funzione alla base di tutto il progetto la ricerca di similarita tra frasi Essa merita una descrizione dettagliata e verra analizzata preliminarmente anche perch come si visto dalla prima parte riguarda un argomento di ricerca di per s di notevole interesse in svariati ambiti Nel capitolo seguente si descriver invece l ambiente EXT
154. frequenti le cosiddette stopword inutili per discriminare un documento ad esempio gli articoli 3 stemming o normalizzazione delle parole rimanenti In questa sede verr brevemente descritta proprio l operazione di stemming che come si vedr piuttosto importante nel lavoro proposto 22 1 Analisi dell information retrieval 1 6 1 Stemming Di solito l utente specifica una parola nella query ma solo una variante di questa parola presente nel relativo documento I plurali le coniugazioni sono esempi di variazioni sintattiche che impediscono una perfetta corrispondenza tra una parola di query e la rispettiva parola del documento Questo problema pu essere risolto con la sostituzione delle parole con i rispettivi stem Uno stem la porzione della parola che rimane dopo la rimozione dei suoi affissi prefissi e suffissi Un tipico esempio di stem in inglese la parola connect che lo stem delle varianti connected connecting connection e connections connected connecting connect connection connections Lo stemming pertanto utile per migliorare la performance di un sistema di IR poich riduce le varianti di una stessa parola radice ad un concetto comu ne Inoltre lo stemming ha l effetto secondario di ridurre la dimensione delle strutture di indice poich ridotto il numero di termini indice distinti 1 7 Indicizzazione e Inverted index Dopo aver elaborato e ridotto l elen
155. g TABLE1 Main MainFrame TABLE1 tabella delle frasi di riferimento String TABLE2 Main MainFrame TABLE2 tabella delle frasi di query int Q Main MainFrame Q numero parole in un qgramma int QSUB Main MainFrame QSUB double K Main MainFrame K massima distanza consentita frasi intere int LMINSUB Main MainFrame LMINSUB lunghezza minima sottostringhe massima distanza consentita tra sottostringhe double KSUB Main MainFrame KSUB attiva la normalizzazione boolean STEM Main MainFrame STEM attiva il count filter nella query boolean COUNTFILTER Main MainFrame COUNTFILTER attiva il position filter nella query boolean COUNTFILTER2 Main MainFrame COUNTFILTER2 attiva il position filter nella query successiva boolean POSFILTER Main MainFrame POSFILTER attiva il length filter nella query boolean LENGTHFILTER Main MainFrame LENGTHFILTER attiva il controllo sulla e d nella query boolean EDITDISTANCE Main MainFrame EDITDISTANCE modo di ricerca delle sottostringhe boolean SUBSTR Main MainFrame SUBSTR int SUBSTRMODE Main MainFrame SUBSTRMODE delimitatori frasi String SOFTDELIMITER Main MainFrame SOFTDELIMITER String DISTDELIMITER Main MainFrame DISTDELIMITER FileReader inputFile null try apertura del file di input inputFile new FileReader FILEIN catch FileNotFoundException e A Il codice JAVA selezione throw new IOExceptio
156. ger ris getResultVector elementAt 0 intValue pwOutFile2 println FULLMATCH found fullMatches int subMatches Integer ris getResultVector elementAt 1 intValue if SUBSTR pwOutFile2 println SUBMATCH found subMatches int totTMPhrases db getMaxCod TABLE1 pwOutFile2 println Phrases in Translation Memory tot TMPhrases int totPhrases Integer ris getResultVector elementAt 2 intValue pwOutFile2 println Phrases to pretranslate totPhrases int fullPhrases Integer ris getResultVector elementAt 3 intValue pwOutFile2 println Phrases found full fullPhrases int subPhrases Integer ris getResult Vector elementAt 4 int Value if SUBSTR pwOutFile2 println Phrases found sub subPhrases pwOutFile2 println Seconds used extractResult ris getCompTime return new PretranslationStat fullTime fullTime2 subTime totTMPhrases totPhrases fullPhrases subPhrases fullMatches subMatches catch SQLException e throw new SQLException SQL error e getMessage catch IOException e throw new IOException IO error e getMessage catch IllegalArgumentException e throw new IllegalArgumentException Config error e getMessage finally try db disconnect disconnessione dal db catch SQLException e try outp
157. get in touch with the nearest After Sales Service TRAD gt Se dopo i suddetti controlli il piano o il forno non funzionano correttamente contattare il Servizio Assistenza piu vicino lt Insert translation here gt DIST 0 SENT Da notare che il formato utilizzato consente di effettuare dopo l intervento del traduttore il successivo allineamento delle parole in particolare i suggerimenti non interferiscono con le successive elaborazioni poich inseriti come linee di commento Oltre ai vari suggerimenti nei file vengono anche inserite utili informazioni aggiuntive quali tempo utilizzato per le varie fasi della ricerca numero di frasi trovate e cos via Queste informazioni vengono per comodit riepilogate anche 122 4 EXTRA un ambiente EBMT in una finestra grafica che viene mostrata al termine del processo e permet te all utente di cogliere con un colpo d occhio le prestazioni e l efficacia della pretraduzione appena svolta figura 4 22 Pretranslation Statistics Total 289 sec 99 Coverage Babia 5 TrMemory 34551 Pretranslation 400 Full Matches 1747 Sub Matches 32 Q 3 Sub 205 sec QSub 1 K 0 2 KSub 0 3 Bullets 8 LMinSub 3 Stem true Substr true Full2 9 sec SubstrMode 2 CountFilter true PosFilter true Full 75 sec LengthFilter true CountFilter2 true Phrases Figura 4 22 EXTRA il resoconto grafico sulla pretraduzione In pa
158. getTime long durata fine inizio 1000 return new Result qCount durata numero frasi inserite e tempo impiegato e Esegue la query di Approximate String Join public static Result approxJoinQuery String tab1 String tab2 int q double k boolean countFilter boolean posFilter boolean lenFilter boolean edit Dist boolean subStr throws SQLException IllegalArgumentException controllo su K if k lt 0 throw new IllegalArgument Exception EK must be gt 0 java util Date datal new java util Date per calcolo tempo long inizio datal getTime String qtabl Q tabl String qtab2 Q tab2 Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext get Default Context getConnection Statement stmt conn createStatement String approxQuery INSERT INTO FULLMATCH SELECT r2 codice AS cod2 rl codice AS cod1 wordEditDistanceDiag r1 frase r2 frase k FROM tabl rl tab2 r2 if posFilter countFilter approxQuery approxQuery qtab1 rlq qtab2 r2q WHERE rl codice rlq codice AND r2 codice r2q codice AND rlq qgram r2q qgram if posFilter approxQuery approxQuery AND ABS rlq pos r2q pos lt ROUND k r2 wordLen 184 A Il codice JAVA selezione
159. gistra nella tabella dei risultati FullMatch i dati dei match relativi alle frasi intere simili trovate codice della frase da pre tradurre cercata codice della frase della TM simile ad essa e distanza Translation Memory _ Query di ricerca _ A gt frasi intere simili Figura 3 13 Funzionamento della ricerca solo frasi intere Questo meccanismo viene ora esteso alla ricerca delle sottoparti simili nella figura 3 14 mostrato il nuovo schema di funzionamento Translation Memory a Query di ricerca frasi intere simili e dati per sottoparti Query di ricerca sottoparti simili Figura 3 14 Funzionamento della ricerca esteso alle sottoparti Come si vede il primo passo di ricerca non si limita pi a ricercare i match tra le frasi complete ma registra anche delle informazioni aggiuntive in una ulteriore tabella dei risultati MatchPos Nella sezione seguente si spiegher in dettaglio 3 8 Preparazione alla ricerca delle sottoparti 75 quali sono queste informazioni e i diversi modi che sono stati messi a disposizione per ricavarle Registrati questi risultati intermedi nel DB la preparazione alla seconda parte della ricerca conclusa ed quindi possibile eseguire la query di ricerca delle sottoparti vera e propria attingendo alla TM e ai dati intermedi questa registrer in un ulteriore tabella dei risultati SubMatch i match relativi alle migl
160. grammaticali Si sono utilizzati per dei vocabolari molto ridotti poche decine di parole e una sintas si semplificata poich grammatiche e dizionari voluminosi farebbero esplodere la dimensione delle reti neurali e il relativo tempo di apprendimento Si tratta dunque di un approccio per ora non utilizzabile per costruire un sistema MT realistico Example Based MT Questo indubbiamente uno degli ambiti di ricerca che pi ha riscosso interesse negli ultimi anni e che ha portato notevoli risultati Inoltre proprio l approccio EBMT ad avere un ruolo centrale nel progetto presentato in questo lavoro per tanto ad esso sono dedicate le sezioni seguenti di questo capitolo In particolare si cercher di spiegarne le basi e di mostrarne l innovativit e le differenze che presenta rispetto ai normali sistemi di traduzione automatica quelli cio basati sugli altri paradigmi visti Si tratta di concetti semplici ma fondamentali per comprendere i veri vantaggi di questo approccio 2 3 Sistemi EBMT I sistemi EBMT 10 emulano la traduzione umana riconoscendo la similarita di una nuova frase nel linguaggio sorgente da tradurre con una precedente mente tradotta ed utilizzando quest ultima per realizzare una traduzione per analogia L idea di base dell EBMT fa riferimento a un database di traduzioni passate in cui compaiono in parallelo le frasi da tradurre e quelle gi tradotte si tratta della cosiddetta Translation
161. gthDistrib String tabella throws SQLException final int MAXLEN 500 int len new int MAXLEN for int i 0 i lt MAXLEN i len i 0 Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext get Default Context getConnection Statement stmt conn createStatement ResultSet rset stmt executeQuery SELECT WORDLEN FROM tabella while rset next calcola l array della distribuzione int curLen rset getInt 1 if curLen gt 0 amp amp curLen lt MAXLEN len curLen rset close stmt close return len e Inserisce i q grammi nella tabella destinazione partendo dalle frasi della tabella delle frasi fornita in input public static Result fillQTable String tabSorg int startCod int q boolean qSub throws SQLException java util Date datal new java util Date per calcolo tempo long inizio datal getTime String tabDest new String if qSub tabDest QS tabSorg else tabDest Q tabSorg String frase new String Vector vagram new Vector 182 A Il codice JAVA selezione int qCount 0 conteggio qgrammi int pCount 0 conteggio frasi Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement st
162. he Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection PreparedStatement pstmt conn prepareStatement INSERT INTO MATCHPOS VALUES for i 0 i lt matchv size i int match int matchv elementAt i pstmt setInt 1 codS pstmt setInt 2 codT A 1 Package SimSearch 199 pstmt setInt 3 match 0 pstmt setInt 4 match 1 pstmt execute pstmt close return 1 A 1 4 Classe SimSearch PosQGram package SimSearch ZA VAVA VAVA VA VAVA VAVA VAVA VAN PosQgram ZAVA VAVAVA VA VAVA VA VAVA VA VAN Classe che implementa l oggetto Q gramma posizionale AVAVA VAVA VAVA VAVA VAVA VA VAN public class PosQgram private int pos private String qgram Costruttore PosQgram int p String s pos p qgram s Restituisce la posizione del q gramma public int getPos return pos 200 A Il codice JAVA selezione Restituisce la stringa del q gramma public String getQgram return qgram Modifica la posizione del q gramma public void setPos int p pos p e Modifica la stringa del q gramma public void setQgram String s qgram s A 1 5 Classe SimSearch PretranslationStat package SimSearch
163. hrow new IOException Error opening input file e getMessage try outputFilel new FileWriter fileout1 outputFile2 new FileWriter fileout2 catch IOException e throw new IOException Error creating output file e get Message lettura dei file di input Vector vLines new Vector try vLines GlobalUtility GlobalUtility readLines inputFile catch IOException e throw new IOException Error reading input file e getMessage 224 A Il codice JAVA selezione finally inputFile close Print Writer pwOutFilel new PrintWriter outputFile1 Print Writer pwOutFile2 new PrintWriter outputFile2 for int i 0 i lt vLines size i String line String vLines elementAt i if wordSizeOK line WORDSIZE continue linea scartata parole troppo lunghe int tabPos1 line indexOf t if tabPosl lt 0 continue linea scartata nessun tab int tabPos2 line indexOf t tabPos1 1 if tabPos2 gt 0 continue linea scartata pi di un tab linea OK pwOutFilel println line substring 0 tabPos1 pwOutFilel printIn DISTDELIMITER 0 pwOutFilel printIn SOFTDELIMITER pwOutFile2 println line substring tabPosl 1 pwOutFile2 printIn DISTDELIMITER 0 pwOutFile2 printIn SOFTDELIMITER try chiusura file outputFile1 close outputFile2 clo
164. i e Testl pretraduzione di 421 frasi di query con una translation memory di 34550 frasi e Test2 pretraduzione di 50 frasi con una translation memory di 61420 frasi Test2 Filtri ON e Indici OFF Test2 Filtri OFF e Indici ON Test2 Filtri ON e Indici ON Test1 Filtri OFF 258 Test1 Filtri ON 0 50 100 150 200 250 300 Secondi impiegati Figura 6 18 Effetti sui tempi di filtri e indici x Come si vede il beneficio pi che evidente attivare tutti i filtri riduce il tempo di risposta da 258 a 78 secondi La presenza degli indici migliora 6 5 Confronto con altri approcci 161 ulteriormente le prestazioni come mostrato dal Test2 In particolare le riduzioni dei tempi risultano comprese tra il 35 e 70 6 5 Confronto con altri approcci Per avere un idea dei risultati ottenibili con gli approcci tradizionali descritti nella prima parte e di come essi si rapportino a quelli ottenuti dal nostro sistema vengono fatti alcuni esempi in questa sezione 6 5 1 Approcci IR classici Sono stati innanzitutto analizzati i risultati ottenibili sulle collezioni di riferi mento in particolare la collezione DPaint mediante l utilizzo di algoritmi pi strettamente legati all ambito dell Information Retrieval capitolo 1 in partico lare la ricerca basata sui modelli vettoriali classici descritti nella sezione 1 3 3 e su query per DBMS con estensioni per Text Retrieval quali
165. i per calcolare il ranking di ordinamento Tale ranking combina i pesi standard wi con i fattori di correlazione c fornendo rispetto al modello classico una soli tamente migliore accuratezza nella ricerca a scapito di una maggiore complessit computazionale 1 4 Valutazione dei risultati di un sistema di IR In un sistema di Data Retrieval le metriche di maggiore interesse e quelle nor malmente utilizzate per valutare il sistema sono il tempo di risposta e lo spazio richiesto In questo caso si controllano la performance delle strutture di indi ce l interazione con il sistema operativo i ritardi nei canali di comunicazione gli overhead introdotti dai molti strati software presenti in una parola ci che interessa l efficienza In un sistema di Information Retrieval altre metriche sono di interesse oltre al tempo e allo spazio I sistemi di IR richiedono di valutare anche quanto preciso l insieme di risposta a una query si parla in questo caso di efficacia del sistema di IR 1 4 1 Una misura dell efficacia Richiamo e Precisione Si consideri una richiesta di informazioni J ed il suo insieme R di documenti rile vanti Sia R il numero di documenti in questo insieme Si assuma che una data strategia di recupero che si sta valutando elabori la richiesta di informazioni I e generi un insieme di documenti di risposta A Sia A il numero di documenti di questo insieme Inoltre sia Ra il numero dei documenti nell
166. i quelli per la ricerca di similarit descritti nella sezione 3 10 Configure Simsearch align Phrases Tables change only before creating the tables TABLE1 TR MEMORY PHRASE1 TABLE PHRASE2 a E QSUB fi WORDSIZE fo V STEM Phrases Normalization K fra KSUB 0 3 LMINSUB fa C No Substring search I Count Filter Count Filter pass2 C Substring search 1 pass not recommended I Length Filter Substring search 2 pass fast Position Filter Substring search 2 pass accurate 7 Edit Distance OK Cancel Figura 4 24 EXTRA la configurazione della ricerca di similarita 124 4 EXTRA un ambiente EBMT e quelli per le funzioni di allineamento delle frasi sezione 4 3 5 e delle parole sezione 4 4 6 Configure HARDDELIMITER PARA SOFTDELIMITER SENT DISTDELIMITER DIST Sentence Align C mean 1 0 2 variance 6 8 Word Align MINSCORE 200 MINLCS 04s MINTOKLEN EQMULT fisoo LCSMULT fiooo DicmuLT COEFF 2 MINDECAY ba MAXSLRATIO 40 MAXSCRATIO fho Figura 4 25 EXTRA la configurazione degli allineamenti Capitolo 5 Il progetto del software Nei due capitoli precedenti si sono presentate le funzionalita di EXTRA e gli approcci seguiti per realizzarle spiegandone le idee alla base e mantenendole quanto pi possibile svincolate dalla loro effettiva implementazione In questo capitolo verr allora approfondito proprio l aspetto del progetto e dell implementazione ve
167. i che permettono la ricerca in Digital Library di letteratura scientifica uno dei pi significativi a questo proposito CiteSeer 20 nato da un progetto al NEC Research Institute CiteSeer un sistema per la creazione di Digital Library di argomento scien tifico operazione che include una efficiente identificazione degli articoli la lo ro indicizzazione la creazione automatica di indici di citazioni l estrazione di informazioni la visualizzazione di riassunti in relazione alle query e altro ancora Ci che ha attratto la nostra attenzione e che fa rientrare questi sistemi nel l interesse di questa panoramica la possibilit di proporre dato un documento tutti quei documenti che risultano in qualche modo simili ad esso Addirittura CiteSeer vanta la possibilit di proporre i documenti che siano simili a livel lo delle frasi qualcosa che a prima vista sembra esattamente quello che ci interessa In realt un analisi pi approfondita del funzionamento di questi sistemi e di CiteSeer in particolare fa capire come nemmeno in questo ambito si risolva in modo soddisfacente il problema della similarit Quello che viene fatto semplicemente mantenere un database con tutte le frasi dei vari documenti e accedere a questo per calcolare la percentuale di frasi identiche le coppie di documenti con un alta percentuale vengono considerate simili Ai nostri fini ovviamente un approccio molto limitativo ma fornisce co mun
168. i rilevanti si fa la media dei valori di preci sione ottenuti dopo che viene osservato nel ranking ciascun nuovo docu mento rilevante Nell esempio precedente i valori di precisione osservati in seguito a ciascun documento rilevante sono 1 0 66 0 5 0 4 e 0 3 Cos la precisione media ai documenti rilevanti data da 1 0 66 0 5 0 4 0 3 5 o 0 57 Questa metrica favorisce i sistemi che recuperano velocemente i documenti rilevanti e Precisione R si calcola la precisione alla R esima posizione nel ranking dove R il numero totale di documenti rilevanti per la query corrente cio il numero di documenti del set R Nell esempio il valore della precisione R 0 4 poich R 10 e ci sono quattro documenti rilevanti tra i primi dieci del ranking Si tratta di parametri significativi anche se bisogna tenere conto che utilizzare un singolo valore per riassumere l intero comportamento di un sistema di IR sulle varie query pu divenire piuttosto impreciso 1 5 Le query di un sistema IR Una query rivolta ad un sistema di IR pu essere di vari tipi di seguito vengono spiegati i pi comuni e Query basate su parole chiave possono essere molto semplici come query di singole parole o pi complesse come query di pi parole in un contesto Ad esempio pu essere richiesta la ricerca di parole contenute in una frase 1 6 Operazioni sul testo 21 o che siano semplicemente prossime Sempre in questo campo
169. ianza eqMult e somiglianza lesMult e i parametri della funzione di smorzamento coeff e minDecay e i parametri di verifica e correzione dell allineamento finale max Sl Ratio e maxScRatio 4 4 7 Il file di Translation Memory Il risultato del processo di allineamento delle parole un file unico di estensione tm contenente finalmente tutti i dati richiesti per l inserimento delle frasi nella Translation Memory a meno delle elaborazioni finali quali lo stemming Il formato il seguente Frase 1 lingua sorgente Frase 1 lingua destinazione lt Posizioni e punteggi di allineamento delle parole gt lt Distanza di allineamento delle frasi gt Frase 2 lingua sorgente La distanza di allineamento delle frasi deriva dal precedente passo di allinea mento quello delle frasi 116 4 EXTRA un ambiente EBMT 4 5 Aggiunta di dati alla TM Dopo aver preparato ed allineato i file di testo si ottenuto un file tm contenente le coppie di frasi accompagnate dalle informazioni di allineamento a questo punto si dispone di tutti i dati per effettuare l inserimento nella Translation Memory la figura 4 19 riepiloga tutto il procedimento File di testo Lingue sorgente n e destinazione Translation j Memory Preparazione agli Inserimento dati allineamenti elaborazione finale I e ee E Allineamento delle frasi File preparati File di Lingue sorgente Translation Memory e destinaz
170. ig transPos rl spos sm il transPos rl spos sm f1 AS sfraseorigl rl frasetrad AS frasetrad1 wordSubString rl frasetrad transPos rl apos transPos rl spos sm il transPos rl apos transPos rl spos sm f1 AS sfrasetrad1 sm dist AS dist sm dist sm f2 sm i2 1 AS distrel sm i2 AS inizio 1 AS sub FROM SUBMATCH sm lt tab1 gt rl lt tab2 gt r2 WHERE sm codl rl codice AND sm cod2 r2 codice ORDER BY codice2 sub inizio dist codicel Bibliografia 1 M Abramowitz and I Stegun Handbook of Mathematical Functions US Government Printing Office 1964 A T Arampatzis T Tsoris C H A Koster and Th P van der Wei de Phrase based Information Retrieval In Information Processing and Management 1998 R Baeza Yates and B Ribeiro Neto Modern Information Retrieval Addison Wesley 1999 C Brew and D McKelvie Word pair Extraction for Lexicography In NEMLAP 1996 R D Brown Automated Dictionary Extraction for Knowledge Free Exam ple Based Translation In Proceedings of 7th International Conference on Theoretical and Methodological Issues in Machine Translation 1997 K W Church Char align A Program for Aligning Parallel Texts at the Character Level In Computational Linguistics 1993 R Cole J Mariani H Uszkoreit G Varile A Zaenen A Zampol li and V Zue Survey of the State of the Art in Human Language Technology Cambridge University Press and Giardini Online version www c
171. imento individuato da EXTRA invece pi mirato e pur non copren do l intera frase risulta comunque utile al traduttore grazie anche alla corretta estrazione delle parti interessate in lingua sorgente e destinazione Frase simile EXTRA We ve worked hard to make this explanation straightforward but due to the complexity of Perspective itself you should ensure to understand other program features Traduzione suggerita EXTRA comprendere le altre caratteristiche del programma Dal punto di vista dell efficienza stato eseguito un confronto tra il tempo impiegato da EXTRA nell eseguire la pretraduzione della collezione DPaint e quello impiegato dalle query di ricerca classiche di Text Retrieval Secondi impiegati 2504 201 2004 1504 100 504 ol Query approccio QueryEXTRA Query EXTRA IR classico solo frasi intere frasi intere e parti solo frasi intere Figura 6 20 Confronto di efficienza 164 6 Le prove sperimentali e i risultati ottenuti Ancora una volta i filtri e le ottimizzazioni apportate alle query del siste ma permettono risultati migliori consentendo di eseguire ricerche pi comples se riguardanti non solo le frasi intere in tempi comunque complessivamente inferiori 6 5 2 Altri sistemi MT Innanzitutto per dimostrare anche sperimentalmente come i sistemi HAMT per la traduzione completamente automatica non siano ancora sufficientemente m
172. indexOf fine 1 aggiunta qgramma finale vQgram addElement new PosQgram pos extendedString substring inizio 1 return vQgram e Restituisce la frase priva di caratteri di punteggiatura e speciali utilizzata in caso di normalizzazione disattivata public static Output cleanPhrase String s StringTokenizer st new StringTokenizer s 216 A Il codice JAVA selezione String token 9 String phr ym String pos int i 1 while st hasMoreTokens token st nextToken token di punteggiatura if token equals token equals token equals token equals token equals token equals token equals token equals token equals else phr phr token pos pos lt i gt i return new Output long 0 phr pos numero parole di s e Normalizza una frase se stem true oppure la ripulisce solo della punteggiatura se stem false public static Output elabPhrase String fraseSorg boolean stem if stem normalizzazione Output stemOutput NormalizzaFrase normalizz fraseSorg return stemOutput else rimozione punteggiatura Output noStemOutput cleanPhrase fraseSorg return noStemOutput e Estende la st
173. indicizzato il database dei documenti la ricerca pu iniziare L u tente fornisce la propria richiesta la quale viene analizzata da un parser e tra sformata con le stesse text operation applicate ai testi La query viene dunque processata per ottenere i documenti recuperati questi prima di essere propo 10 1 Analisi dell information retrieval sti all utente vengono ordinati ranking sulla base di un livello di rilevanza determinato da una misura di similarit figura 1 2 Documenti ordinati Interfaccia utente Richiesta dell utente Operazioni sul testo Text Operation DB Manager Vista logica Query Vista logica Testo Documenti recuperati Ordinamento ranking Figura 1 2 Il procedimento dell Information Retrieval 1 3 I modelli di IR x Come gi stato messo in evidenza uno dei problemi al centro dei sistemi di IR quello di predire quali documenti sono rilevanti e quali non lo sono questa decisione normalmente dipendente dall algoritmo di ranking utilizzato il quale tenta di stabilire sulla base di una misura di similarit un semplice ordinamento dei documenti recuperati I documenti che appaiono in cima a questo ordinamento sono quelli considerati pi rilevanti Pertanto gli algoritmi di ranking sono al centro dei sistemi di IR essi operano diversamente a seconda del modello di IR adottato I tre modelli classici dell information retrieval sono 3 e Bo
174. ine length 1 line charAt line length 1 line charAt line length 1 line charAt line length 1 line charAt line length 1 line charAt line length 1 line charAt line length 1 mLine mLine String valueOf line charAt line length 1 else if line charAt line length 1 line charAt line length 1 mLine mLine else mLine mLine String valueOf line charAt line length 1 inserimento della frase elaborata in luogo di quella originale vSent removeElementAt i vSent insertElementAt String mLine i return vSent Restituisce il vettore delle frasi con gli spazi multipli rimossi public static Vector cleanSpaces Vector vSent for int i 0 i lt vSent size i String phr String vSent elementAt i String clphr Stemming eng OperazSuFrase filtraDoppiSpazi phr A 3 Package GlobalUtility 251 vSent removeElementAt i vSent insertElementAt String clphr i return vSent A 3 2 Classe GlobalUtility TMPhrase package GlobalUtility e INMANMANMAMAMAMAMAMAMAMAMAMA TMPhrase INMANMAMAMAMAMAMAMAMAMAMAMA Classe che implementa l oggetto Translation Memory Phrase INMANMAMAMAMAMAMAMAMAMAMAMI public class TMPhrase private String phraseOrig private String phraseTrad private String aPos
175. ione Allineamento delle parole N pr N ta Risultati allineamento frasi Lingue sorgente e destinazione Figura 4 19 Creazione della Translation Memory schema riassuntivo In realt prima dell inserimento vero e proprio viene svolta un ultima ela borazione analoga a quella gi descritta nel caso di file da pretradurre sezione 3 4 1 In particolare si provvede a generare un ulteriore versione della frase sorgente quella che verr esaminata dagli algoritmi di ricerca di similarit vi sti nel capitolo precedente a seconda delle preferenze dell utente l elaborazione consister nella semplice rimozione della punteggiatura o nello stemming Analogamente a quanto si visto per l allineamento delle parole tra lingua sorgente e lingua destinazione anche l operazione di stemming stata estesa per supportare la ricerca di sottoparti utilizzando una nuova stringa di coordina te possibile comprendere a quali parole della frase originale corrispondano le parole presenti nella parte normalizzata con stemming 4 6 Pretraduzione 117 Per ottenere questi risultati stato esteso il package di stemming sviluppato da F Gavioli 13 ottenendo come risultato non solo la frase normalizzata ma anche la stringa contenente le posizioni numeri delle parole della frase origi naria cui corrispondono le parole della frase normalizzata per una discussione completa delle migliorie apportate si veda il pr
176. iori sottoparti simili trovate 3 8 Preparazione alla ricerca delle sottoparti 3 8 1 Le informazioni aggiuntive da estrarre Nella esecuzione della query di ricerca per frasi intere sezione 3 6 si visto che per tutte le coppie di frasi che soddisfano le condizioni dei vari filtri viene calcolata la matrice di distanza per poter stabilire ledit distance tra le due frasi in questione Con alcune modifiche e senza rilevanti cali di prestazioni possibile estrarre da questi calcoli delle informazioni che si riveleranno preziose per la succesiva ricerca di sottoparti le posizioni nelle due frasi di eventuali parole uguali mostrate con E in figura 3 15 8 S TCS mm ef Sa iS lh Bp es Si oe s E 7 O 7 2 2 6 ao A o D The 1 0E 1 2 oa tools 2 i voOEY yd 2 8 4 disk 8 2 oe OES eel 2 fae 4 includes 4 3 2 if 1 2 3 4 some 5 4 3 2 2 ileal 2 3 Utilities 6 5 4 3 3 2 2 12E Figura 3 15 I dati utili per la successiva ricerca di sottoparti simili L algoritmo per il calcolo dell edit distance prevede gia la costruzione della tabella e il confronto tra tutte le coppie di parole sezione 3 5 2 l unica diffe 76 3 Ricerca di similarita tra frasi renza in questo caso che non potremo utilizzare l ottimizzazione per diagonali e che non saremo pi interessati solo alla cella in basso a destra con il risult
177. iva ricerca sottoparti simili public static int wordEditDistanceSubCheck String s int codS String t int codT double maxDist throws SQLException int n DBUtility wordLen s numero parole di s int m DBUtility wordLen t numero parole di t cas particolari if n 0 return 1 if m 0 return 1 int d new int n 1 m 1 matrice di costi int i itera in s int j itera in t String si iesima parola di s String tj jesima parola di t 198 A Il codice JAVA selezione Vector sv DBUtility vectorFromString s Vector tv DBUtility vectorFromString t Vector matchv new Vector for i 0 i lt n i inizializzazione prima colonna a i 0 i for j 0 j lt m j inizializzazione prima riga a 0 j j for i 1 i lt n i calcolo matrice dei costi s i String sv elementAt i 1 for j 1 j lt m j tj String tv elementAt j 1 parole uguali if si compareTo t_j 0 d i j d i 1 j1 int match i j matchv addElement match else parole diverse d i j 1 DBUtility minimum d i 1 fj dfi j 1 d i 1 j 1 if d n m lt Math round maxDist m trovato match tra stringhe frasi intere return 0 else if matchv size gt 2 inserimento nella tabella MATCHPOS dei dati necessari per il match tra sottostring
178. ivello delle parole 92 4 EXTRA un ambiente EBMT La preparazione dei file consiste fondamentalmente nella corretta individua zione dei paragrafi e delle frasi la cui separazione verra evidenziata esplicita mente nei file preparati prodotti in output partendo da questi sara possibile effettuare l allineamento automatico delle frasi 4 2 1 Il riconoscimento delle frasi Per individuare nel modo pi preciso e flessibile la corretta suddivisione in frasi di un file di testo indispensabile poich alla base di tutte le elaborazioni successive stato progettato un semplice automa a stati finiti vedi figura 4 4 Gli stati finali rappresentano in questo caso i punti in cui vengono riconosciute la fine della frase e quella del paragrafo correnti Invio Spazio elim l Invio Spazio l Invio Spazio ins invi ins Invio Spazio elim Invio Spazio elim Invio l Invio ins l Invio Spazio ins Invio elim Fine Frase Fine Paragrafo Invio elim l Invio ins con spazio Invio Spazio ins Figura 4 4 Riconoscimento delle frasi automa In particolare la condizione di separazione tra una frase l altra la presenza dei caratteri o seguiti da spazio o finvio Formalmente Z P spazio invio 4 2 Preparazione agli a
179. k gt gt 0 Come sempre la registrazione delle informazioni aggiuntive svolta interna mente alla stored procedure richiamata in ultimo Come si vede il nuovo filtro di ridondanza evita di analizzare ulteriormente tutte quelle coppie frasi che gi nel primo passaggio sono state riconosciute come simili in questo caso le frasi sono simili nella loro interezza pertanto ulteriori analisi alle relative sottoparti sarebbero ridondanti Inoltre la nuova versione del filtro di conteggio risulta compatibile con la ricerca di sottoparti Il minimo conteggio necessario minCount cosi calcolato minCount IMinSub 1 Round kSub x lMinSub 1 q 2 q 1 In pratica si tratta della formula del filtro di conteggio standard sezione 3 6 1 calcolata per invece che di volta in volta sulla lunghezza delle frasi una volta per tutte per il caso peggiore quello della lunghezza minima MinSub Questo infatti il parametro che regola la lunghezza minima delle sottoparti che verranno successivamente ricercate Inoltre si utilizza kSub massima distanza 3 8 Preparazione alla ricerca delle sottoparti 79 relativa consentita per le sottoparti in luogo di k e compare il fattore correttivo 2 x q 1 Nel suo insieme questa formula calcola il nuovo numero minimo di q grammi uguali che le due frasi candidate devono presentare per poter avere una sot toparte simile di lunghezza almeno lMinSub Per farlo tiene conto e concilia
180. k includes some utilities mostrate nell esempio di figura 3 7 uguale a 2 in questo caso 2 parole di distanza 8 s q Eg Ea EE E laa 7 z D 0 1 2 3 4 5 6 7 The 1 0 1 2 3 4 5 6 tools 20610 0080902203975 disk 3 2 I 0 1 2 3 4 includes 4 3 2 1 1 2 3 4 some 5 4 3 2 2 1 2 3 utilities 6 5 4 3 3 2 2 2 Figura 3 7 Edit distance applicazione alle frasi Come si vede l algoritmo di calcolo in s immutato e vengono mantenute tutte quelle caratteristiche e propriet che anche in questo ambito si rivelano di notevole interesse In particolare ai nostri fini fondamentale la possibilit di quantificare in modo preciso e univoco la somiglianza tra due frasi Non solo senza nessuna operazione aggiuntiva possibile stabilire la frase che pi simile a una data Quella con il punteggio di distanza minore sar insomma la miglior candidata quella che potr comparire per prima nella lista dei suggerimenti come si vede l applicazione dell edit distance fornisce di suo 3 5 La metrica di similarita Edit distance 65 un ottimo metodo per stabilire il ranking che come si visto nel Capitolo 1 indispensabile in ambito di Information Retrieval Inoltre altro punto fondamentale questo punteggio di somiglianza anche sensibile all ordine delle parole non solo alla loro presenza evidente che le frasi The wolf eats a sheep non per
181. kSub int IMinSub boolean countFilter boolean qSub throws SQLException IllegalArgumentException A 1 Package SimSearch 185 controllo su K if k lt 0 kSub lt 0 throw new IllegalArgumentException K and KSUB must be gt 0 java util Date datal new java util Date per calcolo tempo long inizio datal getTime String qtabl new String le tabelle dei q grammi da utilizzare String qtab2 new String if qSub qtabl QS tab1 qtab2 QS tab2 else int minCount IMinSub 1 int Math round kSub lMinSub 1 q q 1 2 if Co qtab1 Q tab1 qtab2 Q tab2 minCount lt 1 minCount 1 Crea una connessione JDBC dal DefaultContext SQLJ corrente nnection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement String approxQuery INSERT INTO FULLMATCH SELECT r2 codice AS cod2 rl codice AS cod1 wordEditDistanceDiag r1 frase r2 frase k FROM tabl rl tab2 r2 if countFilter approxQuery approxQuer Fil PP y app y qtab1 rlq qtab2 r2q approxQuery approxQuery WHERE r2 codice NOT IN SELECT cod2 FROM FULLMATCH countFilter approxQuery approxQuery AND rl codice rlq codice AND r2 codice r2q codice
182. l allineamento tra le frasi nelle lingue sorgente e destinazione e cos via come ricordato esse verranno approfondite nel capitolo seguente 3 2 I passi fondamentali del procedimento 55 Ricerca nella Suggerimenti per la Translation Memory traduzione A tradurre I Translation Memory Figura 3 1 La ricerca di similarit Ci che invece occorre qui dettagliare il modo in cui viene affrontata la ricerca delle frasi simili Immaginando di disporre gi di una Translation Memory opportunamente organizzata con frasi gi estratte allineate ed accoppiate nelle due lingue nonch delle frasi da tradurre gi adeguatamente separate il processo preveder i seguenti passi vedi figura 3 2 1 preparazione delle frasi da tradurre 2 ricerca di somiglianza vera e propria Preparazione frasi Ricerca di somiglianza Figura 3 2 Activity diagram della ricerca di similarit 56 3 Ricerca di similarita tra frasi Aggiungendo dettagli a questo schema di fondo figura 3 3 e la prima fase comprende in realt l elaborazione delle frasi da tradurre e il loro inserimento in apposite tabelle della base di dati e la ricerca di somiglianza pu essere suddivisa in ricerca delle frasi intere simili e ricerca delle sottoparti simili quest ultima opzionale Elaborazione frasi Inserimento frasi Preparazione in base dati frasi p Inserimento risultati somiglianza Figura 3 3
183. l infor mazione posizionale contenuta in un q gramma L enunciato su cui si fonda il seguente 70 3 Ricerca di similarita tra frasi Enunciato 3 2 Se le stringhe 01 e 02 sono entro una edit distance di k allora un q gramma posizionale in una non pu corrispondere a un q gramma posizionale nell altra che disti da esso pi di k posizioni Nella query questo filtro implementato con un ulteriore clausola where WHERE AND ABS rlq pos r2q pos lt lt k gt dove ABS la funzione SQL che restituisce il valore assoluto dell espressione passata Il filtro di lunghezza Si pu considerare infine che osservando la lunghezza delle frasi confrontate possibile scartare svariate coppie di frasi candidate Enunciato 3 3 Se due frasi c e 02 sono entro una edit distance k le loro lunghezze non possono differire per pi di k Nella query si aggiunger allora AND ABS rl wordlen r2 wordlen lt lt k gt 3 6 2 Edit distance relativa e arrotondamenti Un ulteriore aggiunta alla query legata alla seguente considerazione facile rendersi conto della scarsa flessibilit di un parametro k massima distanza con sentita assoluto non legato alle frasi cercate In particolare ad esempio questo significa ammettere un uguale numero di errori nel caso in cui la frase cercata sia di 3 o di 20 parole Questo non ovviamente desiderabile per ovviare a questo inconveniente si deciso di u
184. lazione tra i vettori i e T Questa correlazione pu essere quantificata ad esempio come il coseno dell angolo tra i due vettori figura 1 4 Pertanto d T sim d q Ta i a Q Figura 1 4 Modello vettoriale il coseno di 0 adottato come sim d q I pesi dei termini possono essere calcolati in molti modi L idea alla base delle tecniche pi efficienti legata al concetto di cluster proposto da Salton 35 Si pensi ai documenti come a una collezione C di oggetti e alla query dellu tente come a una vaga specificazione di un insieme A di oggetti Il problema dell IR pu essere allora ridotto a quello di determinare quali documenti sono nel set A e quali no in particolare in un problema di clustering occorre risolvere due sotto problemi Occorre determinare quali sono le caratteristiche che descrivono al meglio gli oggetti dell insieme A si parla allora di similarit intra cluster e quali sono le caratteristiche che meglio distinguono gli oggetti dell insieme A dagli altri oggetti della collezione C dissimilarit inter cluster Nel modello vettoriale la similarit intra cluster quantificata misurando la frequenza di un termine k in un documento d questa viene detta fattore tf term frequency e misura quanto un termine descrive i contenuti del documen to La dissimilarit inter cluster invece quantificata misurando l inverso della 1 3 I modelli di IR 15 frequenza di un t
185. li approssimativamente nello stesso ordine Natural Language Retrieval Molti studi sono stati svolti anche nel campo del Natural Language Processing NLP applicato all Information Retrieval Queste applicazioni si differenziano dal NLP classico in quanto di prefiggono uno scopo diverso Come si sa il problema tipico dell IR capire se un documento rilevante o no rispetto a una data query per ottenere questo scopo non necessaria la piena comprensione 1 8 IR e Ricerca di Similarit Stato dell arte 25 e interpretazione del documento cosa invece cui mira la ricerca in puro ambito NLP Croft e Lewis 8 propongono un linguaggio chiamato REST Representation for Science and Technology si tratta di un linguaggio basato su frame che per mette di rappresentare il contenuto di un documento in termini di un insieme di concetti scientifici di base Dopo aver indicizzato questi contenuti per i docu menti del DB nello stesso modo si crea una rappresentazione REST della query e si esegue la ricerca A titolo di esempio in figura 1 8 viene mostrata la rappre sentazione REST della query Probabilistic analyses of Quicksort a divide and conquer algorithm STUDY 1 APPEARANCE analysis STUDY 2 IS A DEF STUDY 1 ARGUMENT OF DEF RELATIONSHIP 1 STUDY 3 IS A DEF STUDY 2 INTEREST DEF METHOD 3 RELATIONSHIP 1 APP probabilistic METHOD 1 APP algorithm METHOD 2 IS A DEF METHOD 1 USES DEF
186. liaia rappresenta un completo fallimento Per Information Retrie val le cose stanno diversamente non ci sono delle certezze assolute gli oggetti 7 8 1 Analisi dell information retrieval recuperati possono anche essere inaccurati ed facile che piccoli errori passino inosservati Questo poich lIR quasi sempre deve fare i conti con testo in lin guaggio naturale che non sempre ben strutturato e pu essere semanticamente ambiguo Per essere veramente efficace un sistema di IR deve in qualche modo in terpretare il contenuto degli oggetti informativi i documenti in una collezione e ordinarli in base al grado di rilevanza con la query Questa interpretazione del contenuto del documento riguarda l estrazione di informazioni sintattiche e semantiche dal testo del documento e la loro utilizzazione per soddisfare i bisogni dell utente La difficolt sta non solo nel decidere come estrarre le informazioni ma anche come usarle per stabilirne la rilevanza Pertanto la nozione di rile vanza al centro dell information retrieval lo scopo primario di un sistema di IR proprio recuperare tutti i documenti rilevanti rispetto alla query dell uten te ordinandoli ranking rispetto a una misura di similarit e riducendo il pi possibile il numero di documenti non rilevanti recuperati Negli ultimi 20 anni l area dell information retrieval andata ben oltre gli scopi primari di indicizzare testo e ricercar
187. lianza tra le frasi che due frasi simili avranno un gran numero di q grammi in co mune Ai nostri fini questi concetti sono stati applicati ma con una modifica fondamentale l unit di misura non pi il singolo carattere di una stringa ma la parola di una frase In questo modo un q gramma non sar pi una sequenza di q caratteri ma di q parole Ad esempio data la frase you can collect a library of images l insieme corrispondente di q grammi posizionali con q 3 il seguente 1 you 2 you can 3 you can collect 4 can collect a 5 collect a library 6 a library of 7 library of images 8 of images 9 images In particolare il procedimento di ricerca di similarit adottato prevede le strazione di due set di q grammi caratterizzati da diversi valori di q e qstandard utilizzato nella ricerca delle frasi intere e qSub un q inferiore tipicamente unitario pi adatto invece alla ricerca delle sottoparti 3 4 3 L inserimento Le frasi nella doppia versione originale ed elaborata ad esempio con stemming e i q grammi dopo essere stati elaborati ed estratti nel modo visto vengono registrati nelle tabelle gi presentate nella sezione 3 3 3 5 La metrica di similarit Edit distance Per poter spiegare il metodo seguito nella ricerca necessario innanzitutto chia rire il concetto di edit distance
188. llineamenti 93 La condizione di separazione tra un paragrafo e l altro invece un doppio invio Viene inoltre indicato se i caratteri di volta in volta riconosciuti vengono inseriti ins o eliminati elim nella frase estratta Con questo metodo si riescono a separare correttamente le frasi anche in documenti con una formattazione non ideale ad esempio il carattere di fine linea non viene di per s interpretato come la fine della frase spesso utilizzato in un file solo per non estendere la linea al di l di un certo numero di caratteri 4 2 2 I file preparati L automa viene applicato ai due documenti nelle due lingue generando in output due file pronti per l allineamento di questo tipo Frase 1 paragrafo 1 SENT separatore di frasi Frase 2 paragrafo 1 SENT PARA separatore di paragrafi Frase 1 paragrafo 2 dove i separatori SENT e PARA sono modificabili dall utente In alternativa possibile preparare all allineamento anche file contenenti frasi gi correttamente segmentate ed individuate sar sufficiente rispondere negativamente alla richie sta di identificazione frasi figura 4 5 In questo caso non verr ovviamente applicato l automa a stati finiti ma le varie frasi presenti gi una per riga saranno semplicemente portate in output aggiungendo gli opportuni separatori X Phrases identification Q Is phrase search required Yes phrases will be
189. lo di controllo e interpolazione while end 1 if end2 1 double sll Math abs double pos end pos start end start double s12 Math abs double pos end2 pos start end2 start eliminazione eventuale picco errato if sll gt sl2 x MAXSLRATIO amp amp score end2 gt scorefend x MAXSCRATIO score end 1 end end2 A 2 Package Align 239 for int i start 1 i lt end i interpolazione pos i pos start posfend pos start x i start end start start nextMatch score start if start 1 break end nextMatch score start if end 1 break end2 nextMatch score end return new WordAlignment pos score targetLen e Dato il vettore delle posizioni verifica se necessario invertire l allineamento delle parole iniziali e finali private static boolean checkReverse int pos int val int oppositePos if pos oppositePos val for int i 0 i lt pos length i if pos i 1 amp amp posi val return false return true else return false e Dato il vettore di punteggi restituisce la posizione del match che segue quella passata come parametro se non esiste ritorna 1 private static int nextMatch int score int n boolean ok true do n if n gt score length ok false break 240 A Il codice
190. lobalUtility A 3 1 Classe GlobalUtility GlobalUtility package GlobalUtility INMVANMAMAMAMAMAMAMAMAMAMAMA GlobalUtility INMANMANMAMAMAMAMAMAMAMAMAMA Classe astratta contenente funzioni di utilita per la lettura di file INMANMAMAMAMAMAMAMAMAMAMAMA import java util import java io public abstract class GlobalUtility e Restituisce un vettore contenente le linee lette nel file public static Vector readLines FileReader File throws IOException BufferedReader in new BufferedReader File String line null Vector vLines new Vector 246 A Il codice JAVA selezione line in readLine while line null vLines addElement String line line in readLine return vLines Restituisce un vettore contenente le frasi lette nel file vettore di oggetti TMPhrase public static Vector readTMFile FileReader File throws IOException BufferedReader in new BufferedReader File String phraseOrig new String frase da tradurre String phraseTrad new String frase tradotta String aPos new String stringa di posizioni di allineamento String aScore new String stringa di punteggi di allineamento Vector vTMPhrases new Vector phraseOrig in readLine while phraseOrig null phraseTrad in readLine aPos in readLine aScore in readLine vTMPhrases addElement new TMPhrase phraseOrig phraseTr
191. lt Nello spazio bitestuale formato dalle due frasi si veda anche la sezione 2 3 1 possibile rappresentare graficamente tale funzione di corrispondenza tra le parole i valori sull asse delle ascisse rappresentano le parole della frase da tradurre quelli sull asse delle ordinate le parole della corrispondente traduzione Se le due frasi fossero esattamente identiche corrispondenza perfetta la funzione coinciderebbe con la diagonale principale dello spazio bitestuale la linea retta che lo attraversa dall angolo in basso a sinistra all angolo in alto a destra poich a seconda delle lingue usate l ordine e il numero delle parole pu subire variazioni la funzione di allineamento effettiva sar una linea spezzata che oscilla intorno alla diagonale In figura 4 14 mostrato un esempio di questa funzione per due frasi di esempio in questo caso per una traduzione da inglese a italiano Frase in lingua destinazione allineamento di esempio un Questo Frase in lingua This is an alignment example sorgente Figura 4 14 Allineamento parole un esempio Come si intuisce dalla figura la funzione ha il seguente significato data una posizione della frase da tradurre essa restituisce la posizione corrispondente 106 4 EXTRA un ambiente EBMT nella frase tradotta Ad esempio alla parola alignment la funzione mette in relazione la parola allineamento Ovviamente non sempre possibil
192. ltati esempio 6 sufficientemente precisi per supportare correttamente la successiva estrazione delle parti simili vedi in proposito la sezione successiva Delle oltre 35000 frasi allineate per la collezione Logos solo una percentuale molto bassa contenevano delle corrispondenze inesatte inoltre bisogna tener conto che nella maggior parte dei casi possibile ovviare agli eventuali errori di allineamento modificando in modo opportuno i vari parametri a disposizione che permettono di adattare al meglio l algoritmo ai documenti e alle lingue su cui si opera Per quanto riguarda l efficienza anche questo algoritmo molto veloce le oltre 35000 frasi della collezione vengono allineate in poco meno di un minuto e mezzo 6 4 Ricerca di similarit In questa sezione vengono analizzate le prestazioni della principale funzione del programma la ricerca di similarit In particolare si esamineranno e l efficacia con la copertura raggiunta sulle collezioni e la qualit dei sug gerimenti proposti e l efficienza delle varie modalit disponibili 154 6 Le prove sperimentali e i risultati ottenuti e gli effetti delle variazioni sui principali parametri disponibili nonch dei filtri e degli indici utilizzati 6 4 1 Efficacia Copertura Un aspetto fondamentale dell efficacia della ricerca di similarit la copertura che gli algoritmi di ricerca sono in grado di fornire sulle varie collezioni Come si vede dal gra
193. mentali sul sistema sono state pertanto utilizzate una serie di collezioni create ad hoc e Collezione DPaint si tratta di due versioni successive dello stesso ma nuale tecnico di un prodotto software costituita da 1497 frasi di riferi mento e da 419 frasi di query e Collezione Logos si tratta di una Translation Memory completa relativa ai manuali tecnici di questa ditta Le frasi di riferimento sono in questo caso 34550 complete della relativa traduzione e 421 le frasi di query La collezione DPaint stata utilizzata pi che altro per analizzare il sistema qualitativamente dal punto di vista dell efficacia dei suggerimenti L idea alla base di questa collezione quella di testare il sistema in una delle situazioni pi comuni per la traduzione EBMT dover tradurre una nuova versione di un manuale tecnico disponendo delle traduzioni di una versione precedente in cui presumibilmente sar possibile riscontrare notevoli similarit Per rendere pi interessanti le prove sono stati scelti manuali dalla versione 3 e dalla versione 5 di questo software versioni non consecutive proprio per ridurre le similarit banali dovute alla presenza di frasi rimaste invariate In questo modo stato possibile mettere maggiormente alla prova gli algoritmi avanzati di ricerca di sottoparti simili La collezione Logos invece stata fornita da LOGOS cos come da loro uti lizzata essa rappresenta tutta la translation mem
194. mt execute DROP INDEX tabDest elimina l indice verr ricreato dopo gli inserimenti pi efficiente String query SELECT codice frase FROM tabSorg WHERE codice gt startCod ResultSet rset stmt executeQuery query PreparedStatement pstmt conn prepareStatement INSERT INTO tabDest VALUES while rset next if qSub Main MainFrame setStatusBar Extracting q grams sub Phrase pCount q gram qCount else Main MainFrame setStatusBar Extracting q grams Phrase pCount q gram qCount int cod rset getInt codice frase rset getString frase if frase null se c e una frase vqgram Utility qgramVector frase q true for int i 0 i lt vqgram size i PosQgram qg PosQgram vqgram elementAt i int pos qg getPos String qgram qg getQgram pstmt setInt 1 cod pstmt setInt 2 pos pstmt setString 3 qgram pstmt execute qCount pCount Main MainFrame setStatusBar Extracting q grams updating indexes stmt execute CREATE INDEX tabDest ON tabDest qgram A 1 Package SimSearch 183 stmt close pstmt close rset close java util Date data2 new java util Date calcolo tempo impiegato long fine data2
195. n Error opening input file e getMessage Vector vPhrases new Vector Main MainFrame setStatusBar Extracting and elaborating phrases try lettura del file di input if oneLine vPhrases GlobalUtility GlobalUtility readPhrases inputFile else vPhrases GlobalUtility GlobalUtility readLines inputFile catch IOException e throw new IOException Error reading file e getMessage finally try inputFile close catch IOException e chiusura del file di input 0 String fileoutl FILEIN al String fileout2 FILEIN pretrad al FileWriter outputFilel null FileWriter outputFile2 null try apertura dei file di output outputFilel new FileWriter fileout1 outputFile2 new FileWriter fileout2 catch IOException e throw new IOException Error creating output file e getMessage separazione punteggiatura vPhrases GlobalUtility GlobalUtility separatePunct vPhrases eliminazione doppi spazi vPhrases GlobalUtility GlobalUtility cleanSpaces vPhrases writePhrases vPhrases outputFilel scrittura file di output 1 stampa intestazione file di output 2 di pretraduzione PrintWriter pwOutFile2 new PrintWriter outputFile2 pwOutFile2 println DE pwOutFile2 printIn Q Q if SUBSTR pwOutFile2 println QSUB QSUB pwOutFile2 printIn
196. n ead you into the new Millennium TRANS Suite 2000 is a new fast and extremely powerful Translation tool that enables you to translate aster more reliable and more consistent than ever before it s not only one translation tool but also a whole suite iif pf tools that manages every aspect of translation business TRANS Suite 2000 was designed to leam while you re working mnVutch rtt Eb ER ScuceBock Tope Blok Bux Jup Loco Yow Hob M Whole word onk Match Care PyCypresoft lanceert een nieuwe vorm van vertalen die u kan binnenloodsen in het nieuwe Millennium krachtig product die u in staat stelt om Hugger betrouwbaarder en meer coherent te vertalen dan ooit oordien let is niet alleen een vertalingstool maar een olledige suite van tools die ieder aspect van de vertaal usiness beheert Het verzamelt alle varige vertaal paren in een Vertaal IGeheugen an kan zo al deze kennis opniauw gebruiken in de toekomst t collects all your previous translation pairs into a ri Hdt kan zelfs de volgende zin zijn dia u vartaald translation Memory so can re use all this knowledge n the future Figura 2 11 Sistemi commerciali Cypresoft Trans Suite 2000 Align Fuzzy match spesso inefficaci La ricerca di frasi simili non basata su algoritmi adeguatamente potenti e flessibili problema riscontrato anche in 21 ma si riduce come gi evidenziato alla ricerca di frasi essenzialmente identiche sia nella struttura sia
197. n parte simile Strip approx 10 mm of sheath from the wires First insert the cable max 14 mm diameter through the opening in the cover Then 156 6 Le prove sperimentali e i risultati ottenuti insert the power supply cable into the cable clamp and connect the wires to the terminal block as indicated in the diagram printed on the bottom of the cooktop Traduzione completa Rimuovere ca 10 mm di guaina dai fili Inserire dapprima il cavo diametro max 14 mm attraverso l apposita apertura nel coperchio Inserire quindi il cavo alimentatore nel morsetto serrafilo e collegare i fili al blocco terminale come indicato nel diagramma stampato sulla base del piano di cottura Traduzione suggerita Inserire quindi il cavo alimentatore nel morsetto serrafilo e collegare i fili al blocco terminale come indicato nel diagramma stampato La similarit viene riconosciuta sulle frasi nella lingua sorgente individuata la parte simile il programma accede ai dati di allineamento ed cos in grado di estrarre dalla traduzione della frase completa la parte interessata Si ricorda che per gli esempi tratti dalla collezione Logos come quello appena mostrato la segmentazione stata indicata dai traduttori stessi e non ricavata dagli algoritmi di EXTRA gli elementi coinvolti non sempre sono costituiti da singole frasi ma come si vede questo non condiziona la qualit della pretraduzione Un altro esempio il seguent
198. nel giusto contesto quello della traduzione assistita dalla teoria di base ai principali strumenti disponibili Capitolo 2 Analisi della traduzione assistita 2 1 Introduzione alla Machine Translation Il termine Machine Translation MT 16 indica genericamente la traduzione mediante computer Nel suo significato pit ampio MT include in realta appli cazioni per computer come compilatori programmi di compressione ecc che convertono un file da un linguaggio per computer ad un altro Tuttavia quello che veramente ci interessa in questo ambito il cosiddetto Natural Language Processing NLP cio l elaborazione del linguaggio naturale Ci sono quattro principali tipologie di traduzione che vedono il ruolo della macchina via via sempre pi fondamentale e Traduzione umana Un traduttore umano esegue tutti i passi del processo di traduzione utilizzando il computer solo come word processor e Traduzione umana assistita dalla macchina conosciuta come Machine Assisted Human Translation MAHT La traduzione eseguita da un traduttore umano ma questi usa il computer come uno strumento per migliorare o velocizzare il processo di traduzione Questa anche detta traduzione assistita dal computer Computer Aided Translation CAT e Traduzione automatica assistita dall uomo conosciuta anche come Human Assisted Machine Translation HAMT Il testo nel linguaggio sorgente modificato da un traduttore umano prima du
199. nel significato vedi figura 2 12 evidente che quando possibile trovare questi suggerimenti sicuramente le nuove traduzioni vengono notevolmente velocizzate pi realisticamente per capita che nella Translation Memory non si trovino frasi cos simili ed allora che i limiti di queste modalit di ricerca diventano evidenti This sentence was created at 11 17 on 19 December 2000 This sentence was created at 40 45 on 25 March 1999 Deze zin werd gemaakt om 11 17 op 19 Maart 2000 Concordance 75 84 Matching 85 Fuzzy Internal Match Creator Alain Figura 2 12 Fuzzy match un esempio Ricerca di sottoparti fortemente incompleta Quei prodotti che offrono algoritmi di ricerca non solo di frasi intere ma anche di sottoparti lo fanno in un modo lacunoso ed insoddisfacente Non solo ci si restringe in questo caso ai soli match esatti ma si ricercano soltanto quelle sottoparti che sono 2 4 EBMT Stato dell arte 49 state inserite come tali nella TM se una frase inserita per intero simile solo in una sua sottoparte quest ultima non viene recuperata e proposta Un limite molto grave che costringe il traduttore ad inserire nella TM non solo la coppia di frasi tradotta ma anche individualmente le varie sottoparti che riterr poter tornare utili e Netta separazione tra Terminologia e Translation Memory Come diretta conseguenza dell inabilit nel ricercare autonomamente le sottoparti delle
200. nfigurazione dei parametri di funzionamento Nelle sezioni seguenti verranno analizzate tutte queste caratteristiche con particolare attenzione a quei procedimenti che anche in ambito di ricerca vedi Capitolo 2 assumono una notevole importanza gli allineamenti 4 2 Preparazione agli allineamenti 91 Open File Prepare To Align File1 and File2 Open File2 Prepare To Align File1 Tabbed Exit Sentence Align File1 and File2 Word Align File and File2 Sim Search Create all tables Configure About Drop all tables Pretranslate File1 Add to Tr Memory File1 Tr Memory Status Tr Memory Distribution Figura 4 2 EXTRA i comandi disponibili a menu 4 2 Preparazione agli allineamenti Questa l operazione iniziale che viene effettuata sui file di testo contenenti i do cumenti nelle due lingue che si vorranno aggiungere alla Translation Memory necessaria per preparare questi documenti ai successivi processi di allineamento figura 4 3 xt prep XN Preparazione agli S allineamenti txt prep NI NI File di testo File preparati Lingue sorgente Lingue sorgente e destinazione e destinazione Figura 4 3 Preparazione agli allineamenti schema Come si visto non infatti possibile inserire i documenti di testo cos come sono inizialmente nella Translation Memory dovranno essere inserite piuttosto le diverse frasi che li compongono allineate nelle due lingue sia a livello delle frasi che a l
201. ngTokenizer s Vector v new Vector while stok hasMoreTokens v addElement stok nextToken return v e Restituisce il numero di parole lunghezza in parole della stringa s public static int wordLen String s if s null return 0 if s equals return 0 StringTokenizer st new StringTokenizer s return st countTokens numero parole di s Restituisce la sottostringa di s che comincia e finisce dalle parole di posizione specificata A 1 Package SimSearch 193 public static String wordSubString String s int fromWord int toWord if s null return ELEN ELIN if s equals return int startIndex 0 int endIndex 0 if fromWord gt toWord int w toWord toWord fromWord fromWord w for int i 1 i lt fromWord i startIndex s indexOf startIndex 1 for int i 0 i lt toWord i endIndex s indexOf endIndex 1 if startIndex gt 0 startIndex else if startIndex 1 startIndex s length if endIndex 1 endIndex s length return s substring startIndex endIndex la sottostringa di s cercata e Restituisce la posizione numero della parola della frase originale corrispondente alla n esima parola della frase normalizzata public static int transPos String sPos int n if sPos null ret
202. nizializzazione prima colonna ali 0 i for j 0 j lt m j inizializzazione prima riga a 0 i j for i 1 i lt n i calcolo matrice dei costi si String sv elementAt i 1 for j 1 j lt m j t j String tv elementAt j 1 if s_i compareTo t_j 0 cost 0 else cost 1 d i j DBUtility minimum d i 1 j 1 d i j 1 1 dfi 1 j 1 cost return d n m Calcola la Edit Distance distanza in parole tra due stringhe versione ottimizzata per calcolo su diagonali public static int wordEditDistanceDiag String s String t double maxDist int n DBUtility wordLen s numero parole di s int m DBUtility wordLen t numero parole di t final int VUOTO 10 valore di inizializzazione array cas particolari if n 0 amp amp m 0 return 1 if n 0 return m if m 0 return n int d new int n 1 m 1 matrice di costi array dei punti di partenza degli stroke int startx new int m 1 int starty new int n 1 int stroke 0 valore dello stroke di partenza int i variabili per cicli 3 pi int j int k int posx 0 variabili per estremi di calcolo int posy 1 int stopx m 196 A Il codice JAVA selezione int stopy n Vector sv DBUtility vectorFromString s Vector tv DBUtility vectorFromString t inizializzazione arr
203. nt codice frase cercata corrente for int i cercata 1 i lt cur i if i 1 pwOutFile println r n lt Insert translation here gt pwOutFile printlIn dDelim 0 pwOutFile println sDelim pwOutFile println r n pwOutFile printIn PHRASE NOT FOUND COD i String vPhrases elementAt i 1 if cercata cur stampa la frase cercata se diversa dalla precedente 190 A Il codice JAVA selezione cercata cur if cercata 1 pwOutFile println r n lt Insert translation here gt pwOutFile printIn dDelim 0 pwOutFile println sDelim pwOutFile println ii r n ry pwOutFile println PHRASE FOUND COD cercata rset getString frase2 pwOutFile println ORIG rset getString fraseorig2 if rset getInt sub 0 phrasesFull conteggio frasi trovate full else phrasesSub conteggio frasi trovate sub Ii if rset getInt sub 0 full match pwOutFile println FULL D rset getInt dist RD new DecimalFormat 0 00 format rset getDouble distrel COD rset getInt codicel rset getString frase1 pwOutFile println ORIG rset getString fraseorig1 pwOutFile println TRAD gt rset getSt
204. ntesto della traduzione multilingua Partendo dagli studi condotti nell ambito dell Information Retrieval e delle tecniche di ricerca comunemente utilizzate basilari ma insufficienti per questo particolare problema stata definita una struttura teorica che permette di esprimere adeguatamente ed efficacemente se e quanto due frasi sono simili basata su concetti a volte gi noti ma mai utilizzati in questo campo quale quello di edit distance Sono quindi stati progettati una serie di algoritmi che appoggiandosi su un DBMS permettono di effettuare questo nuovo tipo di ricerca Siccome il volume di dati su cui lavora un traduttore normalmente di notevoli dimensioni si fatto in modo che anche dal punto di vista dell efficienza i risultati fossero di 2 Introduzione alto livello utilizzando query ottimizzate anche nella struttura ci si avvalsi di una serie di filtri in grado di ridurre il volume dei dati e delle operazioni senza per questo mai rinunciare alla correttezza e alla completezza del risultato Infine per poter sfruttare appieno il potenziale di questi algoritmi e per for nire un certo numero di funzionalit aggiuntive complementari questo lavoro si evoluto e ampliato nel progetto EXTRA EXample based TRanslation Assi stant un ambiente completo per il traduttore di testi sviluppato su tecnologie Java JDBC ed Oracle EXTRA stato pensato in particolare per accelerare la traduzione di ma nu
205. nti utilizzati nell algoritmo 3 12 Arrotondamento delle edit distance relative xl xii ELENCO DELLE FIGURE 3 13 3 14 3 15 3 16 3 17 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 4 25 5 1 5 2 5 3 5 4 5 9 5 6 5 7 5 8 5 9 5 10 5 11 Funzionamento della ricerca solo frasi intere 74 Funzionamento della ricerca esteso alle sottoparti 74 I dati utili per la successiva ricerca di sottoparti simili 75 Le tre versioni della ricerca paria A alb eS Aa 76 Ricerca delle sottoparti un esempio ooo o a a a 86 EXTRA l ambiente principales a fd fer re 90 EXTRA i comandi disponibili a menu 91 Preparazione agli allineamenti schema 91 Riconoscimento delle frasi l automa 92 EXTRA il requester per l identificazione delle frasi 93 Allineamento frasi schema eco 4622 eee ee eked PES 94 Allineamento frasi esempi di corrispondenze 95 Allineamento frasi correlazione nelle lunghezze dei paragrafi 96 Allineamento frasi la distribuzione di Delta 98 Allineamento frasi le categorie e le relative probabilit 99 Allineamento frasi gli elementi interessati dal calcolo di i j 101 Allineamento frasi il percorso di allineamento 102 Allineamento parole schema LL
206. o BEM No Round C Round Esatto Errori concessi Zi Il I La frase parole 8 9 Figura 3 12 Arrotondamento delle edit distance relative x Questo concetto visualizzato per k 0 4 nel grafico di figura 3 12 esso mostra gli andamenti del numero di errori concessi al variare della lunghezza 72 3 Ricerca di similarita tra frasi della frase Come si vede nel caso di arrotondamento si commette un errore inferiore Nella query si utilizza pertanto il seguente K equivalente ROUND lt k gt r2 wordlen calcolato partendo dal parametro decimale k modificabile dall utente e arro tondato mediante la funzione SQL ROUND 3 6 3 La query completa La query completa di tutti questi accorgimenti perci la seguente INSERT INTO FULLMATCH SELECT r2 codice AS cod2 rl codice AS codl wordEditDistanceDiag r1 frase r2 frase lt k gt FROM lt tab1 gt rl lt qtab1 gt riq lt tab2 gt r2 lt qtab2 gt r2q WHERE rl codice rlq codice AND r2 codice r2q codice AND rlq qgram r2q qgram filtro di posizione AND ABS rlq pos r2q pos lt ROUND lt k gt x r2 wordlen filtro di lunghezza AND ABS rl wordlen r2 wordlen lt ROUND lt k gt r2 wordlen filtro di conteggio GROUP BY r2 codice rl codice rl frase r2 frase HAVING COUNT gt rl wordlen 1 ROUND lt k gt r2 wordlen 1 lt q gt AND COUNT x gt
207. o e migliorano con l utilizzo pi vengono utilizzati pi diventano accurati e utili I sistemi TM insomma non traducono da soli Quando il sistema TM in procinto di tradurre una nuova frase svolge una ricerca nella Translation Memory e presenta all utente le traduzioni di frasi identiche o simili che il traduttore ha fatto in passato Nonostante in molti casi non proponga di suo una traduzione lo aiuta ad assicurare la consistenza dello stile e della terminologia permettendogli di consultare con facilit le traduzioni passate In altre parole i sistemi basati su Translation Memory non traducono ma forniscono consistenza permettendo al traduttore un lavoro pi rapido e di maggiore qualit 2 3 1 Schema di funzionamento Lo schema di funzionamento tipico di un sistema EBMT illustrato in figura 2 5 La Translation Memory Al centro di tutto c la Translation Memory che come si visto contiene il patrimonio di traduzioni che il traduttore professionista ha realizzato in passato in realt per un funzionamento ottimale di questi sistemi non necessario inserire in questo DB tutti questi documenti importante piuttosto inserirne 2 3 Sistemi EBMT 37 un certo numero che siano il pi possibile di argomento attinente ai lavori che si vorranno tradurre in modo assistito Ad esempio se il traduttore volesse tradurre un particolare manuale tecnico sarebbe opportuno che inserisse nella TM se disponibili
208. o lcs if curScore gt score tokl getPos amp amp curScore gt bestScore bestScore curScore bestPos tok1 getPos if bestPos 1 trovato un possibile allineamento pos bestPos tok2 getPos 1 score bestPos bestScore A 2 Package Align 237 return new WordAlignment pos score targetLen e Restituisce un punteggio riguardante l allineamento dei due token passati come parametro valori pi alti corrispondono ad accoppiamenti pi probabili private static int matchScore Token t1 Token t2 double lr boolean lcs final int EQMULT Main MainFrame EQMULT punteggio di all parole uguali final int LCSMULT Main MainFrame LCSMULT punteggio di all parole simili final int DICMULT Main MainFrame DICMULT punteggio di all parole da dizionario final double MINLCS Main MainFrame MINLCS soglia minima di somiglianza String sl t1 getToken String s2 t2 getToken int posl t1 getPos int pos2 t2 getPos double pos2Rel pos2xlr punteggio di uguaglianza if sl equalsIgnoreCase s2 return int EQMULT x decay posl pos2Rel else if lcs double lcsScore lcs s1 s2 double Math max s1l length int s2 length punteggio di somiglianza if lesScore gt MINLCS return int LCSMULT lesScore decay posl pos2Rel else return 0 else return 0 e Restituisce il coefficient
209. o se trovato previsto anche un parametro minScore che come si vede funge da soglia mi nima gli accoppiamenti con punteggio inferiore a quello specificato non saranno presi in considerazione 4 4 4 Il punteggio di affinit Tutto l algoritmo si basa sui punteggi assegnati alle varie coppie di parole pi questo punteggio alto pi l accoppiamento forte cio pi probabile che le parole siano effettivamente in corrispondenza Il sistema di punteggi utilizzato strutturato nella maniera pi possibile flessibile e prevede l assegnazione di un punteggio non solo alle parole riconosciute come identiche ma anche seppur in modo inferiore a quelle riconosciute come simili Inoltre a parit di somiglianza vengono premiate le parole che figurano in posizioni pi simili nelle due frasi pi la coppia di parole si trova distante nelle due frasi ad esempio una parola all inizio di una frase ed una alla fine 110 4 EXTRA un ambiente EBMT dell altra pit il relativo punteggio risulter diminuito da una opportuna funzione di smorzamento Uguaglianza Il punteggio di uguaglianza il massimo ottenibile due termini uguali ottengo no a meno dello smorzamento un punteggio quantificato dal parametro eqM ult impostato di default a 1500 Si tratta del punteggio pi elevato poich due termini uguali nelle due lingue rappresentano un punto di corrispondenza prati camente sicuro ed pertanto giust
210. o che pesino di pi ad esempio di due termini solamente simili scoreeg A B eqMult Il punteggio di uguaglianza assegnabile a tutte le classi di termini allineabili in particolare per gli elementi di punteggiatura e le sigle alfanumeriche il test di uguaglianza il solo preso in considerazione per essi non avrebbe senso parlare di somiglianza Somiglianza ed LCS Per la sola categoria delle parole non alfanumeriche e di lunghezza superiore alla soglia minima oltre al controllo di uguaglianza in caso di esito negativo dello stesso viene applicato un algoritmo che quantifica la somiglianza tra le due parole in questione Grazie a questo algoritmo possibile riconoscere un buon numero di ulteriori accoppiamenti quelli riguardanti le cosiddette parole affini parole con una morfologia molto simile nelle due lingue Per fare un esempio le parole government inglese e gouvernement francese non sono del tutto identiche ma anche non conoscendo le due lingue facile intuirne la stretta relazione Ricercare queste somiglianze di forma fruttuoso per la maggior parte delle lingue e soprattutto economico non sono richieste informazioni aggiuntive quali dizionari e thesauri In ambito di ricerca sono stati proposti diversi metodi per la ricerca di queste somiglianze vedi sezione 2 4 1 ricercare parole che iniziano con un certo numero di caratteri uguali o a che abbiano un certo numero di caratteri uguali c
211. o insieme Per compiere questa analisi sono stati svolti un notevole numero di test e prove sperimentali appositamente studiati per mettere alla prova il sistema nel modo pi completo possibile mostrandone il comportamento al variare dei prin cipali parametri di questi test verranno riportati i pi significativi Inoltre si confronteranno le prestazioni ottenute dal sistema con quelle offerte dagli approcci tradizionali come descritti nella prima parte di questo lavoro Per i test riguardanti l efficienza si ricorda per la precisione che i tempi riportati sono riferiti ad un computer basato su Pentium III 1000Mhz con 256 Mb di memoria ed hard disk EIDE da 20 Gb 6 1 Le collezioni usate nei test Essendo i sistemi EBMT un campo di ricerca relativamente nuovo non esistono criteri o test precisi per verificarne le prestazioni In ambito di Information Re trieval classico esistono collezioni di documenti e relative query di riferimento unanimamente riconosciute ed utilizzate dai ricercatori per verificare l efficacia e l efficienza di un algoritmo Nel nostro caso stato evidente fin da subito che queste collezioni non potevano essere utilizzate esse sono costruite per verificare 145 146 6 Le prove sperimentali e i risultati ottenuti quali documenti vengono reperiti da un sistema IR data una serie parole chiave descrittive problema ben diverso da quello della ricerca di similarita tra frasi Per effettuare le prove speri
212. o un insieme finito di regole nella forma 6 03 04 c dove 03 e 0 sono due stringhe diverse e c un numero reale non negativo Una volta che l operazione ha convertito una sottostringa 03 in 04 nessuna ulteriore operazione pu essere svolta su 04 Nel nostro caso si considera il seguente insieme di operazioni possibili cia scuna di costo unitario e Inserimento a cio inserire la lettera a e Cancellazione d a cio cancellare la lettera a e Sostituzione d a b cio sostituire a con b Alla luce di queste definizioni allora l edit distance tra le due stringhe rap presentanti ad esempio le parole surgery e survey sar di 2 unit una 66 99 eer sostituzione da g a v e una cancellazione r 3 5 La metrica di similarita Edit distance 63 3 5 2 L algoritmo per il calcolo Il pi semplice algoritmo per risolvere il problema del calcolo dell edit distance quello che stato riscoperto pi volte nel passato per l applicazione alle pi diverse aree 36 49 19 Si fa qui riferimento alla versione presentata in 27 L algoritmo basato sulla programmazione dinamica Immaginando di dover calcolare ed 01 02 si riempie una matrice Co o 0 02 dove Ci j rappresenta il minimo numero di operazioni necessarie per trasformare 01 1 in o2 1 7 Il calcolo procede come segue Cio 4 Coj J Cig Ci 1j 1 se o1 7 o2 j 1 min G
213. oSid d5 i gt 0 amp amp j gt 1 di MAXINT st i 1 j 2 twoSid d6 i gt 1 amp amp j gt 1 di contrazione eDistance x i espansione eDistance x i fusione MAXINT dmin dl if if if if if if d2 lt dmin dmin d2 d3 lt dmin dmin d3 d4 lt dmin dmin d4 d5 lt dmin dmin d5 d6 lt dmin dmin d6 dmin MAXINT dist i j 0 st i 2 j 2 twoSideDistance x i j 1 x i 0 j 2 0 ylj 1 j 2 x i 1 ylj 1 226 A Il codice JAVA selezione ra if dmin dl sostituzione ST patbx i j i 1 patby i j j 1 i if dmin d2 cancellazione da patbx i j i l pathyli j j ta if dmin d3 inserimento e 43 pathx i j i pathyli j j 1 ne if dmin d4 contrazione nee pathx iJ j i 2 pathyfi j j 1 i if dmin d5 espansione dea pathx i j i 1 pathy i j j 2 Ra dmin d6 fusione a pathx iJ j i 2 pathy iJ j j 2 Vector align new Vector Vector ralign new Vector int oi oj di dj for int i nx j ny i gt 0 j gt 0 i oi j oj oi pathx i j oj pathy i j di i oi dj j oj if di 1 amp amp dj 1 sostituzione SentAlignment alignS new SentAlignment x i 1 y j 1 0 0 dist i j dist i 1 j 1 ralign addElement alignS else
214. ocessing Technical report Cornell University 2000 18 G Kondrak Alignment of Phonetic Sequences Technical report University of Toronto 1999 BIBLIOGRAFIA 261 19 20 21 22 26 27 28 29 30 31 K Kukich Techniques for Automatically Correcting Words in Text In ACM Computing Surveys 1992 S Lawrence K Bollacher and C Lee Giles Indexing and Retrieval of Scientific Literature In Proceedings of 8th International Conference on Information and Knowledge Management 1999 E Macklovitch and G Russel What s been Forgotten in Translation Memory In AMTA 2000 F Mandreoli R Martoglia and P Tiberio Searching Similar Sub Senten ces for Example Based Machine Translation Lavoro sottoposto al Convegno SEBD 2002 I D Melamed Bitext Maps and Alignment via Pattern Recognition In Computational Linguistics 1999 G A Miller WordNet A Lexical Database for English In CACM 38 1995 G A Miller R Beckwith C Fellbaum D Gross and K Miller Five Papers on WordNet Technical report Princeton University s Cognitive Science Laboratory 1993 M Nagao A Framework of a Mechanical Translation between Japanese and English by Analogy Principle Nato Publications 1984 G Navarro A guided Tour to Approximate String Matching Technical report Dept of Computer Science University of Chile 2001 Oracle 8i SQL Reference 2000 Oracle Corporation Oracle 8
215. oleano e Vettoriale 1 3 I modelli di IR 11 e Probabilistico Nel modello booleano i documenti e le query sono rappresentati come insiemi set di parole chiave pertanto diremo che il modello di tipo set theoretic Nel modello vettoriale i documenti e le query sono rappresentati come vettori in uno spazio t dimensionale pertanto definiremo questo modello algebrico Nel modello probabilistico il fondamento della modellazione della rappresentazione del documento e della query la teoria della probabilit pertanto diremo che il modello probabilistico Nel seguito verranno analizzati in particolare i modelli booleano e vettoria le e relative estensioni cio quelli pi utilizzati e inerenti alle problematiche affrontate in questo lavoro 1 3 1 Formalizzazione generale possibile formalizzare nel seguente modo un generico modello di IR Definizione 1 1 Modello di Information Retrieval Un modello di Infor mation Retrieval una quadrupla D Q F R qi d dove 1 D un insieme composto di viste 0 rappresentazioni logiche dei documenti della collezione 2 Q un insieme di viste o rappresentazioni logiche delle richieste di informazioni degli utenti query 3 F framework l insieme delle regole alla base della modellazione delle rappresentazioni dei documenti delle query e delle loro relazioni 4 R q d una funzione di ordinamento ranking che associa un numero reale a ogni c
216. one e l organizzazione di questi oggetti fornisce all utente un facile accesso all informazione cui interessato Sfortunatamente non sempre facile caratte rizzare con esattezza il bisogno di informazioni di un utente questi deve prima tradurre questo suo bisogno in una query che possa essere elaborata da un motore di ricerca o sistema di IR Nella forma pi comune questa traduzione mantiene un set di parole chiave keyword o termini indice che riassumono la descrizione del bisogno dell utente Data la query dell utente la principale finalit di un sistema di IR recuperare l informazione che pu essere utile o rilevante importante mettere in evidenza un concetto chiave la differenza tra In formation Retrieval e Data Retrieval quest ultimo nel contesto di un sistema di IR consiste principalmente nel determinare quali documenti di una collezione contengono le parole chiave della query cosa che non sufficiente a soddisfare il bisogno di informazioni di un utente Infatti all utente di un sistema di IR interessa pi recuperare informazioni su un particolare argomento piuttosto che recuperare dati che soddisfano una particolare query Lo scopo di un linguaggio di Data Retrieval di recuperare tutti gli oggetti che soddisfano delle condizio ni definite con chiarezza come quelle di una espressione regolare o di algebra relazionale Cos per un sistema di Data Retrieval il recupero di un oggetto errato tra mig
217. one per la lettura del le informazioni di una Translation Memory read TMFile insieme alla relativa classe TM Phrase che unisce le informazioni stesse in un unico oggetto 5 1 I package e le classi 133 Align SentAlign Align WordAlign _ zs abstract GlobalUtility GolbalUtility cleanSpaces Vector readLines Vector readPhrases Vector readTMFile Vector separatePunct Vector GlobalUtility TMPhrase aPos String aScore String phraseOrig String phraseTrad String void String getAScore String getPhraseOrig String getPhraseTrad String Figura 5 8 Package GlobalUtility class diagram 5 1 5 Package Main Le classi del package Main costituiscono lo scheletro del programma e ne rea lizzano l interfaccia esse non implementano le funzionalit vere e proprie ma piuttosto utilizzano ed uniscono quelle fornite dai package principali gi ana lizzati Per questo motivo le classi di questo pacchetto vengono mostrate con un approfondimento molto minore senza scendere nel dettaglio dei vari metodi presenti essi sono piuttosto numerosi e come spiegato non troppo significativi ai fini di questa analisi In figura 5 9 sono mostrate le principali classi presenti e le relative dipen denze Extra la classe principale MainFrame la classe che realizza la fine stra grafica principale dell applicazione MainFrame_Congifur
218. onsecutivi L approccio adottato in EXTRA va oltre tutto questo permettendo di trovare gli accoppiamenti in modo pi completo ed efficace Si utilizza un algoritmo 4 4 Allineamento delle parole 111 chiamato LCS Longest Common Subsequence molto simile a quello di edit distance e considerabile quasi come il duale di quest ultimo anche qui viene calcolata dinamicamente una matrice mai relativi valori invece di essere distanze sono lunghezze Pi il risultato finale alto pi le due parole presentano affinit morfologiche In questo caso le varie colonne e righe della matrice corrispondono ai caratteri delle varie parole La definizione formale classica la seguente Definizione 4 3 Common Subsequence Siano A 0109 am B b1b3 bn due sequenze parole di un alfabeto di dimensione s Una sequenza S 189 81 L lt M l lt n detta sequenza comune Common Subsequence di A e B sse S pu essere ottenuta da A e B cancellando un certo numero di simboli non necessariamente consecutivi Per calcolare la LCS tra due parole si utilizza un algoritmo dinamico che prevede la compilazione della matrice L definendo A la lunghezza della parola A e A 0 lt i lt A il prefisso di A di lunghezza i l elemento L cos definito Lij max S S e una sequenza comune di A e B L equazione di ricorsione la seguente descritta in 34 0 se 1 00j 0 Lig Legga 1 se a bj man Liga j Lij 1
219. oppia costituita da una query qi Q e da una rappresentazione di documento d D Tale ranking definisce un ordine tra i documenti rispetto alla query qi I modelli classici come si visto considerano ogni documento come descritto da un insieme di parole chiave rappresentative dette anche termini indice Sia k un termine indice d un documento e w un peso associato alla coppia k d Questo peso quantifica l importanza del termine indice nel descrivere i contenuti 12 1 Analisi dell information retrieval semantici del documento maggiore il peso maggiormente il termine signifi cativo ed adatto a descrivere e a rappresentare gli argomenti trattati nel testo Formalizzando Definizione 1 2 Peso dei termini Sia t il numero di termini indice nel sistema e k un generico termine indice K k1 ky Vinsieme di tutti i termini indice Un peso wi gt 0 associato a ogni termine indice k di un documento d Per un termine indice che non appare nel testo del documento w j 0 Al documento d associato un vettore di termini indice di rappresentato da dj Wij W25 W2 Inoltre sia gi una funzione che restituisce il peso associato al termine indice k in ogni vettore t dimensionale cio gi dj wi I pesi dei termini indice sono normalmente assunti mutualmente indipendenti 1 3 2 Il modello booleano Il modello booleano un semplice modello basato sulla teoria degli insiemi e sull alg
220. ore abbia rispettato sempre tutti i limiti delle varie frasi spesso per rendere una traduzione pi scorrevole nella lingua destinazione pu capitare di fondere due frasi di quella sorgente o ancora di spezzare in due frasi un pensiero particolarmente lungo o addirittura di sopprimere integralmente una frase vedi figura 4 7 4 3 Allineamento delle frasi 95 Lingua sorgente Lingua destinazione Paragrafo 1 Paragrafo 1 Frase 1 gt Frase 1 Frase 2 gt Frase 2 Frase 3 gt Frase3 Frase 4 gt Frase 4 Frase 5 Figura 4 7 Allineamento frasi esempi di corrispondenze Proprio per questi motivi l allineamento un processo piuttosto lungo e faticoso se svolto manualmente In questo progetto viene utilizzato un metodo che automaticamente ricerca queste corrispondenze esso basato sui principi descritti da A Gale e W Church 12 nel loro lavoro gi citato nel Capitolo 2 4 3 1 I principi di funzionamento Il metodo basato su un modello statistico riguardante le lunghezze delle frasi in caratteri La considerazione fondamentale la seguente frasi pi lunghe in una lingua tendono ad essere tradotte in frasi pi lunghe nell altra lingua frasi pi corte tendono ad essere tradotte in frasi pi corte Ad ogni possibile corrispondenza tra le frasi assegnato un punteggio probabilistico che esprime una distanza tra esse basata sulla differenza tra le lunghezze in caratteri tra le due frasi e sulla varianza
221. ory relativa ad un particolare cliente e permette di testare il sistema con i volumi di lavoro utilizzati effettiva mente dai traduttori professionisti Pertanto questa collezione stata utilizzata soprattutto per testare il sistema dal punto di vista dell efficienza inoltre stata utile per verificarne il comportamento in uno scenario pi consolidato rispetto al precedente in cui il numero e la ripetitivit delle frasi nella Translation Me mory erano molto inferiori Infine a differenza della collezione DPaint questa collezione contiene le traduzioni delle frasi di riferimento in questo modo sta to possibile testare anche l efficacia degli allineamenti nel fornire i suggerimenti nella lingua destinazione Nelle figure 6 1 e 6 2 sono mostrate per completezza le distribuzioni delle lun ghezze delle frasi delle due collezioni cos come mostrate dall apposita funzione 6 1 Le collezioni usate nei test 147 descritta nella sezione 4 7 in particolare possibile notare che il picco del grafico relativo alla collezione Logos centrato su lunghezze inferiori in quanto in essa compaiono oltre alle frasi vere e proprie anche le terminologie utilizzate con le relative traduzioni Number of phrases 5 10 15 20 25 30 35 40 Length words Figura 6 1 Distribuzione della collezione DPaint Number of phrases 5000 4000 3000 2000 1000 5 10 15 20 25 30 35 40 45 50 55 60 Length words
222. ossimo capitolo Ad esempio lo stemming di This means you can collect a library of images restituisce non solo la frase mean can collect library image ma anche la stringa di posizioni lt 2 gt lt 4 gt lt 5 gt lt 7 gt lt 9 gt la prima parola della frase normalizzata corrisponde alla seconda parola della frase originaria la seconda alla quarta e cosi via permettendo la futura corretta estrazione dei risultati A questo punto si dispone di tutti i campi presenti nella tabella della Trans lation Memory descritti nella sezione 3 3 ed possibile completare il processo di creazione della TM inserendo i dati nel DataBase 4 6 Pretraduzione In EXTRA l operazione di pretraduzione consiste nell analizzare un documento e produrre in output due file figura 4 20 e un file contenente le varie frasi opportunamente identificate e suddivise e un file contenente per ciascuna di queste frasi tutti i suggerimenti di traduzione trovati nell operazione di ricerca di somiglianza sia frasi intere sia sottoparti e il relativo spazio per permettere al traduttore di inserire la traduzione vera e propria I due file presentano un formato del tutto analogo all output del processo di allineamento di frasi vedi sezione 4 3 6 questo per permettere al tradut tore dopo aver inserito le traduzioni corrette di procedere con l allineamento delle parole tra le due lingue e con l inserimento finale del nuovo
223. ostituite da due diversi passi di interrogazione successivi Sar l utente a scegliere per un dato lavoro di pretraduzione il metodo pi adatto alle particolari esigenze Versione a un solo passo Questo indubbiamente il metodo concettualmente pi semplice la query pre sentata per la ricerca delle sole frasi intere viene modificata ed estesa all estrazio ne delle informazioni aggiuntive necessarie La query sostanzialmente invariata nella struttura vista nella sezione 3 6 con la differenza che il controllo sull edit distance invece di essere svolto tramite la stored procedure che esegue il calcolo ottimizzato per diagonali wordEditDistanceDiag r1 frase r2 frase lt k gt gt 0 viene svolto mediante una nuova funzione wordEditDistanceSubCheck r1l frase rl codice r2 frase r2 codice lt k gt gt 0 Quest ultima perfettamente compatibile con la precedente permettendo cos l individuazione dei match tra frasi intere ma rinuncia all ottimizzazione per diagonali per fornire invece l individuazione e la registrazione nel DB delle parole uguali trovate che serviranno per la successiva elaborazione In questo modo con una piccola variante possibile utilizzare una query unica che in un solo passo ricerca i match interi e prepara alla successiva ricerca di submatch Tuttavia un approccio che spesso si rivela poco conveniente questo perch la query presenta una serie di filtri che sono stati costrui
224. parte di frase tradotta utilizzando i dati di stemming ed allineamento presenti nella Translation Memory figura 4 21 parola1 parola2 parola3 parola4 parola5 parola6 parola7 bad Pad Frase tradotta 7 e 7 got 7 Coordinate di lt 2 gt lt 3 gt lt 5 gt lt 6 gt lt gt RE allineamento parola1 parola2 parola3 parola4 parola5 parola6 parola7 n A Frase originaria N I N N I Coordinate di lt 1 gt lt 2 gt lt 4 gt lt 5 gt normalizzazione parola1 parola2 parola3 parola4 parola5 Frase normalizzata Figura 4 21 Estrazione risultati le coordinate per le sottoparti 4 6 Pretraduzione 121 Per quanto riguarda l ordinamento i match vengono ordinati in modo da presentare le frasi cercate nell ordine originario per ciascuna di esse vengono proposti i match completi partendo dal pit simile o i match tra sottoparti ordinati per punto di inizio nella frase cercata quindi per similarita 4 6 2 La presentazione dei risultati A pretraduzione avvenuta vengono generati i file di output visti un esempio di file di pretraduzione con i suggerimenti trovati il seguente PHRASE FOUND COD 153 check fault occur get touch nearest sale service ORIG If after the above checks the fault still occurs get in touch with the nearest After Sales Service FULL D 0 RD 0 00 COD 11468 check fault occur get touch nearest sale service ORIG If after the above checks the fault still occurs
225. posString posString lt pos al gt scoreString scoreString lt score al gt scrittura del file di output pwOutFile println String vSentl elementAt i pwOutFile println String vSent2 elementAt i pwOutFile printIn posString 236 A Il codice JAVA selezione pwOutFile println scoreString Allinea i token passati come argomento private static WordAlignment tokAlign Vector vTok1 Vector vTok2 WordAlignment wa boolean lcs final int MINSCORE Main MainFrame MINSCORE minimo punteggio per considerare due parole allineate int pos wa getPos array di posizioni di allineamento int score wa getScore array di punteggi di allineamento int targetLen wa getTargetLen lunghezza della frase target if vTokl size 0 vTok2 size 0 nessun token passato return wa rapporto tra le lunghezze delle due frasi double lenRatio double pos length targetLen ciclo allineamento token for int j 0 j lt vTok2 size j Token tok2 Token vTok2 elementAt j int bestScore MINSCORE migliore punteggio di allineamento per il token corrente int bestPos 1 corrispondente posizione di allineamento ricerca miglior allineamento per il token corrente for int i 0 i lt vTokl size i Token tok1 Token vTok1 elementAt i int curScore matchScore tok1 tok2 lenRati
226. que alcune idee interessanti come ad esempio l utilizzo di una percentuale di somiglianza 1 8 IR e Ricerca di Similarit Stato dell arte 27 Estensioni ai DBMS per Text Retrieval Esistono inoltre diversi pacchetti che si propongono di estendere le funzionalita dei diversi DBMS commerciali all ambito dell IR In particolare verr qui ricor dato Oracle interMedia Text per il DBMS Oracle esso permette l indicizzazione di documenti di testo e l esecuzione di interrogazioni tipiche di IR come ad esempio la ricerca di documenti che contengono una certa parola utilizzando comuni comandi SQL In altre parole esso estende al DBMS Oracle tutte le operazioni svolte tipicamente da un Information Retrieval System Basandosi sull utilizzo di questi strumenti possibile costruire un algoritmo per la ricerca di similarit tra frasi quello che stato fatto ad esempio da F Gavioli nella sua Tesi di Laurea 13 Viene qui brevemente descritto l approccio da questi adottato cui sar interessante confrontare la relativa parte del nostro progetto i passi fondamentali sono i seguenti 1 Stemming vedere la sezione 1 6 1 per una spiegazione ed inserimento nel DB delle frasi di riferimento 2 Indicizzazione mediante interMedia di tali frasi 3 Stemming della frase di query da ricercare 4 Generazione dei relativi g grammi cio sequenze di q parole consecutive 5 Estrazione delle frasi che presentano il maggior num
227. r diagonali e in caso contrario si vedr che tutti i dati della matrice sono necessari e perci in questo caso l algoritmo utilizzato quello standard 3 6 La query di ricerca delle frasi intere simili La query per la ricerca una rielaborazione di quanto presentato in 14 e presenta la seguente struttura 68 3 Ricerca di similarita tra frasi INSERT INTO FULLMATCH SELECT r2 codice AS cod2 rl codice AS cod wordEditDistanceDiag r1 frase r2 frase lt k gt FROM lt tab1 gt rl lt qtabl gt riq lt tab2 gt r2 lt qtab2 gt r2q WHERE rl codice rlq codice AND r2 codice r2q codice AND rlq qgram r2q qgram AND lt lt filtri gt gt AND wordEditDistanceDiag rl frase r2 frase lt k gt gt 0 Si tratta di una query costruita dinamicamente in cui i nomi delle tabelle so no variabili e in cui figurano parametri liberamente modificabili come k Come si pu vedere essa agisce sulle frasi individuando le coppie simili ed inserendone i dati direttamente nella tabella FullMatch codici identificativi della coppia di frasi e relativa distanza WordEditDistanceDiag la stored procedure che implementa l algoritmo per il calcolo dell edit distance ottimizzato per diagonali descritto nella sezione 3 5 4 in particolare verifica se le due frasi passate come parametro sono sufficien temente simili cio con una edit distance inferiore a k In caso affermativo restituisce un valore non negativo la
228. r2 wordlen 1 ROUND lt k gt r2 wordlen 1 lt q gt AND wordEditDistanceDiag rl frase r2 frase lt k gt gt 0 3 7 Oltre le frasi intere 73 3 7 Oltre le frasi intere 3 7 1 I limiti da superare La query di ricerca di frasi intere presentata indubbiamente molto potente Grazie ai filtri e all utilizzo dei q grammi garantisce una notevole efficienza sen za per questo rinunciare all efficacia essendo anzi basata sul concetto di edit distance in grado di trovare match tra frasi di notevole utilit Una tecnica perfetta Non in tutto e per tutto cos com stata presentata ha la limitazione di fondo di ridurre i match alle sole frasi intere Pertanto se ci si fermasse a questo stadio l algoritmo di ricerca presenterebbe gli stessi limiti degli algoritmi utilizzati nei programmi EBMT commerciali a meno di non inserire nella translation memory non solo le frasi intere ma anche alcune delle sottoparti ritenute pi significative queste non verrebbero mai suggerite indubbiamente una limitazione notevole poich una frase della Transla tion Memory potrebbe essere utile solo parzialmente pur essendo diversa nel suo insieme una sua sottoparte potrebbe essere molto simile alla frase cerca ta Spingendosi ancora oltre una sottoparte di una frase contenuta nella TM potrebbe essere simile a una sottoparte della frase cercata Riuscire a sfruttare al massimo il potenziale della Translation Memor
229. raig Cri Ci 1 j 1 altrimenti Il risultato finale si legge nella cella in basso a destra Cloilloa ed 01 02 L algoritmo deve riempire la matrice in modo che le celle in alto a sinistra e in alto a sinistra rispetto alla cella corrente siano calcolate prima di quella cella possibile perci utilizzare sia un riempimento per righe da sinistra verso destra sia per colonne dall altro verso il basso La complessit di questo algoritmo sar O 01 02 sia per il caso medio sia per il caso peggiore Per vederne l applicazione all esempio visto precedentemente in figura 3 6 viene mostrato il calcolo di ed surgery survey lt A wo N r ok mM oo ES Figura 3 6 Edit distance esempio di calcolo 64 3 Ricerca di similarita tra frasi In neretto compare il cammino verso il risultato finale spostamenti in bas so a destra e in basso a destra corrispondono rispettivamente a inserimenti cancellazioni e uguaglianze o sostituzioni Il risultato 2 cella in basso a destra 3 5 3 Applicazione alle frasi I concetti visti sono indubbiamente interessanti ma per essere applicabili al nostro contesto necessario utilizzare un cambio di punto di vista le operazioni di edit non riguarderanno tanto i caratteri ma le parole di una frase Cos la edit distance tra le due frasi The tools disk contains some disk utilities e The tools dis
230. rame SOFTDELIMITER final int WORDSIZE Main MainFrame WORDSIZE le frasi con parole pi lunghe di WORDSIZE saranno scartate int hardCount 0 conteggio paragrafi nel file PrintWriter pwOutFile new PrintWriter of for int i 0 i lt vPhrase size i String phr String vPhrase elementAt i if wordSizeOK phr WORDSIZE continue frase scartata parole troppo lunghe if phr equals nuova frase pwOutFile println phr pwOutFile printIn SOFTDELIMITER else nuovo paragrafo if i vPhrase size 1 pwOutFile printIn HARDDELIMITER hardCount pwOutFile printIn HARDDELIMITER return hardCount A 2 Package Align 223 Ve Funzione di preparazione all allineamento delle frasi per files con frasi gi allineate separate da tabulazione public static void prepareTabbed throws IOException final String SOFTDELIMITER Main MainFrame SOFTDELIMITER delimitatori final String DISTDELIMITER Main MainFrame DISTDELIMITER final String FILEIN Main MainFrame FILEIN1 file di input final int WORDSIZE Main MainFrame WORDSIZE apertura dei file di input e output FileReader inputFile null String fileoutl FILEIN 1 al String fileout2 FILEIN 2 al FileWriter outputFilel null FileWriter outputFile2 null try inputFile new FileReader FILEIN catch FileNotFoundException e t
231. rante o dopo essere stato tradotto dal computer 29 30 2 Analisi della traduzione assistita e Traduzione completamente automatica conosciuta come Fully Automatic Machine Translation FAMT Il testo nel linguaggio sorgente fornito al computer sotto forma di file e questo produce automaticamente una traduzione senza nessun intervento umano Ovviamente la traduzione umana non verr ulteriormente analizzata invece interessante approfondire le tecniche e le assunzioni che stanno alla base delle rimanenti tre categorie 2 2 I paradigmi dei sistemi di MT In questa sezione vengono mostrati e discussi le pi recenti classi di paradigmi di Machine Translation quelle che i ricercatori stanno investigando in questi ultimi anni I paradigmi di ricerca possono essere suddivisi in due grandi categorie 10 1 paradigmi fondati su tecniche linguistiche 2 paradigmi che non usano nessuna tecnica linguistica La separazione tra approcci linguistic based e non linguistic based illustra una dicotomia divenuta evidente sopratutto di recente Nel seguito verranno mostrate le idee alla base di entrambe le tipologie evidenziandone pregi e difetti 2 2 1 Paradigmi linguistic based Fino a poco fa la maggior parte dei ricercatori si sono occupati di Machine Translation con fondamenti linguistici Questi sistemi si sforzano di utilizzare i vincoli della sintassi del lessico e della semantica per comprendere il linguaggio sorgente
232. ring frasetrad1 fullMatchCount else sub match pwOutFile println SUB D rset getInt dist RD new DecimalFormat 0 00 format rset getDouble distrel rset getString inizio rset getString sfrase2 pwOutFile println ORIG rset getString sfraseorig2 pwOutFile println COD rset getInt codice1 rset getString sfrasel pwOutFile println ORIG rset getString sfraseorig1 pwOutFile println TRAD gt rset getString sfrasetrad1 pwOutFile println FULL rset getString frase1 pwOutFile println FULL ORIG rset getString fraseorig1 pwOutFile println FULL TRAD rset getString frasetrad1 subMatchCount pwOutFile println r n lt Insert translation here gt pwOutFile printIn dDelim 0 A 1 Package SimSearch 191 pwOutFile println sDelim pwOutFile println ALH IL LL 3 Ye TT r n Ti for int i cercata 1 i lt vPhrases size i pwOutFile print tH r n ms pwOutFile println PHRASE NOT FOUND COD i String vPhrases elementAt i 1 pwOutFile println r n lt Insert translation here gt pwOutFile println dDelim 0 pwOutFile prin
233. ringa data in ingresso per la costruzione dei q grammi es con q 3 AA BB gt AA BB public static String extendString String s int q A 2 Package Align 217 String extString new String for int i 1 i lt q i extString extString caratteri iniziali extString extString s for int i 1 i lt q i extString extString caratteri finali return extString A 2 Package Align A 2 1 Classe Align SentAlign package Align INMANMAMAMAMAMAMAMAMAMAMAMA SentAlign INMANMANMAMAMAMAMAMAMAMAMAMA Classe che realizza l allineamento delle frasi INMANMAMAMAMAMAMAMAMAMAMAMA import java util import java io public abstract class Sent Align Funzione principale di allineamento frasi public static void sentAlignMain throws IOException final String HARDDELIMITER Main MainFrame HARDDELIMITER delimitatori final String SOFTDELIMITER Main MainFrame SOFTDELIMITER final String FILEIN1 Main MainFrame FILEIN1 file di input final String FILEIN2 Main MainFrame FILEIN2 218 A Il codice JAVA selezione FileReader inputFilel null apertura dei file di input FileReader inputFile2 null try inputFilel new FileReader FILEIN1 inputFile2 new FileReader FILEIN2 catch FileNotFoundException e throw new IOException Error opening input file
234. rranno mostrati mediante package e class diagram UML i package e le classi che compongono il programma e ci si spinger pi a basso livello con i Data Flow Diagram per analizzare in dettaglio come i metodi delle varie classi si rapportino tra loro per realizzare le principali funzionalit presenti 5 1 I package e le classi EXTRA organizzato in cinque package e SimSearch contenente le classi che realizzano la ricerca di similarit e gestiscono la Translation Memory Align che realizza l allineamento delle frasi e quello delle parole Stemming che effettua lo stemming delle frasi GlobalUtility contenente utilit comuni sfruttate dai vari package Main il package principale che utilizza le funzionalit degli altri e fornisce la comune interfaccia grafica 125 126 5 Il progetto del software Nel package diagram di figura 5 1 sono mostrate le dipendenze il package Main chiama i package SimSearch e Align che forniscono le principali fun zionalita del software A loro volta questi due package si avvalgono del package GlobalUtility infine Stemming utilizzato da SimSearch per normalizzare le frasi su cui poi effettuare la ricerca di somiglianza GlobalUtility Figura 5 1 EXTRA package diagram Nelle sezioni che seguono verranno mostrate le classi che formano ciascuno di questi package mediante class diagram verranno evidenziati oltre ai metodi e alle variabili membro anche i rappo
235. rti di dipendenza tra le varie classi Per un approfondimento ulteriore si ricorda che nella sezione 5 2 sono mostrati i relativi DFD mentre nell appendice A sono riportate le parti fondamentali del codice Java 5 1 1 Package SimSearch La classe principale di questo package omonima SimSearch che contiene i metodi che realizzano le funzionalit principali offerte da questo package la pre traduzione metodo pretranslate in cui viene effettuata la ricerca di similarit la gestione delle tabelle create Tables drop Tables l analisi della Translation Memory memDistr memStatus aggiunta di dati alla Translation Memory metodo addMemory Questa classe si avvale delle altre mostrate in figura 5 2 PretranslationStat e Result istanziabili e utilizzate per implementare rispettivamente le statisti 5 1 I package e le classi 127 vResults Vector Result void getCompTime long getCount int getResultVector Vector SimSearch PosQgram pos int qGram String void getPos int getQgram String SimSearch SimSearch addMemory String createTables void void pretranslate PretranslationStat writePhrases void DBConnect void approxJoinQuery Result approxJoinQueryPass2 Result createPTable void createQTable void createResTables void disconnect void dropPTable void dropQTables void dropResTables
236. rticolare viene mostrato il tempo impiegato sia parziale sia totale la copertura dei suggerimenti della pretraduzione numero di frasi trovate per intero numero di frasi per cui si trovata almeno una sottoparte numero di frasi non trovate numero di suggerimenti trovati numero di frasi presenti nella Translation Memory numero di frasi nel file pretradotto e il valore dei principali parametri che caratterizzano la ricerca 4 7 Analisi della Translation Memory A completamento delle principali funzioni in EXTRA sono proposti anche un paio di strumenti che permettono di verificare lo stato della Translation Memory e di compierne una semplice analisi statistica E possibile e verificare il numero di frasi nella Translation Memory e visualizzare automaticamente il grafico di distribuzione delle lunghezze del le varie frasi presenti permettendo cos all utente di capire il carattere esponenziale uniforme dei dati che sta utilizzando ad esempio per testare il sistema 4 8 Configurazione 123 In figura 4 23 mostrata la distribuzione ottenuta da uno dei dataset utilizzati nelle prove Translation Memory Phrases Length Distribution Mi Figura 4 23 EXTRA l analisi grafica della distribuzione della TM 4 8 Configurazione EXTRA dispone di un comando di configurazione che fornisce una serie di finestre in cui possono essere impostati tutti i parametri che si sono descritti per le varie funzion
237. rtune tabelle quindi utilizzare queste ultime per la ricerca 3 4 1 L elaborazione Al fine di rendere la successiva operazione di ricerca pi efficiente ed efficace necessario elaborare preliminarmente le frasi In particolare a seconda delle preferenze dell utente sono possibili due differenti processi e semplice rimozione della punteggiatura e stemming o normalizzazione 60 3 Ricerca di similarita tra frasi Rimuovendo la punteggiatura possibile lasciare la frase inalterata ma pre pararla ad una corretta individuazione delle parti simili Lo stemming invece un processo pi complesso che si occupa come visto nella sezione 1 6 1 di eliminare parole molto comuni e poco significative le cosiddette stopwords ad esempio gli articoli e le preposizioni e di portare le altre in una forma standard i nomi vengono ricondotti al singolare i verbi all infinito e cos via Ad esempio la frase This means you can collect a library of images diviene mean can collect library image In questo modo la ricerca di frasi simili prescinde dalla particolare forma delle parole e si pu concentrare solo su quelle che veramente danno significato alla frase Per effettuare lo stemming si fa uso di un package svilippato da F Gavioli per la lingua inglese 13 che stato ottimizzato e lievemente modificato per meglio integrarsi in questo progetto Poich non rientrante direttamente nel l argomento affront
238. rutturata consente comunque una notevole efficienza Si ricorda che in appendice B 3 sono riportate le query complete 3 9 La query di ricerca delle sottoparti simili 3 9 1 Il funzionamento Dopo aver registrato nella tabella MatchPos le posizioni delle parole uguali e i codici delle relative frasi possibile eseguire la query che effettua la vera e propria ricerca delle sottoparti Il compito di questa query piuttosto impegnativo cercare i segmenti di frase aventi inizio e fine corrispondenti alle parole uguali estratte dalla tabella MatchPos e che rispondano alle seguenti caratteristiche e abbiano una lunghezza minima MinSub e siano effettivamente simili cio presentino una distanza relativa massima kSub e non siano contenuti in altri segmenti pi ampi e che soddisfino a loro volta la condizione precedente Un compito veramente arduo anche perch le entry nella tabella Match Pos da cui costruire tutte le possibili combinazioni di segmenti sono tipicamente diverse decine di migliaia Per consentire buone prestazioni pur non rinunciando 3 9 La query di ricerca delle sottoparti simili 81 a nessuna di queste caratteristiche anche in questa query sono stati utilizzati una serie di filtri studiati ad hoc Per capire il funzionamento della query occorre tenere presente che e Come per la query delle frasi intere le tabelle lt tabl gt r1 e lt tab2 gt r2 rappresentano rispettivamente l
239. s1 DISTDELIMITER di distanza vLines2 removeDist vLines2 DISTDELIMITER Main MainFrame setStatusBar Computing Word Align preparing phrases Vector vSentl mergeRegions vLines1 SOFTDELIMITER estrazione ed eventuale fusione Vector vSent2 mergeRegions vLines2 SOFTDELIMITER delle frasi in vettore int regNum1 vSent1 size controllo stesso numero di frasi int regNum2 vSent2 size if regNum1 regNum2 throw new IOException Input files don t contain the same number of soft delimiters Main MainFrame setStatusBar Computing Word Align separating punctuation separazione punteggiatura dalle frasi vSentl GlobalUtility GlobalUtility separatePunct vSent1 vSent2 GlobalUtility GlobalUtility separatePunct vSent2 Main MainFrame setStatusBar Computing Word Align cleaning spaces vSentl GlobalUtility GlobalUtility cleanSpaces vSent1 eliminazione doppi spazi vSent2 GlobalUtility GlobalUtility cleanSpaces vSent2 wAlign vSent1 vSent2 vDist outputFile esecuzione e scrittura allineamento parole try chiusura file outputFile close catch IOException e A 2 Package Align 235 throw new IOException Error closing file e getMessage Esegue l allineamento delle parole e lo scrive nel file di output private static void wAlign Vector vSent1 Vector vSent2 Vector vDist FileWri
240. scientifica proponendo soluzioni inedite e spesso riguardanti tematiche poco affrontate Per quanto riguarda gli sviluppi futuri sarebbe interessante e studiare estensioni della ricerca di similarit fino ad ora puramente sintat tica nel campo dell analisi semantica Ad esempio si valutato l utilizzo di WordNet 24 25 per reperire sinonimi delle parole di una frase si potrebbe estendere l algortimo di edit distance a considerare uguali due parole che presentano almeno un sinonimo in comune L interfacciamento non por rebbe particolari problemi si studiata in particolare una interfaccia Java JWordNet 39 che semplificherebbe notevolmente il problema Piuttosto entrare nell ambito della semantica richiederebbe notevoli sforzi per iden tificare correttamente la funzione delle parole nella frase e possibilmente il loro ambito di utilizzo considerare simili due parole indipendentemente da tali informazioni risulterebbe nella maggior parte dei casi fuorviante se non addirittura dannoso Inoltre occorrerebbe valutare se i risultati forniti da un utilizzo accorto di strumenti quali WordNet possono essere tanto buoni da giustificare l abbandono di una caratteristica fondamentale del sistema l indipendenza dai linguaggi potenziare gli algoritmi di allineamento in particolare aggiungendo una sorta di possibilit di apprendimento l allineamento delle parole potrebbe ad esempio memorizzare in un database il mo
241. se catch IOException e System out println Errore in chiusura file e getMessage J e Metodo che verifica se le parole della frase sono pi lunghe di wordSize private static boolean wordSizeOK String s int wordSize StringTokenizer stok new StringTokenizer s while stok hasMoreTokens if stok nextToken length gt wordSize return false return true A 2 Package Align 225 e Metodo che esegue l allineamento vero e proprio x e y sono sequenze di oggetti rappresentati da interi non nulli da allineare private static Vector sAlign int x int y final int MAXINT 1000000 int nx x length int ny y length int dist new int nx 1 ny 1 int pathx new int nx 1 ny 1 int pathy new int nx 1 ny 1 int dl d2 d3 d4 d5 d6 for int j 0 j lt ny j dmin for int i 0 i lt nx i dl i gt 0 amp amp j gt 0 sostituzione array delle distanze di allineamento array del percorso di allineamento dist i 1 j 1 twoSideDistance x i 1 y j 1 0 0 MAXINT d2 i gt 0 cancellazione dist i 1 j twoSideDistance x i 1 0 0 0 MAXINT d3 j gt 0 inserimento dist i j 1 twoSideDistance 0 y j 1 0 0 MAXINT d4 i gt 1 amp amp j gt 0 di MAXINT st i 2 j 1 tw
242. se org edu CSLU HLTsurvey html 1997 W B Croft and D D Lewis An Approach to Natural Language Processing for Document Retrieval In SIGIR 1987 259 260 BIBLIOGRAFIA 9 Atril Deja Vu Translation Memory and Productivity System Home page http www atril com 10 B J Dorr P W Jordan and J W Benoit A Survey of Current Paradigms in Machine Translation Technical report University of Maryland College Park 1998 11 O Furuse and H Iida Constituent Boundary Parsing for Example Ba sed Machine Translation In Proceedings of 15th International Congress on Computational Linguistics 1994 12 W A Gale and K W Church A Program for Aligning Sentences in Bilingual Corpora In Computational Linguistics 1993 13 F Gavioli Progetto ed Implementazione di un Algoritmo per Ricerca di Similarit tra Frasi Tesi di laurea Universit degli studi di Modena e Reggio Emilia 1999 2000 14 L Gravano P G Ipeirotis H V Jagadish N Koudas S Muthukrishnan and D Srivastava Approximate String Joins in a Database Almost for Free In Proceedings of 27th VLDB Conference 2001 15 D A Grossman O Frieder D O Holmes and D C Roberts Integrating Structured Data and Text A Relational Approach Journal of the American Society of Information Science 1997 16 T D Hedden Machine Translation A Brief Introduction Home page http www he net hedden 17 M Janusz Course on Natural Language Pr
243. semplice e chiaro che purtroppo presenta alcuni svantaggi la strategia di recupero dei documenti basata su un criterio di decisione binario un documento rilevante o non lo senza nessuna gradazio ne intermedia Inoltre nonostante le espressioni booleane abbiano una precisa semantica spesso non semplice esprimere con esse la richiesta di informazione di un utente 1 3 3 Il modello vettoriale Il modello vettoriale riconosce che l utilizzo di pesi binari troppo limitativo e propone un insieme di regole di base in cui possibile un match parziale Per farlo esso assegna ai termini indice dei pesi non binari nelle query e nei documenti questi pesi vengono utilizzati per calcolare il grado di somiglianza tra ogni documento memorizzato nel sistema e la query dell utente Definizione 1 4 Modello vettoriale Nel modello vettoriale il peso Wij as sociato alla coppia k dj positivo e non binario Inoltre anche ai termi ni indice della query viene assegnato un peso Sia Wiq il peso associato al la coppia ki q dove Wig gt 0 Il vettore della query T quindi definito come T Wig Wq Wig dove t il numero totale dei termini indice nel sistema Come sempre il vettore di un documento d rappresentato da dj wij W245 eae Wij 14 1 Analisi dell information retrieval Il modello vettoriale si propone di valutare il grado di similarita del docu mento d rispetto alla query q come la corre
244. separated by findPhrases No phrases are already separated one per line Figura 4 5 EXTRA il requester per l identificazione delle frasi 94 4 EXTRA un ambiente EBMT E anche prevista la gestione di documenti che in un solo file presentano non solo le frasi gia separate ma anche gia messe in corrispondenza a quelle della lingua destinazione tipicamente in questo formato Frase 1 lingua sorgente lt TAB gt Frase 1 lingua destinazione Frase 2 lingua sorgente lt TAB gt Frase 2 lingua destinazione In questo caso la preparazione riconduce i file a quello che sarebbe l out put dell allineamento delle frasi vedi sezione successiva e permette di passare direttamente all unico allineamento richiesto quello delle parole 4 3 Allineamento delle frasi Dopo che i vari paragrafi e le rispettive frasi sono stati correttamente individuati e messi in evidenza nei file preparati possibile passare a un operazione fonda mentale nella creazione di una buona Translation Memory l allineamento delle frasi cio l identificazione delle corrispondenze tra le frasi in una lingua e quelle nell altra la traduzione ee lt File preparati Risultati Lingue sorgente allineamento frasi e destinazione Lingue sorgente e destinazione Figura 4 6 Allineamento frasi schema Si tratta di un problema abbastanza complesso poich come si pu intuire non certo possibile confidare nel fatto che il tradutt
245. si di riferimento final String TABLE2 Main MainFrame TABLE2 tabella delle frasi di query final int Q Main MainFrame Q numero parole in un qgramma final int QSUB Main MainFrame QSUB final boolean SUBSTR Main MainFrame SUBSTR ricerca delle sottostringhe DBConnect db null try operazioni sul DB db new DBConnect db createPTable TABLE1 db createQTable TABLE1 Q false db createQTable TABLE1 QSUB true db createPTable TABLE2 db createQTable TABLE2 Q false db createQTable TABLE2 QSUB true db createResTables catch SQLException e throw new SQLException SQL error e get Message finally try db disconnect disconnessione dal db catch SQLException e Elimina tutte le tabelle 214 A Il codice JAVA selezione public static void dropTables throws SQLException final String TABLE1 Main MainFrame TABLE1 tabella delle frasi di riferimento final String TABLE2 Main MainFrame TABLE2 tabella delle frasi di query final boolean SUBSTR Main MainFrame SUBSTR ricerca delle sottostringhe DBConnect db null try operazioni sul DB db new DBConnect db dropResTables db dropQTables TABLE1 db dropQTables TABLE2 db dropPTable TABLE1 db dropPTable TABLE2 catch SQLException e throw new SQLException SQL error e getMessage finally try db disconnect disconnessione dal
246. so si dice che il sistema di IR adotta una vista o rappresentazione logica dei documenti di tipo full text Con collezioni molto voluminose tuttavia persino i moderni elaboratori devono poter ridurre l insieme delle parole rappresentative Questo pu essere ottenuto mediante stemming o normalizzazione che riduce diverse parole alla loro co mune radice grammaticale vedi sezione 1 6 1 o con l identificazione di gruppi di nomi che elimina aggettivi avverbi e verbi Queste elaborazioni vengono dette text operation 3 sezione 1 6 e in generale riducono la complessit della rappresentazione del documento permettendo di passare dalla vista logica full text a quella dell insieme delle parole chiave figura 1 1 Documento Figura 1 1 La vista logica di un documento da full text a parole chiave Una volta definita la vista logica dei documenti il sistema di IR costruisce un indice del testo l indice una struttura dati critica poich permette una ricerca veloce su grandi volumi di dati Possono essere utilizzate differenti strutture ma la pi popolare il cosiddetto inverted index sezione 1 7 questo contiene in buona sostanza l elenco delle parole di interesse presenti nei vari documen ti seguite da una serie di link ai documenti stessi Le risorse di tempo e di spazio spese per definire un database dei testi e per costruire gli indici sono ammortizzate dalle numerose query rivolte al sistema Dopo aver
247. some advanced techniques Frase con parte simile 1 EXTRA In this chapter we examine the fundamental elements that make up DPaint Frase con parte simile 2 EXTRA That chapter introduces you to the fundamentals of perspective in DPaint III Inoltre la metrica di similarit utilizzata tiene fondamentalmente conto solo del numero delle parole uguali presenti nelle frasi ignorando un informazione fondamentale quale la posizione e soprattutto l ordine delle parole La diretta conseguenza che spesso vengono proposti suggerimenti che sono di ben poca utilit per il traduttore Un esempio fornito dalle seguenti frasi Frase cercata But you don t have to memorize the manual to master the program Frase suggerita modello classico This file contains information about the program that was not avai lable before the manual went to press Esse contengono parole in comune in corsivo ma evidente che non presen tano somiglianze tali da poter essere considerate effettivamente simili Ancora 6 5 Confronto con altri approcci 163 Frase cercata They both mark how to sections that present something you should do to understand a program feature or function Frase suggerita 1 modello classico This removes them both if they are present Frase suggerita 2 modello classico Understand that each click of the mouse toggles the locking function on and off just as it does in both requesters Il sugger
248. ssa si prefigge lo scopo di trovare tutti i possibili risultati intermedi per la successiva ricerca delle sottoparti La query sostanzialmente non varia quello che varia il set di q grammi utilizzato e il relativo q in questo caso vengono utilizzati dei q grammi di dimensione inferiore qSub per permettere una ricerca pi fine Mentre con il filtro di conteggio della versione precedente si richiedeva un piccolo numero di grandi q grammi in comune ora si richiede un numero maggiore di q grammi pi piccoli In particolare utilizzando i valori di default gSub 1 e MinSub 3 tipicamente si ricercano frasi con almeno due parole q grammi di dimensio 80 3 Ricerca di similarita tra frasi ne unitaria in comune anche non consecutive non scartando in questo modo nessuna coppia di frasi potenzialmente utile Grazie alla piena flessibilit dei parametri non si per costretti a mantenere qSub 1 per valori maggiori di 1 MinSub sar possibile impostarlo a valori ade guatamente superiori senza rinunciare all accuratezza Per la precisione si pu dimostrare che la piena correttezza dei filtri basati sui q grammi di dimensione qSub assicurata se tale valore gSub appartiene al seguente intervallo gSub f IMinSub ROUND kSub IMinSub 1 Per quanto riguarda la velocit di esecuzione sebbene le prestazioni di questa versione non possano evidentemente competere con la precedente il modo in cui st
249. strati dai test di figura 6 16 e 6 17 relativi alla collezione Logos e alla ricerca di frasi intere come ci si pu aspettare all aumentare dell errore massimo ammesso k aumentano sia i tempi di esecuzione sia il numero di match trovati e suggeriti mentre la variazione di q ha effetto solo ed esclusivamente sui tempi La figura 6 17 evidenzia tra l altro come i filtri basati su tri grammi risultino i pi efficienti Full match Secondi 3500 120 3000 4 100 44 25004 n 8047 20004 1500 Pea 1000 604 40 204 0 k 0 3 k 0 2 k 0 1 k 0 3 k 0 2 k 0 1 a Numero di frasi trovate b Tempo impiegato Figura 6 16 Variazioni di k 6 4 4 Effetto di filtri e indici In tutti i test visti sono stati utilizzati i filtri e gli indici mostrati nel capitolo 3 e studiati appositamente per permettere una buona efficienza generale Per 160 6 Le prove sperimentali e i risultati ottenuti Secondi sof 253 2504 ye 2007 1505 1004 50 0 q 1 q 2 q 3 q 4 Figura 6 17 Variazioni di q tempo impiegato meglio capire il loro effetto e quanto essi migliorino le prestazioni vengono qui mostrati i risultati di test svolti appositamente con questo scopo In figura 6 18 sono mostrati i tempi di pretraduzione frasi intere con filtri ed indici alternativamente disattivati I test utilizzati sono i seguent
250. t k gt 0 B 3 2 Ricerca full secondo passo SELECT r2 codice AS cod2 rl codice AS cod1 wordEditDistanceDiag r1 frase r2 frase lt k gt FROM lt tab1 gt rl lt tab2 gt r2 lt qtab1 gt rlq lt qtab2 gt r2q 256 B Il codice SQL WHERE rl codice rlq codice AND r2 codice r2q codice AND rlq qgram r2q qgram filtro di ridondanza AND r2 codice NOT IN SELECT cod2 FROM FULLMATCH filtro di conteggio GROUP BY r2 codice rl codice rl frase r2 frase HAVING COUNT gt lt IMinSub gt 1 ROUND lt kSub gt lt MinSub gt 1 lt q gt lt q gt 1 2 AND wordEditDistanceSubCheck r1 frase rl codice r2 frase r2 codice lt k gt gt 0 B 3 3 Ricerca sub INSERT INTO SUBMATCH SELECT ml cod2 ml nc m2 nc ml cod1 ml nr m2 nr wordEditDistanceDiag wordSubString r1 frase ml nr m2 nr wordSubString r2 frase ml nc m2 nc lt kSub gt FROM MATCHPOS m1 MATCHPOS m2 lt tab1 gt rl lt tab2 gt r2 WHERE ml codl m2 codl AND ml cod2 m2 c0d2 AND ml codl rl codice AND ml cod2 r2 codice controllo estremi AND ml nr lt m2 nr AND ml nc lt m2 nc controllo lunghezza minima AND m2 nc ml nc 1 gt lt IMinSub gt AND m2 nr ml nr 1 gt lt IMinSub gt filtro di lunghezza AND ABS m2 nc ml nc m2 nr ml nr lt ROUND m2 nc ml nc 1 lt kSub gt filtro di conteggio AND SELECT COU
251. tch 1 1 final int PENALTY22 440 100 x log prob di match 2 2 prob di match 1 1 final int PENALTYO1 450 100 x log prob di match 0 1 prob di match 1 1 if x2 0 amp amp y2 0 if xl 0 inserimento return match x1 y1 PENALTYO1 else if yl 0 cancellazione return match x1 y1 PENALTYO1 else return match x1 y1 sostituzione else if x2 0 espansione return match x1 yl y2 PENALTY21 else if y2 0 contrazione return match x1 x2 yl PENALTY21 else fusione return match x1 x2 yl y2 PENALTY22 A 2 Package Align 229 Stampa una regione private static void printRegion PrintWriter pw Vector region for int i 0 i lt region size i pw println String region elementAt i e Restituisce la lunghezza in caratteri di una regione private static int lengthOfARegion Vector region int length 0 for int i 0 i lt region size i length String region elementAt i length return length re Restituisce le lunghezze in caratteri delle sottoregioni contenute nella regione passata come parametro private static int regionLengths Vector regions int n regions size int lengths new int n for int i 0 i lt n i lengths i int lengthOfARegion Vector regions elementAt i return lengths
252. te le frasi simili da suggerire tabella permanente e Phrase2 contiene le frasi del documento da pretradurre tabella tempora nea Le due tabelle hanno la medesima struttura di fondo in particolare per ciascuna frase vengono memorizzate le seguenti informazioni e Codice un codice univoco che costituisce la chiave primaria delle tabelle 58 3 Ricerca di similarita tra frasi FraseOrig la frase vera e propria nella sua forma originaria prima cio dell elaborazione Frase la frase elaborata tipicamente come si vedr l elaborazione consi ste nello stemming WordLen la lunghezza in parole della frase elaborata SPos le coordinate di allineamento dell elaborazione stemming solo per la Translation Memory oO e FraseTrad la traduzione della frase e APos le coordinate di allineamento delle parole e AScore i punteggi di allineamento delle parole Inoltre nelle tabelle QPhrasel e QSPhrasel QPhrase2 e QSPhrase2 ven gono memorizzati i q grammi sezione 3 4 2 delle suddette frasi utilizzati per accelerare e filtrare la ricerca delle frasi simili I campi utilizzati sono i seguenti e Codice il codice della frase cui il q gramma si riferisce e Pos la posizione del q gramma nella frase e Q gram la stringa vera e propria del q gramma su cui previsto anche un indice per migliorare le prestazioni di ricerca In figura 3 5 vengono presentate anche le tabelle progettate per conten
253. ter outputFile PrintWriter pwOutFile new PrintWriter outputFile ciclo di allineamento per ogni coppia di regioni frasi for int i 0 i lt vSentl size i Main MainFrame setStatusBar Computing Word Align i of vSent1 size Vector vTok1 findTokens String vSentl elementAt i Vector vTok2 findTokens String vSent2 elementAt i numero totale di token nelle regioni frasi correnti int regLen1 Integer vTokl elementAt 3 intValue int regLen2 Integer vTok2 elementAt 3 int Value WordAlignment wa new WordAlignment regLen1 regLen2 allineamento punteggiatura wa tokAlign Vector vTokl elementAt 0 Vector vTok2 elementAt 0 wa false allinemento token numerici wa tokAlign Vector vTokl elementAt 1 Vector vTok2 elementAt 1 wa false allinemento parole selezionate wa tokAlign Vector vTokl elementAt 2 Vector vTok2 elementAt 2 wa true wa validateAlign wa completamento e controllo allineamento int pos wa getPos posizioni dell allineamento delle parole int score wa getScore punteggi dell allineamento delle parole distanza dell allineamento delle frasi int dist Integer vDist elementAt i intValue String posString new String costruzione stringhe di posizione e punteggio String scoreString dist for int al 0 al lt pos length al
254. terfaccia approfondendo tra l altro il linguaggio di programmazione Java e l utilizzo di DBMS commerciali quali Oracle Lo stesso campo di applicazione quello del l information retrieval e della traduzione assistita stato un argomento di studio particolarmente insolito ed affascinante la ricerca in questo contesto special mente attiva ed entrare a farne parte proponendo risultati nuovi e ci auguriamo di interesse 22 stato sicuramente un motivo di grande soddisfazione Parte II Appendici 171 Appendice A Il codice JAVA selezione Data la notevole estensione del codice Java oltre 6000 linee esso viene per com pletezza comunque riportato ma solo per le classi pi significative escludendo tra l altro il codice per la gestione dell interfaccia grafica A 1 Package SimSearch A 1 1 Classe SimSearch DBConnect package SimSearch INMANMANMAMAMAMAMANMAXMA DBConnect INMANMAMAMAMANMAMANMAMA Classe che contiene le funzioni che si interfacciano con il DBMS Oracle INMANMANMAMAMAMAMAMAMA import oracle sqlj runtime Oracle import java sql import java util import java text import java io import Stemming eng public class DBConnect e Costruttore che si connette a Oracle 173 174 A Il codice JAVA selezione DBConnect throws SQLException Oracle connect getClass connect properties Disconnessione da Oracle
255. ti che non contengono nessuno dei termini indice L idea di fondo quella di introdurre un set di vettori ortogonali a coppie m associati all insieme dei mintermini e adottare come base questo insieme di vettori Definizione 1 8 Definiamo il seguente insieme di vettori M mi 1 0 0 0 ma 0 1 0 0 mz 0 0 0 1 dove ogni vettore m associato al rispettivo mintermine m Per determinare il vettore dei termini indice k associato al termine indice k allora sufficiente sommare i vettori di tutti i mintermini m in cui il termine k nello stato 1 e normalizzare Pertanto 5 Cir Mir e Vr gi mr 1 k a gi mr Di Ge Vrgi mr 1 Cir 2 Wi j dj gi dj gi mr VI 1 4 Valutazione dei risultati di un sistema di IR 17 Per ogni vettore Mm definito un fattore di correlazione Cir che somma i pesi wi j associati ai termini indice k e ad ogni documento d i cui pattern di occor renza dei termini coincidono esattamente con quello del mintermine m Cos un mintermine di interesse solo se almeno uno dei documenti della collezione condivide il suo pattern Nel modello vettoriale classico un documento d e una query q erano espres si da di e wij ki eg e Wig ki rispettivamente Nel modello vettoriale generalizzato queste rappresentazioni possono essere tradotte nello spazio dei mintermini mediante le equazioni viste e i vettori dj e sono quindi utilizzat
256. ti pensando alle frasi intere Questo significa che mantenendoli accesi si perderebbero gran parte delle possibili sottoparti simili una coppia di frasi diverse nel loro insieme ma con una sottoparte simile potrebbe venire scartata dai filtri prima di passare al calcolo dell edit distance mentre disattivandoli si rinuncerebbe all efficienza Per ovviare a questi inconvenienti sono state pensati i metodi a 2 passi Versione a 2 passi veloce Le versioni a due passi si basano sulla seguente considerazione poich la query delle frasi intere presenta una serie di filtri che la rendono parzialmente incompa tibile a meno di un decadimento nelle prestazioni con la ricerca delle sottoparti 78 3 Ricerca di similarita tra frasi opportuno eseguirla inalterata come primo passo Una sua versione rielaborata verr eseguita questa volta non in suo luogo ma successivamente con il compito di registrare le informazioni necessarie alla successiva query delle sottoparti La query modificata presenta in questo caso filtri differenti adatti in questo caso alle sottoparti WHERE rl codice rlq codice AND r2 codice r2q codice AND rlq qgram r2q qgram nuovo filtro di ridondanza AND r2 codice NOT IN SELECT cod2 FROM FULLMATCH nuovo filtro di conteggio GROUP BY r2 codice rl codice rl frase r2 frase HAVING COUNT x gt lt minCount gt AND wordEditDistanceSubCheck r1 frase rl codice r2 frase r2 codice lt
257. tilizzare un parametro che definisse non tanto il numero massimo assoluto di errori permessi ma il numero di errori relativo alla lunghezza della frase cercata Il nuovo amp non sar pi un intero bens un numero decimale ad esempio impostando k 0 4 il numero massimo di errori ammessi ricercando le frasi simili 3 6 La query di ricerca delle frasi intere simili 71 a una di 10 parole sara 4 per una frase di 20 sara invece 8 e cosi via Nel con trollo dell edit distance e nei relativi filtri si utilizzera allora un k equivalente ottenuto moltiplicando il k cos definito per la lunghezza della frase cercata lt k gt r2 wordlen In questo modo semplicemente sostituendo al k assoluto il valore di que sto prodotto si mantiene una piena compatibilit con i filtri e con il controllo sull edit distance fornendo al tempo stesso risultati pi accurati Un ulteriore accorgimento riguarda il caso in cui questo prodotto non sia un numero intero utilizzando direttamente il valore decimale ottenuto ad esempio verificare se lt edit distance gt lt 2 9 equivale in realt a verificare edit distance lt 2 intero inferiore essendo la distanza sempre intera Si vede che l errore commesso in questo caso molto maggiore che non arrotondando il valore nel caso in esempio l arrotondamento sarebbe per eccesso e il controllo avverrebbe su una distanza massima consentita di 3 pi vicina al valore richiest
258. tissimi ambiti genetica riconoscimento del parlato geologia ecc I dettagli delle tec niche di allineamento differiscono notevolmente da un applicazione all altra ma tutti utilizzano una metrica di distanza per confrontare due singoli elementi delle sequenze allo scopo di minimizzare le distanze totali tra gli elementi allineati all interno delle due sequenze Per poter utilizzare questo approccio nell allineamento delle frasi dunque necessario innanzitutto definire una distanza adeguata a questo contesto La metrica di distanza utilizzata basata su un modello probabilistico e in particolare sulla seguente assunzione ogni carattere di testo in un linguaggio L 4 3 Allineamento delle frasi 97 d luogo ad un numero casuale di caratteri nell altro linguaggio La Assumeremo che queste variabili aleatorie siano indipendenti e identicamente distribuite con una distribuzione normale Definizione 4 1 Il modello di distanza dell allineamento Si consideri no i due parametri fondamentali della distribuzione normale dei caratteri c la media e s la varianza Con c si intenda il numero atteso di caratteri in La per carattere in L con s la varianza del numero di caratteri in Ly per carat tere in L Definiamo una nuova variabile aleatoria che mette in relazione le lunghezze delle due porzioni di testo considerate l ed l2 presentando una distribuzione normale con media nulla e varianza unitaria 6 la
259. tln sDelim 2 rset close stmt close java util Date data2 new java util Date calcolo tempo impiegato long fine data2 getTime long durata fine inizio 1000 int phraseCount fullMatchCount subMatchCount suggerimenti trovati in tutto Vector vCount new Vector vettore per conteggi dettagliati vCount addElement new Integer fullMatchCount vCount addElement new Integer subMatchCount vCount addElement new Integer phrasesTot vCount addElement new Integer phrasesFull vCount addElement new Integer phrasesSub return new Result phraseCount durata vCount A 1 2 Classe SimSearch DBUtility package SimSearch e INMVANMAMANMAMAMAMANMAMAMAMAMA DBUtility INMANMANMANMAMAMAMAMAMAMAMAMA Classe astratta contenente quella parte di funzioni di utilita richiamate anche da query del DBMS codice da caricare nel server di Oracle INMANMANMAMAMAMAMAMAMAMAMAMA import java util public abstract class DBUtility A Il codice JAVA selezione 192 e Restituisce il minore di tre valori public static int minimum int a int b int c i int min min a if b lt min min if c lt min min Il g Wee Il Q return min Restituisce un vettore con le parole estratte dalla stringa s in ingresso public static Vector vectorFromString String s StringTokenizer stok new Stri
260. to 4 else if c stato 4 else phrase append c stato 0 break if c CR in read scarta il successivo LF stato 5 else phrase append c stato 0 break if c CR in read scarta il successivo LF stato 4 else if c stato 4 else phrase append c stato 0 break vPhrases add phrase toString aggiunta della frase vPhrases add fine paragrafo phrase new StringBuffer if c CR in read scarta il successivo LF stato 4 A 3 Package GlobalUtility 249 else if c stato 4 else phrase append c stato 0 I break I if phrase length gt 0 aggiunta frase finale se presente vPhrases add phrase toString return vPhrases Restituisce il vettore delle frasi con la punteggiatura di ciascuna messa in evidenza ad es aaa bbb ccc gt aaa bbb ccc per il corretto riconoscimento dei token public static Vector separatePunct Vector vSent for int i 0 i lt vSent size i String line String vSent elementAt i if line equals continue String mLine new String if line charAt 0 mLine mLine else mLine mLine String valueOf line charAt 0 separazione della punteggiatura che
261. tor vResults Costruttori Result int c long t count c compTime t vResults null Result int c long t Vector v 204 A Il codice JAVA selezione count c compTime t vResults v Restituisce il numero di operazioni eseguite public int getCount return count e Restituisce il tempo impiegato public long getCompTime return compTime e Restituisce il vettore dei risultati public Vector getResultVector return vResults A 1 7 Classe SimSearch SimSearch package SimSearch ZAMIAMAMAMAMAMAMAMAMAMAMA SimSearch AVAVA VAVA VAVA VAVA VAVA VAN Classe che realizza la ricerca di somiglianza e gestisce la memoria di traduzione AVAVA VAVA VAVA VAVA VAVA VAN import java sql A 1 Package SimSearch 205 import java util import java io public class SimSearch e Metodo principale per la ricerca di somiglianza pretraduzione di un file public static PretranslationStat pretranslate boolean oneLine throws SQLException IOException IllegalArgumentException parametri di configurazione modificabili nel modulo principale final final final final final final final final final final final final final final final final final final String FILEIN Main MainFrame FILEIN1 file di input Strin
262. tte e normalizzate se stem TRUE nella tabella delle frasi fornita in input public static Result fillPTable Vector vPhrases String tabella boolean stem throws SQLException java util Date datal new java util Date per calcolo tempo long inizio datal getTime int phraseCount 0 Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection PreparedStatement pstmt conn prepareStatement INSERT INTO tabella VALUES for phraseCount 0 phraseCount lt vPhrases size phraseCount Main MainFrame setStatusBar Extracting and elaborating phrases phraseCount of vPhrases size String phraseOrig String vPhrases elementAt phraseCount restituisce la frase normalizzata se stem true oppure la frase senza punteggiatura se stem false Output elabOut Utility elabPhrase phraseOrig stem String phraseElab elabOut getPhrase pstmt setInt 1 phraseCount 1 pstmt setString 2 phraseOrig pstmt setString 3 phraseElab pstmt setString 4 pstmt setInt 5 DBUtility wordLen phraseElab pstmt setString 6 pstmt setString 7 pstmt setString 8 elabOut getSPos pstmt execute Inserisce la frase A 1 Package SimSearch 179 pstmt close java util Date data2 new java
263. ty elabPhrase phraseOrig stem String phraseElab elabOut getPhrase pstmt setInt 1 startCod pstmt setString 2 phraseOrig 180 A Il codice JAVA selezione pstmt setString 3 phraseElab pstmt setString 4 phraseTrad pstmt setInt 5 DBUtility wordLen phraseElab pstmt setString 6 aPos pstmt setString 7 aScore pstmt setString 8 elabOut getSPos pstmt execute Inserisce la frase startCod pstmt close java util Date data2 new java util Date calcolo tempo impiegato long fine data2 getTime long durata fine inizio 1000 return new Result phraseCount durata numero frasi inserite e tempo impiegato e Restituisce il codice maggiore presente nella tabella delle frasi fornita in input public static int getMaxCod String tabella throws SQLException int maxCod 1 Crea una connessione JDBC dal DefaultContext SQLJ corrente Connection conn sqlj runtime ref DefaultContext getDefaultContext getConnection Statement stmt conn createStatement ResultSet rset stmt executeQuery SELECT MAX CODICE FROM tabella if rset next maxCod rset getInt 1 rset close stmt close return maxCod e A 1 Package SimSearch 181 Restituisce la distribuzione delle lunghezze delle frasi presenti nella tabella passata come parametro public static int getLen
264. ubTime Restituisce il numero di frasi nella Tr Memory public int getTotTMPhrases return totTMPhrases e Restituisce il numero di frase pretradotte public int get TotPhrases return totPhrases er Restituisce il numero di frasi con full match public int getFullPhrases return fullPhrases e Restituisce il numero di frasi con sub match public int getSubPhrases return subPhrases Restituisce il numero di frasi non trovate public int getNotFoundPhrases return notFoundPhrases e Restituisce la copertura percentuale public int getCoverage return coverage e Restituisce il numero di full match A 1 Package SimSearch 203 public int getFullMatches return fullMatches Restituisce il numero di sub match public int getSubMatches return subMatches A 1 6 Classe SimSearch Result package SimSearch INMANMAMAMAMAMAMAMAMAMAMAMA Result INMANMAMAMAMAMAMAMAMAMAMAMA Classe che implementa l oggetto risultato di una elaborazione composto da un intero numero operazioni eseguite un long tempo impiegato un eventuale vettore di oggetti il risultato vero e proprio dell elaborazione o maggiori dettagli su di essa INMVANMAMAMAMAMAMAMAMAMAMAMA import java util public class Result private int count private long compTime private Vec
265. ublic int getd return d A 2 3 Classe Align Token package Align e INMANMANMAMAMANMNINIAMAMANMAMA Token INMANMANMAMAMANMNINIAMAMANMAMA Classe che implementa l oggetto Token parola o simbolo di punteggiatura e relativa posizione all interno della frase IANMANMANMAMAMANMNINIAMAMANMAMIA 232 A Il codice JAVA selezione public class Token private int pos private String token e Costruttore Token int p String s pos p token s e Restituisce la posizione del token public int getPos return pos e Restituisce la stringa del token public String getToken return token A 2 4 Classe Align WordAlign package Align AVAVAVA VAVA VAVA VAVA VAVA VAN WordAlign AVAVAVA VA VAVA VA VAVA VAVA VAN Classe che realizza l allineamento delle parole nelle frasi INMVAMAMAMAMAMAMAMAMAMAMAMA import java util A 2 Package Align 233 import java io public abstract class WordAlign Funzione principale di allineamento parole public static void wordAlignMain throws IOException final String SOFTDELIMITER Main MainFrame SOFTDELIMITER delimitatori final String DISTDELIMITER Main MainFrame DISTDELIMITER final String FILEIN1 Main MainFrame FILEIN1 file di input final String FILEIN2 Main MainFrame FILEIN2 FileReader inputFilel null apertura dei file di inp
266. uesto filtro ottenuto utilizzando una query innestata del tutto analoga come struttura a quella principale in cui si verifica se non esistono segmenti di estremi m3 ed m4 aventi tutte le caratteristiche desiderate e che includano gli estremi di quello preso in esame nella query esterna di estremi m1 ed m2 se non ne esistono quest ultimo sar effettivamente uno dei segmenti cercati AND NOT EXISTS filtro di inclusione parte analoga alla query esterna SELECT m3 nc m3 nr m4 nc m4 nr FROM MATCHPOS m3 MATCHPOS m4 lt tab1 gt r3 lt tab2 gt r4 WHERE m3 codl m4 cod1 AND m3 c0d2 m4 cod2 AND m3 cod1 r3 codice 84 3 Ricerca di similarita tra frasi ND m3 cod2 r4 codice ND m3 nr lt m4 nr ND m3 nc lt m4 nc ND m4 nr m3 nr 1 gt lt IMinSub gt ND ABS m4 nc m3 nc m4 nr m3 nr lt ROUND m4 nc m3 nc 1 lt kSub gt AND SELECT COUNT x FROM MATCHPOS m3a WHERE m3a codl m3 codl ND m3a cod2 m3 cod2 ND m8a nc lt m4 nc gt gt p pp ND m3a nc gt m3 nc ND m3a nr lt m4 nr ND m3a nr gt m3 nr ND ABS m3a nc m3 nc m3a nr m3 nr lt ROUND lt kSub gt m4 nc m3 nc 1 gt ALL m4 nc m3 nc 1 ROUND m4 nce m3 nc 1 lt kSub gt m4 nr m3 nr 1 ROUND m4 nc m3 nc 1 lt kSub gt AND wordEditDistanceDiag wordSubString r3 frase m3 nr m4 nr wordSubString r4 frase m3 nc m4 nc lt kSub gt gt 0 AND 1m3
267. uggerito la necessita che il governo si pronunci chiaramente ed inizi ad aiutare noi agricoltori prima che sia troppo tardi Figura 6 7 Allineamento frasi i risultati esempio 2 bis L efficacia di questo algoritmo indubbiamente notevole e gli allineamenti forniti sono rivelati corretti in oltre il 95 dei paragrafi allineati Per concludere un cenno anche all efficienza altrettanto buona data la sua relativa semplicit esso in grado di allineare oltre 1500 frasi in poco pi di 3 secondi 6 3 Allineamento delle parole Vengono di seguito riportati i risultati di alcuni allineamenti tra parole in questo caso tra frasi in inglese ed italiano della collezione Logos e di altre fonti aggiun tive Di questi allineamenti viene mostrata la funzione di allineamento come ricavata dall algoritmo con evidenziati in particolare i punti di corrispondenza trovati con un simbolo pieno vengono mostrati i match esatti tra gli elementi parole elementi di punteggiatura e cos via con uno vuoto i match ricavati tramite gli algoritmi LCS di somiglianza In figura 6 8 si vede come l algoritmo in grado di ricostruire un allineamento di notevole precisione tra due frasi che presentano alcune inversioni nella strut 6 3 Allineamento delle parole 151 tura ad esempio search time e tempo di ricerca espressioni con un ordine delle parole invertito e con nessun elemento identico a meno del punto finale
268. ume l indipendenza dei termini indice Questa assunzione interpretabile come segue Definizione 1 6 Indipendenza dei termini indice Sia ki un vettore asso ciato al termine indice ki L indipendenza dei termini indice implica che l insie me dei vettori ki ko soia kr linearmente indipendente e forma una base per il sottospazio di interesse La dimensione di questo spazio il numero t di termini indice nella collezione 16 1 Analisi dell information retrieval Spesso l indipendenza tra i termini indice interpretata pi ristrettivamente sottintendendo ortonormalit tra i vettori dei termini cio per ogni coppia di vettori k e kj si ha k kj 0 Il modello vettoriale generalizzato 50 si basa invece sull assunzione di non ortonormalit in questo modello due vettori dei termini possono essere non ortogonali Definizione 1 7 Mintermini di co occorrenza Dato l insieme ki ko e kr di termini indice di una collezione sia wi il peso associato alla coppia termine documento k dj Se i pesi wi sono tutti binari allora tutti i possibili pattern di co occorrenza dei termini nei documenti possono essere rappresentati da un insieme di 2 mintermini dati da m 0 0 0 ma 1 0 0 ma 1 1 1 Sia gi m una funzione che restituisce il peso 0 1 del termine indice k nel mintermine mj In questo modo il mintermine m per cui g m1 0 ad esempio punta a tutti i documen
269. unto della parola 2 della frase sorgente avrebbe creato un picco eccessivo per tanto poco probabile nell allineamento e non viene pertanto considerato Per la precisione il test effettuato il seguente dato un punto di partenza vengono considerati i segmenti s tratteggiato in figura ed s2 che lo congiungono ai due punti che lo seguono se presenti Il segmento s ed il suo punto finale viene scartato se valgono entrambe queste condizioni e il coefficiente angolare di s maggiore in modulo di mazS Ratio volte il coefficiente angolare di s9 e il punteggio relativo al punto finale di s2 maggiore di marScRatio volte il punteggio del punto finale di sj Vengono scartati insomma i punti con basso punteggio e che creerebbero picchi anomali nella funzione di allineamento Si ricorda che nel Capitolo 6 dedicato ai risultati ottenuti saranno mostrati esempi di funzionamento su alcune frasi significative 4 4 Allineamento delle parole 115 4 4 6 I parametri disponibili un riassunto Come al solito riassumiamo qui di seguito i parametri disponibili per il proce dimento visto in questo caso l allineamento delle parole in modo da darne un quadro unitario Sono modificabili a seconda delle esigenze e la minima lunghezza di una parola allineabile minT okLen il punteggio di allineamento minimo richiesto minScore la percentuale di somiglianza minima richiesta min LCS e i punteggi massimi di uguagl
270. ura 6 6 Allineamento frasi i risultati esempio 2 Come si vede le frasi vengono correttamente messe in corrispondenza indivi duando automaticamente e con successo anche le situazioni pi complesse quali match 2 2 o 2 1 in cui non vi un semplice legame tra le frasi 150 6 Le prove sperimentali e i risultati ottenuti Per sottolineare come i risultati ottenuti siano del tutto indipendenti dalle lingue utilizzate in figura 6 7 mostrato l allineamento per lo stesso paragrafo questa volta tra la versione inglese e quella italiana I I The crisis our farmers are in right now will affect all of us ata certain point in time We are all consumers and we all need a strong and healthy agricultural sector I am glad that the Hon Member for Algoma mentioned figures in his remarks Otherwise the Government might have eluded the problem once again La crisi che in questo momento stanno vivendo i nostri agricoltori prima o poi si ripercuoter su ciascuno di noi Siamo dei consumatori Abbiamo tutti bisogno di un agricoltura sana e forte Siamo felici che il deputato di Algoma abbia mostrato dei dati nella sua analisi altrimenti il governo l avrebbe fatta franca ancora una volta to i gt The Hon Member for Algoma suggested Tuesday night that the Government had to take a clear position and make a commitment to assist our farmers before it is too late Martedi sera il deputato di Algoma ha s
271. urity guarantees Figura 6 5 Allineamento frasi i risultati esempio 1 La nouvelle ordonnance f d rale sur les denr es alimentaires concernant entre autres les eaux min rales entr e en vigueur le ler avril 1988 apr s une p riode transitoire de deux ans exige surtout une plus grande constance dans la qualit et une garantie de la puret SS 2 1 340 I e p The crisis our farmers are in right now will affect all of us at a certain point in time La crise que vivent en ce moment nos agriculteurs se r percutera sur tous et chacun de nous un certain moment We are all consumers and we all need a Nous sommes des consommateurs l 260 strong and healthy agricultural sector Nous avons tous besoin d une agriculture saine et forte I am glad that the Hon Member for Heureusement que le d put d Algomaa 2 255 Algoma mentioned figures in his remarks Otherwise the Government might have eluded the problem once again mentionn des chiffres dans ses remarques sans cela ce gouvernement sen serait sorti en douce encore une fois The Hon Member for Algoma suggested Tuesday night that the Government had to take a clear position and make a commitment to assist our farmers before it is too late Le d put d Algoma sugg rait mardi soir qu il fallait que le gouvernement se prononce clairement et s engage aider nos agriculteurs avant qu il ne soit trop tard Fig
272. urn n per il caso STEM false if sPos equals return n int startIndex 0 int endIndex 0 for int i 1 i lt n i startIndex sPos indexOf lt startIndex 1 194 A Il codice JAVA selezione endIndex sPos indexOf gt startIndex la sottostringa di s cercata return Integer parseInt sPos substring startIndex endIndex A 1 3 Classe SimSearch Distance package SimSearch INMAMAMAMAMAMAMAMAMANMAMAMAMA Distance IANMAMAMAMAMAMAMAMAMANMAMAMAMA Classe astratta contenente varie funzioni riguardanti il calcolo della edit distance tra stringhe codice da caricare nel server di Oracle ZAMIAMAMAXIAMAMAMAMAMAMAMAMAMA import java util import java sql public abstract class Distance e Calcola la Edit Distance distanza in parole tra due stringhe public static int wordEditDistance String s String t int n DBUtility wordLen s numero parole di s int m DBU tility wordLen t numero parole di t cas particolari if n 0 return m if m 0 return n int d new int n 1 m 1 matrice di costi int i itera in s int j itera in t String si iesima parola di s String tj jesima parola di t int cost costo Vector sv DBUtility vectorFromString s Vector tv DBUtility vectorFromString t A 1 Package SimSearch 195 for i 0 i lt n i i
273. ut FileReader inputFile2 null try inputFilel new FileReader FILEIN1 inputFile2 new FileReader FILEIN2 catch FileNotFoundException e throw new IOException Error opening input file e getMessage String fileout FILEIN1 tm apertura dei file di output FileWriter outputFile null try outputFile new FileWriter fileout catch IOException e throw new IOException Error creating output file e getMessage lettura dei file di input Vector vLinesl new Vector Vector vLines2 new Vector Main MainFrame setStatusBar Computing Word Align reading files try vLinesl GlobalUtility GlobalUtility readLines inputFilel1 234 A Il codice JAVA selezione vLines2 GlobalUtility GlobalUtility readLines inputFile2 catch IOException e throw new IOException Error reading file e get Message finally try inputFile1 close inputFile2 close catch IOException e Main MainFrame setStatusBar Computing Word Align removing comments vLinesl removeComments vLines1 rimozione eventuali linee di commento vLines2 removeComments vLines2 Main MainFrame setStatusBar Computing Word Align extracting distances Vector vDist extractDist vLines1 DISTDELIMITER estrazione e rimozione informazioni vLinesl removeDist vLine
274. utFilel close outputFile2 close chiusura file catch IOException e System out println Errore in chiusura file e getMessage i 210 A Il codice JAVA selezione Scrive le frasi passate nel file con gli opportuni separatori private static void writePhrases Vector vPhrases FileWriter of delimitatori frasi final String SOFTDELIMITER Main MainFrame SOFTDELIMITER final String DISTDELIMITER Main MainFrame DISTDELIMITER PrintWriter pwOutFile new PrintWriter of for int i 0 i lt vPhrases size i String phr String vPhrases elementAt i pwOutFile printIn phr pwOutFile printIn DISTDELIMITER 0 pwOutFile printIn SOFTDELIMITER Metodo principale per l aggiunta di un file alla translation memory public static String addMemory throws SQLException IOException final String FILEIN Main MainFrame FILEIN1 file di input final String TABLE1 Main MainFrame TABLE1 tabella delle frasi di riferimento final int Q Main MainFrame Q numero parole in un qgramma final int QSUB Main MainFrame QSUB final boolean STEM Main MainFrame STEM attiva la normalizzazione FileReader inputFile null try apertura file di input inputFile new FileReader FILEIN catch FileNotFoundException e throw new IOException Error opening input file e getMessage Vector vTMPhrases new Vector try
275. utomatico delle frasi da inserire in una Translation Memo ry operazione che se fatta manualmente richiederebbe un tempo e una fatica intollerabili per l utente Vi sono molte metodologie per allineare due testi corrispondenti diverse non solo per il metodo di ricerca delle corrispondenze ma anche per la differente ri soluzione ottenuta con l allineamento stesso vedi figura 2 7 Gale e Church 12 propongono ad esempio un interessante sistema puramente matematico ba 2 4 EBMT Stato dell arte Al sato su distribuzioni di probabilita e sulla lunghezza delle frasi per allineare le varie frasi all interno dei paragrafi corrispondenti Si tratta di un metodo veloce ed efficace nella maggior parte delle situazioni che per non si occupa dell al lineamento delle entit pi piccole di una frase come ad esempio le parole o i caratteri RISOLUZIONE INFERIORE delle frasi Allineamento delle parole dei caratteri RISOLUZIONE MAGGIORE Figura 2 7 Allineamento le tipologie proposte in ricerca Sempre Church 6 propone un altro sistema per realizzare un allineamento dei testi nel loro insieme questa volta per a livello dei singoli caratteri proble ma studiato anche da Melamed 23 questo era pensato per risolvere i problemi legati al riconoscimento dei testi derivanti da scansioni OCR nei quali sarebbe complesso ricostruire i precisi confini di frasi e paragrafi Il programma si basa su algoritmi dinamici
276. vengono descritte le problematiche di ricerca sulla traduzione di testi analizzando i vari paradigmi presenti lo stato dell arte dei sistemi EBMT e degli argomenti scientifici attinenti ad esempio l allineamento di corpus bilingui Vengono anche brevemente descritti i principali software di traduzione assistita presenti in ambito commerciale Nella Seconda Parte della tesi viene descritto l approccio seguito nella ricer ca di somiglianza tra le frasi Capitolo 3 e nella progettazione delle rimanenti funzionalit di EXTRA quali gli allineamenti o l interfaccia Capitolo 4 nel Capitolo 5 viene mostrato il vero e proprio progetto del software nel suo in sieme con Package e Class Diagram Vengono inoltre proposti i Data Flow Diagram per meglio capirne il funzionamento Infine nel Capitolo 6 vengono descritti i test e le collezioni progettati per verificare le funzionalit del software oltre ovviamente ai risultati conseguiti Nelle Appendici vengono riportati per completezza e come ulteriore riferi mento le parti pi significative del codice JAVA ed il codice SQL relativo alle query e agli script utilizzati Parte I Introduzione al problema Capitolo 1 Analisi dell information retrieval 1 1 Introduzione all information retrieval L Information Retrieval IR riguarda classicamente la rappresentazione la regi strazione l organizzazione e l accesso agli oggetti di informazione 3 La rappre sentazi
277. y come si vede non certo un compito facile soprattutto se si tiene conto che indi spensabile che gli algoritmi utilizzati nella ricerca mantengano buone prestazioni anche con notevoli volumi di dati Dopo numerosi affinamenti e ottimizzazioni sono state progettate per questo lavoro una serie aggiuntive di query in grado di e ricercare match di similarit tra qualunque sottoparte delle frasi da pretra durre e qualunque sottoparte delle frasi della Translation Memory senza che queste siano state precedentemente estratte e ricercare sottoparti non solo in modo esatto ma anche in modo approssi mato con la stessa metrica di similarit utilizzata per le frasi intere Tutto questo senza mai accantonare l efficienza L utilit di tutto questo evidente tra i suggerimenti al traduttore compariranno non pi solo frasi intere ma anche le frasi contenenti delle sottoparti simili con le relative sottoparti inte ressate Come si vedr nel prossimo capitolo queste sottoparti rappresenteranno 74 3 Ricerca di similarit tra frasi dei veri e propri suggerimenti di traduzione poich insieme ad essi verr proposta grazie agli algoritmi di allineamento la corrispondente parte di traduzione 3 7 2 Le nuove modalit di ricerca La ricerca delle frasi intere ha un funzionamento che schematizzato in figura 3 13 attingendo ai dati della Translation Memory in questo caso le tabelle delle frasi e dei q grammi re
278. zeOK Boolean writePrepFile int writeSentAlign void Figura 5 4 Package Align class diagram parte 1 Discorso analogo per quanto riguarda l allineamento delle parole figura 5 5 abstract Align WordAlignment wordAlignMain void checkReverse Boolean decay double WordAlignment void extractDist Vector getPos int findTokens Vector int les int getTargetLen int matchScore int mergeRegions Vector nextMatch int Boolean punctCheck Boolean removeComments Vector removeDist Vector tokAlign WordAlignment validateAlign WordAlignment WAlign void Token void getPos int getToken String Figura 5 5 Package Align class diagram parte 2 130 5 Il progetto del software La classe astratta WordAlign implementa gli algoritmi WordAlignment l oggetto di allineamento tra le parole di una coppia di frasi Token l oggetto da allineare sia esso una parola od un elemento di punteggiatura Per maggiori dettagli sull utilizzo e la relazione tra i metodi di queste clas si si rimanda ai DFD delle sezioni 5 2 2 preparazione all allineamento 5 2 3 allineamento tra frasi e 5 2 4 allineamento tra parole 5 1 3 Package Stemming Il package di ricerca di somiglianza si avvale dei servizi del package Stemming sviluppato originariamente da F Gavioli 13 per effettuare la normalizzazione delle frasi
279. zialmente analoghi e non vengono pertanto presentati Ricerca di sottoparti La ricerca di sottoparti come descritta nella sezione 3 9 utilizza i metodi e le tabelle mostrati in figura 5 12 la funzione che esegue la query vera e propria findSubMatches SimSearch pretranslate SimSearch Tabella SUBMATCH nomi tabelle LMINSUB KSUB match tra sottoparti DBConnect findSubMatches SimSearch frasi frasi dati per ricerca sottoparti Tabella MATCHPOS Tabella PHRASE1 Tabella PHRASE2 Figura 5 12 Ricerca sottoparti simili data flow diagram Per quanto riguarda le stored procedure richiamate dal DBMS esse sono mostrate in figura 5 13 come per le frasi intere viene utilizzata la funzione per il calcolo dell edit distance ottimizzato per diagonali Inoltre compare la funzione wordSubString che come gia ricordato estrae dalla frase la sottoparte interessata 5 2 I flussi di dati DFD 137 DBConnect findSubMatches SimSearch Distance wordEditDistanceDiag DBUtility wordSubString SimSearch SimSearch DBUtility vectorFromString DBUtility minimum SimSearch SimSearch Figura 5 13 Ricerca sottoparti simili DBMS data flow diagram Estrazione risultati L estrazione dei risultati utilizza ancora una volta una query come descritto in 4 6 1 Questa query implementata mediante istruzioni JDBC 29 nel meto do extractResults che si occupa anche
Download Pdf Manuals
Related Search
Related Contents
PosiTest AT Verifier - DeFelsko Corporation Istruzioni d`Uso - Amazon Web Services ADDO/Facit N1068 Ръководство за експлоатация TV One 1T-C2-100 video converter Blue-Link™ Installation and Setup Manual Smart Technologies UF75/UF75w User's Manual Smart Series™ Série LEPS Coalescing changes in pattern-directed, rule Copyright © All rights reserved.
Failed to retrieve file