Milena Koubková
[Rozhledy]
Алгоритм частичного анализа математического текста (для целей автоматического строя славянских языков в Смолеиицах в 1966 г. / L’algorithme d’une analyse partielle d’un texte mathématique
Práce je pokusem o zjednodušení algoritmu binárního překladu odborného textu. K tomuto účelu byl vytvořen obecný algoritmus, kterého lze použít při každém binárním překladu odborného textu, ovšem s příslušnými modifikacemi tabulek.
V literatuře mluvíme o algoritmu buď jako o souhrnu pravidel nutných a postačujících k realizaci jisté konkrétní úlohy (např. algoritmus překladu z čínštiny do ruštiny ap.), anebo jako o jistém předpisu, který je posloupností operací a pouze částí algoritmu celkového, např. algoritmus vyhledávání kmene slova v tabulce ap. Někteří autoři, např. I. A. Meľčuk,[1] tento druhý typ algoritmu nazývají vlastním algoritmem na rozdíl od pojmu algoritmus, který označuje celou soustavu včetně slovníku, tabulek afixů, frazeologie ap. Vlastní algoritmus je v tomto pojetí determinovanou posloupností jistých elementárních kroků — operátorů. Výsledkem práce vlastního algoritmu je jednotka, kterou je možno zpracovávat dalším vlastním algoritmem. Z tohoto hlediska je námi vytvořený algoritmus vlastním algoritmem. Tabulky, které se v průběhu činnosti algoritmu uplatňují, by ovšem patřily do celkového algoritmu překladu.
Při sestavování uvedeného algoritmu se snažíme o maximální zjednodušení překladu určitých významových celků. Tyto pak do jisté míry souhlasí s pojmem „jednotky překladu“.[2]
„Překladové jednotky“, které lze (někdy i poněkud na úkor bohatosti jazyka, ale s plným zachováním informace v nich obsažené) přeložit do druhého jazyka jedním způsobem, shrneme v jeden pojem, a to základní významovou jednotku (ZVJ). Je tedy ZVJ v podstatě množinou překladových jednotek určitého druhu se společným českým ekvivalentem (přesnou definici viz dále). Postup, který uvedeme, by bylo pravděpodobně možno aplikovat i na jiný odborný text než matematický, jak o tom svědčí pokusy s tzv. tezaury.
V této stati uvádíme část algoritmu analýzy textu, v níž máme k jednotlivým prvkům věty vyhledat české ekvivalenty. Gramatická analýza by ovšem musela být provedena podle jiného algoritmu, právě tak syntéza ve výstupním jazyce (v češtině) [53]by musela být oddělená. Jak vyplyne z dalšího, byla by ovšem jak analýza, tak i syntéza té části textu, kterou stroj vyhledá naším algoritmem, podstatně jednodušší než analýza, event. syntéza čistě gramatická, neboť by se týkala jen flexe zcela určitých typů slov ve zcela určitých spojeních.
Provádíme-li analýzu textu (ať už prostřednictvím převodního jazyka, nebo bez něho) a zpětnou syntézu do druhého jazyka na stroji podle sebedokonalejších gramatických algoritmů, zjistíme, že je to postup zdlouhavý a že často vede k sémantickým nepřesnostem a dokonce i chybám. Ukázalo se, že při překladu není základním pojmem slovo, tj. skupina písmen oddělených od ostatního textu mezerami, neboť to, co se obvykle nazývá slovem, nabývá v různých gramatických tvarech různé grafické (a často i fonetické) podoby, ačkoli informace obsažená v tomto slově zůstává stejná. Každý překladatel ví, že překlad sestavený z izolovaných slov nám dává často mnohoznačnou informaci i při zachování všech gramatických pravidel, a to i v tom případě, že se v překládaném textu nevyskytují ani frazeologické obraty nebo idiomy.
Např. Vinay a Darbelnet řeší tuto situaci tak, že zavádějí pojem jednotky překladu a jednotky smyslu (unité de pensée), čímž dochází jen k další klasifikaci frazeologických jednotek.
Pro strojový překlad je nutno definovat jednotky překladu poněkud jinak.[3] Především je nutno rozlišovat tři typy slov: a) vstupní slovo (input-word), b) výstupní slovo (output-word), c) slovo v paměti. — Nejdůležitější při této klasifikaci je slovo v paměti. Jeden z možných přístupů k sestavení strojového slovníku je takový, že v paměti stroje máme uloženy všechny tvary (gramatické) každého slova. Vstupní slovo pak se slovem v paměti srovnáváme tak dlouho, až nalezneme odpovídající tvar ve slovníku.
Tento přístup, při kterém jsou vstupní slova a slova v paměti identická, vede k nejjednodušímu algoritmu vyhledávání v slovníku. Tento postup je prakticky nepoužitelný pro překlad ze slovanských jazyků, neboť jím objem slovníku neúměrně narůstá. Pro každé slovo museli bychom totiž uvádět všechny jeho tvary (např. u subst. asi 10, u sloves ještě více) a kromě toho vzniká další potíž, jak rozlišovat tvary, které jsou graficky stejné, ale gramaticky různé. Druhý z možných přístupů je ten, že slova v paměti obsahují kromě dalších údajů pouze kmeny[4] slov a při práci se slovníkem se užívá algoritmů, kterými vstupní slovo nejdříve upravíme na tvar slova v paměti, popř. obě jinak konfrontujeme.
Kromě toho se ukazuje, že je nutno připojit speciální slovník nebo aspoň seznam slovních „obratů“, přičemž obrat je pojem odlišný od frazeologické jednotky nebo idiomu.[5]
Z tohoto hlediska ovšem mnohá slovní spojení, která považujeme za idiomatická, nebudeme při strojovém překladu považovat za „obraty“. Kulaginová a Meľčuk uvádějí jako příklad frázi: Kopf verlieren — terjať golovu. Z hlediska strojového překladu z němčiny do ruštiny zde nejde o „obrat“.
Dále je třeba připomenout klasifikaci jednotek překladu (jedinica perevoda), kterou navrhuje Nikolajevová:[6] (1) „jednotku překladu“ vybíráme jako úsek textu vstupního jazyka vzhledem k úseku textu výstupního jazyka. Sem se přiřazují slova, event. [54]slovní vazby obou jazyků. Je zřejmé, že v algoritmu, který se opírá o takové jednotky, mají gramatická pravidla minimální význam; (2) „jednotku překladu“ vybíráme jako úsek textu vstupního jazyka vzhledem k celé soustavě výstupního jazyka. (Tento typ analýzy je při strojovém překladu velmi rozšířen a spočívá převážně na gramatických pravidlech); (3) „jednotku překladu“ vybíráme jako úsek textu vstupního jazyka vzhledem k soustavě vstupního jazyka, aniž přihlížíme k jazyku výstupnímu (nezávislá analýza). (Tento přístup má zřejmě velký význam při studiu zákonitostí jednotlivých jazyků); (4) „jednotku překladu“ vybíráme jako úsek textu vstupního jazyka k převodnímu jazyku. Toto rozdělení vede ke zcela obecné definici jednotek překladu.
„Jednotkou překladu“ je minimální úsek textu vstupního jazyka odpovídající množině elementárních pravidel převodního jazyka, která může být přiřazena některému úseku textu výstupního jazyka.
Ve své práci vycházíme jednak z definice „obratu“, zavedené Kulaginovou a Meľčukem, jednak z definice jednotky překladu výše uvedené. Protože však nám jde o binární překlad matematického textu, pozměnili jsme poněkud uvedené definice.
„Obrat“ je každá taková kombinace několika slov vstupního jazyka, a) jejichž doslovný překlad (podle údajů našeho slovníku) vede k porušení smyslu, nebo b) jejichž doslovný překlad sice k porušení smyslu nevede, ale která tvoří sémantický celek.
Stanovení množiny obratů je v praxi zcela závislé na provedení velmi rozsáhlé excerpce textů (v našem případě matematických), na statistickém zhodnocení získaných výsledků a pak na subjektivním rozhodnutí, jaká musí být četnost výskytu jednotlivých slovních spojení, aby mělo smysl pokládat je za obraty.
Aby použití navrhovaného algoritmu mělo smysl, musíme totiž stanovit optimální rozsah množiny obratů, který je závislý mimo jiné na parametrech konkrétního počítače, na němž překlad provádíme. Optimální množina obratů při konkrétním strojovém překladu textů bude záviset nejen na provedené excerpci, ale hlavně na oboru, z něhož má být překlad realizován.
I z omezené excerpce, kterou jsme měli možnost provést, vyplynulo, že určité kombinace slov, které má smysl zahrnout do množiny obratů např. v matematické analýze, prakticky se nevyskytují v textech geometrických nebo algebraických a naopak. Jak již bylo řečeno, navrhovaný algoritmus je zcela nezávislý na konkrétní množině obratů, a proto odlišnost množin obratů pro jednotlivé matematické texty nepůsobí principiálně potíže. Lze totiž do paměti stroje zavádět různé množiny obratů podle konkrétního úkolu.
Dalšího zjednodušení lze dosáhnout rozložením množiny obratů na třídy obratů shodných významem. Vyslovíme nyní definici: Třídě obratů významově shodných přiřadíme ekvivalent ve výstupním jazyce a nazveme ji základní významovou jednotkou (ZVJ). Je to tedy množina obratů, kterým lze ve výstupním jazyce přiřadit stejný překlad.
O pojmu ZVJ platí všechna tvrzení, která jsme uvedli o pojmu obratu, a to ještě ve větší míře. Principiálně není nutné, aby tyto třídy byly disjunktní. V konkrétních případech však používáme pouze rozkladu na disjunktní třídy ZVJ, neboť kdybychom připustili, že obrat patří do dvou nebo více různých ZVJ, zkomplikovali bychom buď algoritmus překladu, nebo by počítač vytvořil disjunktní třídy sám, protože by vždy uváděl překlad, který by podle našeho algoritmu nalezl nejdříve.
Zavedením pojmu ZVJ ovšem poněkud zjednodušujeme překlad. V ZVJ jsou totiž shrnuty jednotlivé obraty, k nimž je nutno ve výstupním jazyce přiřadit týž ekvivalent. Při pokusu, kterým jsme ověřovali náš algoritmus, jsme např. jednu ze ZVJ sestavili z těchto obratů:
неравенство выполняется неравенство удовлетворяется неравенство соблюдается неравенство осуществляется неравенство оправдывается | неравенство остаётся в силе неравенство имеет место неравенство справедливо неравенство верно |
[55]Do výstupního jazyka každý z nich můžeme přeložit různě, např.:
неравенство выполняется неравенство удовлетворяется неравенство соблюдается неравенство осуществляется неравенство оправдывается неравенство остаётся в силе | — nerovnost je splněna, platí — nerovnosti je vyhověno — nerovnost je splněna — nerovnost je splněna — nerovnost platí — nerovnost zůstane v platnosti, platí |
Ze všech těchto eventualit překladu je možno zvolit jen jednu, které se da užít ve všech 9 případech, tzn. takovou, která obsahuje nejobecnější informaci. V našem případě to je: nerovnost platí.
Jak je vidět, ke správnému stanovení ZVJ je třeba provést excerpci a statistické zhodnocení i textu výstupního jazyka (v našem případě češtiny), aby mohl být zvolen takový český ekvivalent, který se nejčastěji v textech vyskytuje a je proto nejsrozumitelnější. Pro ověření algoritmu jsme provedli excerpci textů týkajících se matematické analýzy. Na základě této excerpce jsme zjistili, že většina vět v excerpovaných textech (nepřihlížeje k různým vysvětlivkám, historickým poznámkám apod.) se dá rozložit z jazykového hlediska na složky centrální (jádro) a okrajové.
Jádrem nazveme tu část, která obsahuje obrat spolu s některými doplňujícími slovy (srov. dále uvedené příklady). Okrajové složky pak obsahují kvalitativní nebo kvantitativní doplnění jádra. Uveďme příklad:
(1) уравнение имеет два известных решения
rovnice má dvě známá řešení
(2) уравнение имеет три различных действительных корня
rovnice má tři různá reálná řešení
(3) допустим, что уравнение имеет два решения
předpokládejme, že rovnice má dvě řešení
(4) алгебраическое уравнение имеет одно и только одно решение
algebraická rovnice má jedno a jen jedno řešení
(5) уравнение имеет, по крайней мере, одно решение
rovnice má alespoň jedno řešení
(6) в силу сказанного, уравнение имеет второе решение
v důsledku toho, со bylo řečeno, má rovnice ještě další řešení
(7) уравнение обладает нулевым корнем
rovnice má nulové řešení
(8) уравнение обладает очевидным решением
rovnice má zřejmé řešení
Všechny tyto věty jsou v podstatě jádry z excerpovaných vět a lze z nich utvořit tyto obraty:
(1) уравнение имеет решение (3) уравнение имеет корень | (2) уравнение обладает решением (4) уравнение обладает корнем |
Tyto 4 obraty tvoří jednu ZVJ se společným překladem: rovnice má řešení. Okrajové složky jádra sestávají buď z příslušného adjektiva, číslovky, vsuvky, nepůvodní předložky, nevlastní spojky, nebo celé vedlejší věty.
Z příkladu je vidět, že ZVJ jsou jistým zobecněním lexikální synonymie, a to v tom smyslu, že místo jednotlivých slov (synonym) vystupují jako synonyma celé fráze (obraty).
Každý obrat má ovšem svou strukturu, skládá se z určitého počtu slov. Každé z těchto slov může vstupovat i do jiného obratu, event. patřit do okrajových složek nebo do jiné části věty.
Např. ve větě: эти решения однородного уравнения линейно независимы není žádná kombinace slov taková, abychom ji zvolili za obrat (na základě naší excerpce). Obsahuje však termíny уравнение а решение vyskytující se ve všech obratech, které jsou prvky uvedené ZVJ.
Shodná slova — většinou jde o termíny — se mohou přirozeně vyskytovat jak v různých obratech, tak v jádrech nebo okrajových složkách.
[56]Excerpcí matematických textů přeložených z ruštiny do čestiny jsme došli k závěru, že překlad obratů a z nich sestavených ZVJ je možno provádět algoritmem, který jsme sestavili tak, aby byl použitelný jako standardní část celkového algoritmu každého binárního překladu matematických textů mezi dvěma jazyky. Domníváme se, že navrhovaný algoritmus by byl použitelný i v algoritmu překladu jiných než matematických odborných textů.
Účelem algoritmu je vyhledat v odborném textu určité větné celky, které algoritmus morfologické analýzy i syntézy mohou zpracovávat jako jeden celek.
Algoritmus může být zařazen na různá místa celkového algoritmu binárního překladu; při sestavování jsme ovšem předpokládali, že bude zařazen ihned po dílčím algoritmu vyhledávání v slovníku a že bude předcházet morfologické a syntaktické analýze.
Operátor | Funkce | Další prováděný operátor | Vysvětlivky | |
ano | ne | |||
0 | Výběr ze slovníku | 1 | 1 | Další algoritmus, který nepatří do vlastního algoritmu. |
1 | j = 0 ? | S | 2 | Zjišťuje, zda dané slovo patří do některé ZVJ. |
2 | Do prac. buněk přenes úsek přiřazený indexu j v tab. A! | 3 | 3 |
|
3 | Je zkoumané slovo poslední ve větě? | 4 | 1 |
|
4 | Zjisti, zda v pracovních buňkách je nějaký údaj! | 5 | L |
|
5 | Najdi kombinace indexů společné všem indexům zařazeným do pracovních buněk! | 6 | 6 | Jde o jednoduchý cyklus, který blíže nepopisujeme. |
6 | Srovnej společné kombinace postupně s tabulkou B a ty, které jsou v tabulce B, zařaď do prac. buněk! | 7 | 7 | Jsou míněny kombinace nalezené v S, srovnání lze provést po úsecích tabulky B. |
7 | Je nějaký údaj v pracovních buňkách? | 8 | L |
|
8 | Vyhledej odpovídající ZVJ! | L | L |
|
S = algorismus další analýzy, který musí obsahovat rozhodnutí, zda jde o poslední slovo ve větě, a návrat na 1 L = pokračování v celkovém algoritmu |
Při použití uváděného algoritmu předpokládáme, že slovníkové údaje každého slova budou doplněny zvláštním indexem, který v dalším označíme j, a který nabývá celočíselné hodnoty j = 0, 1, 2 … N, kde N je rovno počtu všech slov zařazených do [57]některého obratu. N je tedy závislé na provedené excerpci, na kritériích, podle nichž se slova řadí do určité ZVJ a ovšem též (při praktickém užití) na kapacitě paměti počítače, na němž se má překlad realizovat. J = 0 právě když slovo není zařazeno do žádné ZVJ.
Kromě toho je třeba připojit zvláštní tabulku A (s. 56), která pro každé j určuje, do kterých obratů může slovo s tímto indexem vstupovat. Každý údaj v této tabulce je uspořádanou konečnou množinou j1, j2, … js, kde 1 ≦ ji ≦ N, i = 1, 2, …, s. Údaje v této tabulce jsou řazeny do úseků odpovídajících jednotlivým indexům j.
Další tabulka (B) obsahuje tytéž konečné uspořádané množiny, je však řazena tak, že všechny kombinace indexů ji … js, z nichž každá odpovídá jednomu obratu, tvoří úsek, oddělený od úseků příslušných jiným ZVJ.
Tabulka B se od tabulky A liší řazením a tím, že její jednotlivé úseky jsou disjunktními množinami.
Pro ověření našeho algoritmu jsme provedli pokus na počítači LGP-30. Byl zvolen binární překlad matematického textu z ruštiny do češtiny. Pokus byl založen na excerpci vysokoškolských učebnic matematické analýzy.[7]
Bylo vyexcerpováno asi 6 000 vět. Z nich bylo vytvořeno 42 pracovních okruhů. Jednotlivé okruhy se skládají z nestejného počtu ZVJ a ty opět z nestejného počtu obratů. Za vedoucí prvek jsme v první etapě práce zvolili substantivní termín. Dále se však ukázalo, že v mnoha případech nelze libovolně měnit pořadí prvků obratu, i když jeho jednotlivé prvky ve větě nemusejí za sebou následovat. V těchto případech bylo nutno přihlédnout i k pořádku slov. Proto jsme upustili od systémů vedoucích prvků obratu a zařadili i obraty, jejichž prvním prvkem je sloveso, event. jiné slovo. Vzhledem k této koncepci se v algoritmu pojem pracovního okruhu již nevyskytuje a obraty lze vzájemně jednoznačně přiřadit uspořádaným n-ticím indexů, které tvoří tabulky A a B.
Kromě toho jsme provedli jistá zjednodušení algoritmu:
(1) Předpokládali jsme, že ve větě je buď nejvýše jedna ZVJ, nebo že jde o souvětí, kde každá věta může obsahovat opět nejvýše jednu ZVJ.
(2) Od vyhledávání v slovníku jsme upustili a místo toho byl s každým slovem zaváděn číselný údaj odpovídající jeho indexu.
(3) Gramatická ani syntaktická analýza ostatních částí věty nebyla prováděna.
Na základě těchto tří omezení bylo pak možno spojit tabulky A a B, resp. v podstatě byla zařazena jen tabulka B. Kromě toho nebylo nutno vyhledávat společné kombinace odpovídající indexům j jednotlivých slov (viz 4, 5 našeho algoritmu). Algoritmus L byl nahrazen vytištěním nalezené ZVJ (českého ekvivalentu), event. údaje „ve větě není ZVJ“ a algoritmus S se omezil jen na zkoumání, zda jde o konec věty.
Celkem jsme pro přípravu pokusu vybrali 580 obratů, z nichž jsme sestavili 163 ZVJ. Vlastní program algoritmu se zjednodušením 1—3 zabíral 320 buněk, tabulky A a B pak přibližně 3400 buněk, čímž byla plně vyčerpána kapacita paměti počítače IGP-30.
Při pokusu jsme vyzkoušeli 1 000 vět vybraných jednak z excerpované literatury, jednak z textů, které excerpovány nebyly (ovšem z oboru matematické analýzy).
Podle očekávání se ukázalo, že ve větách z naší excerpce počítač našel vždy správný obrat a tím i příslušnou ZVJ. Ve větách vybíraných náhodně z textů, které excerpovány nebyly, našel počítač příslušnou ZVJ asi ve 35 % vět. Ostatní věty neobsahovaly konstrukce, které jsme zařadili do množiny obratů. Toto procento výskytu nemůžeme [58]pokládat za konečné ani pro provedenou excerpci, neboť více obratů nebylo možno do počítače zavést.
Jako ukázku uvedeme několik vět, které byly na počítači vyzkoušeny.
Věty bylo nutno zadávat přepsané do latinky, neboť vstupy LGP-30 nemají azbuku. Čísla udávaná za každou větou nahrazují část algoritmu vyhledávání v slovníku a jsou to indexy j z našeho algoritmu. Při pokusu počítač ovšem tiskne jen český překlad (event. údaj „ve větě není ZVJ“). Pro přehlednost jsme dále uvedené příklady doplnili údajem, který obrat byl počítačem nalezen v průběhu práce. Tento údaj ovšem počítač netiskne.
Věta ukládaná do počítače | Nalezený obrat | Překlad obratu |
Funkcija F dajet otobrazenije kruga na oblast. 301′38′146′′ | функция даёт отображение | funkce zobrazuje |
Funkcija vypolnjajet otobrazenije na jedinicnyj krug ploskosti v. 301′88′146′′ | функция выполняет отображение | funkce zobrazuje |
Funkcija preobrazujet oblast D v mnozestvo M. 301′30′′ | функция преобразует | funkce zobrazuje |
Eta funkcija obrascajetsja v beskonecnost mezdu predelami integrirovanija. 301′18′19′217′′ |
| „ve větě není ZVJ“ |
V současné době připravujeme pokus na počítači Odra 1003, jehož rozsah paměti je dvojnásobný než počítač LGP-30. Později chceme připravit pokus na počítači Minsk 22, jehož operativní paměť bude sice stejná jako u počítače Odra 1003, avšak do pomocných páskových pamětí je možno umístit 800 000 slov.
K tomu ovšem bude nutno provést další rozsáhlou excerpci, aby bylo možno stanovit optimálnější množinu obratů a jim odpovídajících ZVJ.
[2] J. P. Vinay - J. Darbelnet, Stylistique comparée du français et de l’anglais. Méthode de traduction, Paris 1958; srov. též SaS 27, 1966, 247—254.
[3] I. I. Revzin -V. Ju. Rozencvejg, Osnovy obščego i mašinnogo perevoda, Moskva 1964, s. 114 (o knize srov. SaS 27, 1966, 279—281).
[4] Je známo, že při strojovém překladu termín kmen má poněkud jiný význam než obvykle.
[5] O. S. Kulaginová a I. A. Meľčuk (Mašinnyj perevod s francuzskogo jazyka na russkij, VJaz 1956, č. 5, s. 113) uvádějí tuto definici „obratu“: „Obrat“ („oborot“) je každá taková kombinace několika slov, jejichž doslovný překlad, slovo za slovem (podle údajů našeho slovníku) bez přihlédnutí k jejich vzájemným souvislostem by vedl k porušení smyslu.
[6] T. M. Nikolajeva, Struktura algoritma qramm. analiza Maš. perevod i prikladnaja lingvistika, č. 5, 1961.
[7] V. I. Smirnov, Kurs vyššej matematiki 2, Moskva—Leningrad 1951, 622 s.; I. I. Privalov, Vvedenije v teoriju funkcij kompleksnogo peremennogo, Moskva 1954, 437 s.; V. V. Stepanov, Kurs differenciaľnych uravnenij, Moskva—Leningrad 1954, 401 s., ve srovnání s českými překlady — V. I. Smirnov, Učebnice vyšší matematiky II, Praha 1956; I. I. Privalov, Analytické funkce, Praha 1955; V. V. Stěpanov, Kurs diferenciálních rovnic, Praha 1950.
Slovo a slovesnost, ročník 28 (1967), číslo 1, s. 52-58
Předchozí Miroslav Mleziva: Problém označování a vyjadřování v logické sémantice
Následující Oddělení matematické lingvistiky v ÚJČ: Na okraj Herdanových knih o kvantitativní lingvistice
© 2011 – HTML 4.01 – CSS 2.1