Sunteți pe pagina 1din 16

PROIECTAREA

APLICAȚIILOR DE
TRADUCERE ASISTATĂ DE
CALCULATOR

-Suport de curs-

Master LSTAC 1
MEMORII DE TRADUCERE

2
Fundamente
Memoria de traducere = bază de date în care se memorează segmentele de text în
limba sursă împreună cu segmentele de text corespunzătoare traduse în limba ţintă.

Prin memoriile de traducere frazeologia şi terminologia unui domeniu sunt tratate


consecvent şi unitar în toate documentele care tratează domeniul respectiv.
In timpul traducerii, textul sursa se imparte (divide) in segmente. Utilizatorul poate
extinde sau restrange segmentul dupa cum doreste. Adesea segmentele sunt delimitate de
terminatorii de propozitii.
Fiecare segment de text din limba sursă este legat de traducerea lui în limba ţintă
şi formează împreună cu ea o unitate de traducere [en: translation unit, uneori
prescurtat prin TU], care se înregistrează în memoria de traducere.

La tratarea unui segment al textului sursă, acesta este comparat cu segmentele


existente deja în memoria de traducere.
Memoriile de traducere = utile în special pentru traducerea unor texte repetitive,
deoarece permite traducătorilor să caute pasaje identice sau asemănătoare în documente
traduse anterior și să le încorporeze în propriile traduceri.
3
Fundamente
Memoria de traducere = o arhivă de texte multilingve care conține texte anume
(segmente, aliniate), analizate și clasificate și care permite memorarea și regăsirea
secvențelor multilingve aliniate conform unor criterii de căutare variate.

Memoriile de traducere sunt utilizate de obicei împreună cu:


 o aplicatie de traducere asistată de calculator,
 un procesor de text,
 un dicționar multilingv,
 un sistem terminologic,
 o traducere automată.

Memoriile de traducere pot fi folosite cu eficiență la traducerea documentelor cu


conținut înrudit cu al textelor din care aceasta a fost creată.

4
Fundamente
Conceptul de bază de date a apărut în 1964 în cadrul primului raport CODASYL (
Conference on Data Systems Languages). Baza de date <> memorie de traducere –
1970. Asigura independenţa programelor faţă de date şi a datelor faţă de programe.

Modele de baze de date:


– ierarhic: datele sunt clasificate ierarhic într-o structură de tip arbore; folosește
pointeri între înregistrări; a reprezentat primul model de SGBD.
– rețea: structura nu este neaparat arborescenta; folosește pointeri la înregistrări.
– relațional: datele sunt stocate în tabele bidimensionale (formate din rânduri și
coloane); manipularea date are loc în conformitate cu teoria matematică a
relațiilor.
– deductiv: datele sunt reprezentate în formă tabelară, dar manipularea lor se face
prin calculul predicatelor.
– orientat pe obiecte: datele sunt stocate ca obiecte. 5
Fundamente
Modelul relational de BD:
– Atribut = identificator (nume) ce descrie o informatie memorata in BD.
– Domeniu = multime de valori posibile.
– Relatie = submulțime a produsului cartezian a “n” domenii ale atributelor (n>0).
Relațiile sunt reprezentate sub forma tabelelor bidimensionale în care fiecare
rând reprezintă un tuplu și fiecare coloană (atribut al relației) reprezintă valorile
actuale ale tuplurilor dintr-un domeniu al produsului cartezian. Tabelele
formează structura logică a modelului relațional.
– Gradul unei relații este dat de numărul de atribute. Pentru o relație (tabel), pot
exista trei tipuri de chei (identificatori):
• cheie candidat – un ansamblu minimal de atribute (coloane), eventual un singur atribut care
permite identificarea fără echivoc a fiecărui tuplu (rând) al rețelei (tabelului).
• cheie primară – pentru fiecare relație se alege o cheie candidat care va fi desemnată ca fiind cheia
primară a relației. Atributele care compun cheia primară nu pot avea valoarea Null.
6
• cheie straină.
Fundamente
SQL - Structured Query Language:
– limbaj declarativ: specifică ce informații se doresc.
– nu cere specificarea metodei de acces la date.
– O instrucţiune SQL este formată din cuvinte rezervate (parte fixa) şi din
cuvinte definite de utilizator (partea variabila).
– Instrucţiunile SQL pot fi grupate în:
• instrucţiuni de definire a datelor, care permit descrierea structurii BD.
• instrucţiuni de manipulare a datelor: adaugă, şterge, modifică înregistrări.
• instrucţiuni de selecţie a datelor, care permit consultarea BD.
• instrucţiuni pivind controlul accesului la date
Ex. de comenzi SQL:
INSERT INTO tabel_destinaţie (câmp1, câmp2...) VALUES (valoare1,
valoare2...);
7
SELECT [domeniu] câmp1, câmp2...
CREAREA MEMORIILOR DE TRADUCERE
Initial poate sa:

– Nu existe o memorie de traducere, caz in care trebuie creata una de la


zero si apoi incarcata prin adaugarea de perechi de documente in
limba sursa si traducerile corespunzatoare.

– Existe o memorie de traducere care este vida (nu contine nici o unitate
de traducere) şi se îmbogăţeşte pe măsura adaugarii de segmente de
text.

– Existe o memorie de traducere care nu este vida (contine unitati de


traducere) şi se permite adaugarea de noi segmente de text.
8
CREAREA MEMORIILOR DE TRADUCERE
Pas 1: Deschideti MS Access si faceti click pe modelul Blank Desktop
Database. Intitulati baza de date “PATAC-TranslateAppDb.mdb“ si apoi dati click pe
optiunea Create.

9
CREAREA MEMORIILOR DE TRADUCERE
Pas 2: Acum creati un prim tabel in baza de date. Puteti numi tabelul cum doriti. In
figura de mai jos eu l-am denumit “English”. Acest tabel va contine 4 coloane intitulate
ID, word, id_fr si id_ro.

Se va proceda la fel pentru realizarea a inca doua tabele numite: “French” si


“Romania”.

In continuare se va construi un al patrulea tabel, numit “Languages” ce va realiza


legatura dintre cele 3 tabele de mai sus. Acesta va fi organizat conform figurii de mai jos:

10
COMPLETAREA MEMORIILOR DE TRADUCERE
Pas 3: Acum puteti adauga informatii in baza de date create. Un exemplu este
prezentat in figura de mai jos.

In continuare se va realiza corespondenta intre cele trei tabele: “English”, “French”


si “Romania”.
Tabelul “Languages” va avea urmatoarea organizare:

11
UTILIZAREA MEMORIILOR DE TRADUCERE
Pas 4: Deschideti proiectul de TAC creat pe parcursul cursurilor/laboratoarelor
precedente si adaugati codul necesar pentru conectare la memoria de traducere creata
anterior.
Ex.:
using System.Data.OleDb;

//Definiti variabilele globale


static OleDbConnection con;
static OleDbCommand cmd;
static OleDbDataReader reader;

string conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data


Source = E:\\PATAC-DB\\PATAC-TranslateAppDb.mdb";

private string id_lang = "";


List<string> words = new List<string>();
private string list = "";

12
UTILIZAREA MEMORIILOR DE TRADUCERE
Pas 5: Creati o metoda pentru citirea listei de limbi din memoria de traducere

Ex.:
private void GetLanguages(string languages)
{
cbLang1.Items.Clear();
con = new OleDbConnection();
con.ConnectionString = conString;
cmd = new OleDbCommand(); cmd.Connection = con;
cmd.CommandText = "SELECT * FROM " + languages;
con.Open(); reader = cmd.ExecuteReader();
while (reader.Read())
{
cbLang1.Items.Add(reader["Language"].ToString());
cbLang2.Items.Add(reader["Language"].ToString());
}
con.Close();
} 13
UTILIZAREA MEMORIILOR DE TRADUCERE
Pas 6: Creati o metoda pentru incarcare limba destinatie
Ex.:
private string SelectIdLng(string language)
{
string selectIdLang = ""; con = new OleDbConnection();
con.ConnectionString = conString;
cmd = new OleDbCommand(); cmd.Connection = con;
cmd.CommandText = " Select [id_lang] from [Languages] WHERE
[Language] = " + "'" + language + "'";

con.Open();
reader = cmd.ExecuteReader();
if (reader.Read())
selectIdLang = reader["id_lang"].ToString();
con.Close();
return selectIdLang;
}
14
UTILIZAREA MEMORIILOR DE TRADUCERE
Pas 7: Creati o metoda pentru selectare id corespunzator segmentului ce trebuie
tradus din limba sursa in limba destinatie
Ex.:
private string SelectIdWord(string word, string sourceLanguage, string
destinationLanguage)
{
string selectIdWord = ""; con = new OleDbConnection();
con.ConnectionString = conString;
cmd = new OleDbCommand(); cmd.Connection = con;

cmd.CommandText = " Select " + destinationLanguage + " from " +


sourceLanguage + " WHERE word = '" + word + "'";

con.Open(); reader = cmd.ExecuteReader();


if (reader.Read())
selectIdWord = reader[destinationLanguage].ToString();
con.Close();
return selectIdWord;
15
}
UTILIZAREA MEMORIILOR DE TRADUCERE
Pas 8: Creati o metoda pentru traducerea efectiva a segmentului din limba sursa in
limba destinatie
Ex.:
private string SelectWord(string language, string _id)
{
string selectedWord = "";
con = new OleDbConnection();
con.ConnectionString = conString;
cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = " Select word from " + language + " WHERE id =
" + _id + "";
con.Open();
reader = cmd.ExecuteReader();
if (reader.Read())
selectedWord = reader["word"].ToString();
con.Close();
return selectedWord; 16
}

S-ar putea să vă placă și