%JERNEJ DO tukaj sem popravil katere se moje metode in katere niso
V splošnem, povzeto po \citet*{hutchins1992}, lahko delovanje sistemov strojnega prevajanja na osnovi primerov (Rule Based Machine Translation - RBMT) opišemo kot razčlenjevanje (analiziranje) izvornega besedila, ki se zaključi z izdelavo vmesne (simbolne) predstavitve. Iz te predstavitve je v naslednji fazi sintetizirano besedilo v ciljnem jeziku. Prevajalne sisteme opisanega tipa lahko razdelimo glede na vrsto vmesne predstavitve: 
\begin{itemize}
\item na sisteme z vmesnim jezikom (\gls{interlingua}) in
\item na sisteme s prenosom.
\end{itemize}
Sistemi z vmesnim jezikom uporabljajo eno vmesno predstavitev, kar omogoča enostavno kombiniranje jezikovnih parov, saj lahko nove prevajalne sisteme izdelamo brez novih pravil\index{pravilo} za prenos iz izvornega v ciljni jezik, pri čemer za vsak jezik definiramo le pravila\index{pravilo} za prehod v vmesni jezik. Problem takšnih sistemov pa je, da je izdelava vmesnega jezika zahtevno opravilo še posebej za proste domene in za sisteme z visoko kakovostjo prevajanja, kamor sodijo tudi sistemi za prevajanje med sorodnimi jeziki.

\begin{figure}[h]
\centering
\includegraphics[width=1\textwidth]{transferbasedmt.eps}
\caption{\small Splošna shema sistema za strojno prevajanje s prenosom\index{prenos}; sistem ima dve vmesni predstavitvi besedila: izvorno in ciljno, med njima pa poteka prenos\index{prenos}.}
\label{fig:transferarhitektura}
\end{figure}

Sistemi s prenosom\index{prenos} uporabljajo dve vmesni predstavitvi, eno za izvorni jezik in eno za ciljni. Takšni predstavitvi je laže izdelati, poleg tega takšen pristop tudi omogoča večjo fleksibilnost, vendar je treba izdelati pravila\index{pravilo} za prenos\index{prenos} za vsak jezikovni par posebej. Primer arhitekture sistemov s prenosom\index{prenos} je prikazan na sliki \ref{fig:transferarhitektura}.

Sistemi strojnega prevajanja s prenosom\index{prenos} delujejo tako, da najprej izvedejo oblikoskladenjsko analizo izvornega besedila v vmesno predstavitev izvornega jezika, nato za prenos v vmesno predstavitev ciljnega jezika ter nadalje v dejansko besedilo v ciljnem jeziku uporabijo leksikalne preslikave (dvojezični slovarji) in strukturna pravila\index{pravilo} prenosa\index{prenos}. Nivo analize izvornega besedila in s tem stopnja abstrakcije vmesne predstavitve besedila je odvisen od posameznega sistema za prevajanje in, posredno, od prevajanega jezikovnega para. Prevajanje oddaljenih jezikov, kot sta na primer angleščina in kitajščina, zahteva polno (globoko) analizo (skladenjsko in pomensko). Pri prevajanju sorodnih jezikov, kot je jezikovni par slovenščina\index{slovenščina}-srbščina\index{srbščina}, pa boljše rezultate dosežemo s plitkim skladenjskim razčlenjevanjem ter posledično s plitkim prenosom\index{prenos} in s plitko sintezo \citep{homola2008,corbi1}.

\section{Pravila\index{pravilo} regularnih izrazov}
\label{section:thefinitestaterules}

Pravila\index{pravilo} na osnovi regularnih izrazov se uporabljajo predvsem v sistemih strojnega prevajanja s plitkim prenosom\index{prenos}, shallow-transfer\index{transfer} MT. Spremembe s pomočjo teh pravil\index{pravilo} so najpogosteje povezane z leksikalnimi oblikami; tako je po navadi vmesna predstavitev besedila za vsako besedo sestavljena iz leme, leksikalne kategorije in opisa pregibanj. Takšna pravila so tudi omejena na lokalni kontekst.

\section{Apertiumov format pravil\index{pravilo}}
\label{section:apertiumovformatpravil}
Apertiumov modul strukturnega prenosa (Structural transfer\index{transfer} module) uporablja za odkrivanje vzorcev fiksne dolžine leksikalnih enot (kosov besedila ali fraz), ki zahtevajo posebno obdelavo glede na slovnične razlike med jezikoma (na primer: spremembe v spolu, sklonu ali številu za zagotovitev ujemanja\index{ujemanje} v ciljnem jeziku, sprememba vrstnega reda besed, leksikalne spremembe, kot na primer spremembe v predlogih ...), tehnologijo končnih avtomatov. Definicija \ref{def:pravilaprenosa} opisuje zgradbo pravi.

\begin{definic}
\label{def:pravilaprenosa}
Pravila sestavljajo pari $<vzorec,ukrep>; vzorec \equiv Lk_i\circ b\circ Lk_{i+1}\circ b \circ \ldots; ukrep \equiv akcije(vzorec)$. 
\end{definic}
Vzorec je predstavljen s sekvenco poljubne dolžine leksikalnih kategorij (definirane v definiciji \ref{def:dvojezicnislovar}) izvornega jezika, ločenih s presledki ($b$ -- blank). Ukrep določa akcije, ki naj se izvedejo nad sekvencami vzorca ter izhodni vzorec leksikalnih kategorij ciljnega jezika, ki naj se zgradi. Po detekciji vzorcev se izvedejo spremembe, ki so opisane v telesu pravila (izhod modula so spremenjene leksikalne enote). Pravila\index{pravilo} so zgrajena iz dveh delov: končnega števila elementov, ki opisujejo vzorce fiksne dolžine, in dela, ki omogoča opis akcije, ki je potrebna za spremembo vzorca. 

\begin{table}[h]
\centering
\caption{\small Razlaga značk in atributov zapisa pravil v formatu Apertium.}
\begin{tabular}{|l|l|}
\hline
\hline
značka & opis\\
\hline
<rule> & celotno pravilo\\
<pattern> & vsebuje eno ali več značk (pattern-item), ki definirajo \\
 & leksikalne oblike, na katere lahko apliciramo pravilo\\
<pattern-item> & del vzorca, leksikalna enota\\
<action> & del pravila, ki opisuje ukrep, spremembo vzorca\\
<let> & sprememba izvornega dela\\
<clip> & izbere del leksikalne enote, ki ustreza atributom\\
<lit> & generira niz črk\\
<lit-tag> & generira niz črk, ki opisujejo jezikovno oznako\\
<out> & vsebuje vse, kar bo pravilo izpisalo\\
<lu> & definira vsebino celotne leksikalne enote\\
<b> & (blank), ločilo med leksikalnima enotama, pogosto je presledek\\
<call-macro> & klic makra (programske kode)\\
\hline
\hline
atribut & opis\\
\hline
side & smer, ki jo naslavlja značka (izvorna/ciljna)\\
part & ime dela, ki ga naslavlja značka\\
n & dejanska vsebina značke <pattern-item>\\
v & dejanska vsebina značk <lit> in <lit-tag>\\
pos & (position), zaporedna številka leksikalne enote\\
\hline
\end{tabular}
\label{tab:opisznackapertium}
\end{table}

Vzorci (\gls{pattern}) so običajno izraženi v leksikalnih kategorijah, na sliki \ref{fig:sest} \emph{pomožni glagol v prihodnjiku} in \emph{glavni glagol poljubne oblike}. Ukrep (\gls{action}) določa, katere ukrepe je treba izvesti za ustrezen najdeni vzorec.

\begin{figure}[h!]
\footnotesize
\begin{quote}
\begin{verbatim}
<!-- primer: bom kupil--> 
<rule> 
  <pattern>
    <pattern-item n="pomožni glagol v prihodnjiku"/>
    <pattern-item n="glavni glagol"/>
  </pattern>
  <action>
    <let>
      <clip pos="1" side="tl" part="lema"/>
      <lit v="hteti"/>
    </let>
    <let>
      <clip pos="1" side="tl" part="oblika"/>
      <lit-tag v="deležnik"/>
    </let>
    <let>
      <clip pos="2" side="tl" part="oblika"/>
      <lit-tag v="nedoločnik"/>
    </let>
    <out>
      <lu> 
        <clip pos="1" side="tl" part="lema"/>
        <clip pos="1" side="tl" part="pomožni glagol"/>
        <clip pos="1" side="tl" part="oblika"/>
        <clip pos="1" side="tl" part="oseba"/>
        <clip pos="1" side="tl" part="število"/>
      </lu>
      <b pos="1"/>
      <lu> 
        <clip pos="2" side="tl" part="lema"/>
        <clip pos="2" side="tl" part="glavni glagol"/>
        <clip pos="2" side="tl" part="oblika"/>
      </lu>
    </out>
  </action>
</rule>  
\end{verbatim}
\end{quote}
\normalsize
\caption{\small Primer pravila\index{pravilo} za strukturni prenos\index{prenos}. Pravilo\index{pravilo} opisuje spremembe načina zapisa prihodnjika iz slovenščine v srbščino. Posamezne značke so predstavljene v tabeli \ref{tab:opisznackapertium}.}
\label{fig:sest}
\end{figure}
Primer pravila\index{pravilo} je predstavljen na sliki \ref{fig:sest}. Pravilo\index{pravilo} je sestavljeno iz dveh delov: vzorec \emph(pattern) in ukrep \emph(\gls{action}). Opisuje spremembe načina zapisa prihodnjika iz slovenščine v srbščino. Vzorec je sestavljen iz dveh leksikalnih enot: \emph{pomožni glagol biti v prihodnjiku} in \emph{glagol poljubne oblike}, ukrep pa spremeni lemo prvega glagola v \emph{hteti}, obliko prvega glagola v \emph{deležnik} ter obliko drugega glagola v \emph{nedoločnik}; v nadaljevanju so v znački \emph{<lu>} (lexical unit) izpisane leksikalne kategorije za obe besedi. Posamezne značke zapisa pravil so predstavljene v tabeli \ref{tab:opisznackapertium}.

Več pravil\index{pravilo} je predstavljenih v prilogi \ref{chapter:priloga1}.

\section{Uporaba pravil za strukturni prenos\index{prenos}}
\label{section:uporabapravilzastrukturnitransfer}

Modul uporablja za strukturni prenos\index{strukturni prenos} pri dejanskem prevajanju oblikoskladenjsko označenih leksikalnih enot (po navadi besed ali besednih zvez) pravila prenosa\index{prenos} skupaj z dvojezičnim slovarjem. S pravili poskušamo opisati strukturne razlike med jezikoma, torej potrebne spremembe za pravilne prevode iz izvornega v ciljni jezik. Pravila plitkega prenosa\index{prenos}, kot jih uporablja Apertium, naslavljajo le dele besedila končne velikosti; večina pravil naslavlja dele besedila dolžine 1, 2 ali 3 besede. Modul v izvornem besedilu poišče dele besedila, ki jih naslavlja pravilo. Pravilo na delu besedila, ki ga naslavlja, izvede akcijo in vrne spremenjeno besedilo.

Sama izbira pokritja posameznih izvornih povedi s pravili poteka po principu najdaljšega ujemanja z leve strani (LRLM -- Left-to-Right Longest Match). Za poved v izvornem jeziku je izbrana takšna veriga pravil, da je za dele, pri katerih bi lahko uporabili več pravil, izbrano tisto, ki naslavlja daljše besedilo od leve proti desni.

Primer \ref{example:strukturnitransfer} kaže poved ,,Jutri bom kupil rožo'' in njen prevod; del te povedi \emph{bom kupil} je posebej označen in naslavlja pravilo na sliki \ref{fig:sest}.

Oglejmo si še delovanje pravila na primeru \ref{example:strukturnitransfer}. Prva beseda pokritja, pomožni glagol v prihodnjiku, ustreza besedi \emph{bom} iz primera, druga beseda, glavni glagol, ustreza besedi \emph{kupil}. Pred izvajanjem samega izpisa pravilo postavi novo lemo prvi besedi \emph{hteti} in obliko glagola v deležnik. Obliko drugega glagola spremeni v nedoločnik. Pravilo pri samem izpisu za vsako besedo le izpiše že spremenjene lastnosti v vnaprej dogovorjenem vrstnem redu, kot je prikazano na primeru \ref{example:strukturnitransfer}. 

\begin{unbreakableexample}
\begin{example}
\gll bom kupil
  biti-\emph{glagol p prihod 1os edn} kupiti-\emph{glagol g delež edn moški}
\glt ''Jutri bom kupil rožo.'' (SLO)
\glend  
\gll ću kupiti
  hteti-\emph{gl pomožni sedanjik 1os edn} kupiti-\emph{gl glavni nedoloč}
\glt ''Sutra ću kupiti cvet.'' (SR)
\glend  
\label{example:strukturnitransfer}
\end{example}
\end{unbreakableexample}

\section{Samodejna izdelava pravil\index{pravilo}}
\label{section:samodejnaizdelavapravil}
\subsection{Izdelava pravil\index{pravilo} za plitki prenos na osnovi regularnih izrazov}
\label{section:samodejnatransferrules}

Pri snovanju preizkusa smo se omejili na samodejno izdelavo pravil\index{pravilo} plitkega prenosa. Takšna pravila\index{pravilo} so najprimernejša za prevajalne sisteme sorodnih jezikov, kar predstavljajo \citet*{homola2008} ter \citet*{forcada1}.

Samodejna izdelava pravil\index{pravilo} plitkega prenosa je bila izvedena s pomočjo orodja, ki je del ogrodja Apertium. Metoda \citep{sanchez2009} je predstavljena v razdelku \ref{section:samodejnatransferrulesopismetode}.

To orodje izdeluje pravila\index{pravilo}, ki jih lahko nepredelana uporabimo v ogrodju prevajalnih sistemov, temelječih na Apertiumu \citep{corbi1}, medtem ko moramo za ostale sisteme format pravil\index{pravilo} spremeniti, vendar je tudi ta postopek lahko popolnoma samodejen.\\ 

\subsection{Opis metode}
\label{section:samodejnatransferrulesopismetode}
Metoda, predstavljena v \citep{sanchez2009}, je osnovana na predlogah poravnave (\gls{alignment template -- AT}), ki so bile predlagane kot izboljšava osnovnih metod statističnega strojnega prevajanja v \citep{och2004}.

AT lahko definiramo kot posplošitev poravnav parov fraz\footnote{Fraza v okviru tega dela, in tudi splošneje v statističnem strojnem prevajanju, pomeni kolokacijo dveh ali več besed in ne tvori nujno pomensko zaključene enote.} z uporabo besednih razredov (gls{word class}), ki so predstavljeni v razdelku \ref{section:besednirazred}.

AT razširimo z množico omejitev, ki nadzorujejo uporabo predlog kot pravil\index{pravilo} plitkega prenosa\index{plitki prenos}. V ta namen:
\begin{itemize}
\item povezave med frazami (med deli besedila \gls{text chunks}), povzete iz učnih primerov, shranimo v dvojezični slovar sistema RBMT, ki omogoča reprodukcijo leksikalne vsebine pri prevajanju;
\item besedni razredi so določeni z jezikoslovnim znanjem in ne na podlagi statistike;
\item množica omejitev, ki so bile naučene iz učnih primerov, je dodana vsaki AT in omejujejo uporabo AT kot pravila\index{pravilo} prenosa\index{prenos}. Tako spremenjene AT lahko poimenujemo razširjene predloge.
\end{itemize}

Slika \ref{fig:atfraza} kaže poravnano frazo \emph{On želi delati -- On želi da radi}; poravnave so v tabeli obarvane črno. 

\begin{figure}[h]
\centering
\includegraphics[width=0.40\textwidth]{doktorat_AT1.eps}
\caption{\small Poravnana fraza \emph{On želi delati -- On želi da radi}.}
\label{fig:atfraza}
\end{figure}

Slika \ref{fig:at} kaže razširjeno predlogo poravnav (AT), ki je nastala iz poravnane dvojezične fraze s slike \ref{fig:atfraza}. Besede so zamenjane z besednimi razredi, zapisana je še množica omejitev ciljnega jezika, ki v tem primeru omejuje le prvo in drugo besedo, $\ast$ predstavlja poljubno zaporedje znakov. Okrajšave oznak MSD so zapisane v tabeli \ref{tab:kraticejos2}.

\begin{figure}[h]
\centering
\includegraphics[width=0.40\textwidth]{doktorat_AT2.eps}
\caption{\small Razširjena predloga poravnav. Besede nadomeščajo besedni razredi tako v izvornem kot v ciljnem delu. Dodana je še množica omejitev ciljnega jezika, ki omejuje prvi dve ciljni besedi.}
\label{fig:at}
\end{figure}

\begin{table}[h]
\centering
\caption{\small Razširjene kratice, ki so uporabljene na sliki \ref{fig:at}.}
\begin{tabular}{|l|l|}
\hline
\hline
L & členek\\
Ggnste & glagol glavni nedovršni sedanjik tretja ednina\\
Ggnn & glagol glavni nedovršni nedoločnik\\
Zotmei & zaimek osebni tretja moški ednina imenovalnik\\
\hline
\end{tabular}
\label{tab:kraticejos2}
\end{table}

Učenje predlog iz povedno poravnanega dvojezičnega korpusa je sestavljeno iz treh faz:
\begin{enumerate}
\item iskanje besednih povezav (\gls{word alignment}s) med izvornim in ciljnim delom korpusa; uporabimo lahko poljubno metodo, najpogosteje pa se uporablja orodje GIZA++, ki temelji na statistični metodi \citep{och2003};
\item pridobivanje dvojezičnih poravnanih parov fraz; metoda \citep{och1999} upošteva vse možne pare fraz do določene dolžine, pri čemer veljajo naslednji pogoji:
\begin{itemize}
\item vse besede si sledijo,
\item nobena beseda dvojezičnega para ni poravnana z besedami izven para,
\end{itemize}
\item posplošitev teh dvojezičnih parov fraz z uporabo besednih razredov namesto samih besed; posplošitev temelji na zamenjavi posameznih besed z ustreznimi besednimi razredi.
\end{enumerate}
Uporaba razredov besed omogoča opis zamenjave vrstnega reda besed, sprememb pri sklanjanju in uporabi predlogov ter ostalih razlik med izvornim in ciljnim jezikom oziroma njunima vmesnima predstavitvama.

Iz razširjenih predlog lahko sestavimo pravila\index{pravilo} prenosa\index{prenos}.

Strukturni prenos\index{prenos} v Apertiumu uporablja končne avtomate za iskanje vzorcev leksikalnih oblik fiksne dolžine. Pri izbiri uporablja algoritem\index{algoritem} najdaljšega ujemanja\index{ujemanje} vzorca z leve proti desni (LRLM -- Left to Right Longest Match). Za izbrana pravila\index{pravilo} na vzorcu izvede ukrepe (\gls{action}s), opisane v pravilih\index{pravilo}. Generično pravilo\index{pravilo} plitkega prenosa je tako sestavljeno iz vzorca leksikalnih oblik za iskanje in iz opisa potrebnih transformacij na njem. Primer pravila\index{pravilo} je predstavljen na sliki \ref{fig:sest}.

Pravilo\index{pravilo} je sestavljeno iz množice razširjenih predlog poravnave (AT) z enakim zaporedjem besednih razredov izvornega jezika, vendar z drugačnimi sekvencami besednih razredov ciljnega jezika in/ali drugačno poravnavo in/ali drugačnim naborom omejitev ciljnega jezika.

Generirana koda izvede AT, ki zadošča omejitvam ciljnega jezika za izbran primer in ki je bila sestavljena iz največjega števila poravnav v učnem korpusu, torej je bila narejena iz največjega števila učnih primerov. Vsako pravilo vsebuje še privzeto AT, ki ima nameščeno najnižjo frekvenco in nima omejitev ciljnega jezika. Ta AT prevaja samo posamezne besede in je uporabljena le, če ni izbrana nobena AT z omejitvami.

\subsection{Izbira najboljših pravil\index{pravilo}}
\label{section:izbiranajboljsihpravil}
Metode za samodejno in nenadzorovano izdelavo pravil\index{pravilo} po navadi izdelajo veliko množico pravil\index{pravilo}. Za izbiro najboljših pravil\index{pravilo} uporabimo metode ocenjevanja pravil\index{pravilo}. Ena od možnih izbir je naša metoda, predstavljena v \citep{vicic2008a}. Metoda temelji na statističnem trigramskem jezikovnem modelu ciljnega jezika.

Metoda, opisana v nadaljevanju, je bila preizkušena na sistemu za strojno prevajanje sorodnih jezikov jezikovnega para katalonščina-španščina.

Empirično vrednotenje predstavljenih metod je predstavljeno v razdelku \ref{section:evalizbiranajboljsihpravil}.

Model ciljnega jezika, kot je opisan v \citep{bahl1,clarkson1}, v našem primeru trigramski jezikovni model, se uporablja kot merilo za točkovanje kakovosti izdelanih kandidatov za prevode\index{prevod}. Jezikovni model dodeli višjo vrednost, po navadi verjetnost, zaporedjem besed, ki se v učni množici večkrat pojavljajo. Jezikovni model za vsako poved poskuša določiti njeno verjetnost, da bi se pojavila v učnem korpusu, ne pa verjetnost, da je ta poved res prevod\index{prevod} izvorne povedi.

Metoda vrednotenja pravil\index{pravilo} temelji na predpostavki, da model ciljnega jezika zadošča za določitev kakovosti pravil\index{pravilo} prenosa, saj pravila\index{pravilo} prenosa\index{prenos} v modulu za strukturni prenos prevodom\index{prevod} ne spremenijo pomena. Pravila\index{pravilo} prenosa se največ ukvarjajo z zamenjavo vrstnega reda besed in ujemanjem sosednih besed, kot je opisano v razdelku \ref{section:thefinitestaterules}.

Kakovost pravil\index{pravilo} ovrednotimo z dovolj velikim testnim korpusom. Pravila\index{pravilo}, pri uporabi katerih so prevodi\index{prevod} bolje ocenjeni, so tudi sama bolje ocenjena in pri več možnostih sistem izbere pravilo\index{pravilo} z boljšo oceno.

\subsubsection{Uporaba jezikovnega modela, ki upošteva dolžino povedi}
\label{enhanced}

Trigramski jezikovni model, ki je opisan v prejšnjem razdelku, teži k določanju višje (boljše) vrednosti krajšim povedim, ker obstaja večja verjetnost, da se te pojavijo v učnem korpusu \citep{bahl1, clarkson1}. Torej bi v našem primeru model dajal prednost pravilom, ki brišejo besede, tj. pravilom, ki krajšajo povedi. Čeprav ročno napisana pravila le redko odražajo to lastnost, pa tega ne moremo trditi za samodejno grajena pravila. Osnovni metriki smo tako dodali dodaten parameter, ki ta učinek penalizira.

Količnik $x$ dolžine izvornih povedi v španščini in prevodov teh povedi v katalonščini na relativno velikem korpusu El Periódico de Catalunya, ki je predstavljen v razdelku \ref{section:elperiodico} (okoli $50.000$ povedi), je predstavljen na sliki \ref{fig:histogram} in njegovo porazdelitev aproksimiramo z normalno porazdelitvijo:

\begin{equation}
f(x, \sigma, \mu)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}},
\end{equation}kjer je $\mu$ povprečje in $\sigma$ standardna deviacija $x$. Verjetnost jezikovnega modela pomnožimo s tem penalizacijskim faktorjem.

\begin{figure}
\centering
\includegraphics[width=.70\textwidth]{JV_histogram.eps}
\caption{\small Porazdelitev količnika dolžine izvornih povedi v španščini (s -- izvor) in njihovih prevodov v katalonščini (t -- cilj). Povprečna vrednost je 0,9953 in standardna deviacija je 0,07.}
\label{fig:histogram}
\end{figure}

\subsubsection{Implementacija metode}
\label{section:implementacijametodeizbiranajboljsihpravil}
Metoda je bila implementirana v ogrodje Apertium, ki je sestavljeno iz modulov, ki delujejo zaporedno, rezultat (izhod) modula je vhod naslednjega modula. Arhitektura je predstavljena v razdelku \ref{section:apertium}. Komunikacija med moduli se izvaja kot preprost vhodno/izhodni tok besedila prek cevi UNIX (\gls{UNIX pipe}s). Umestitev novega modula pomeni samo implementacijo razčlenjevanja izhoda ter izdelavo primernega vhoda za naslednji modul.

Predstavljena metoda je bila implementirana s spremembo že obstoječega modula, modula za strukturni prenos (structural transfer module). Spremenjeni sistem je primeren le za preizkus delovanja metode in za izbiro najboljših pravil, saj spreminja osnovno arhitekturo, kot je predstavljena na sliki \ref{fig:apertium_original_system}. Spremenjeni modul izdela vsa možna pokritja izvornega oblikoskladenjsko označenega besedila s pravili prenosa. Takšen sistem bi zahteval podobno arhitekturo, kot je predstavljena na sliki \ref{fig:changed_system}, vendar sprememba ni potrebna, če sistem uporabimo le za izbiro najboljših pravil, ta pravila pa uporabimo v standardnem sistemu.

\begin{figure}[h!]
\centering
\framebox[5.5cm][l]{\parbox[b]{5cm}{
Danes je lep dan .\\
je lep dan .\\
lep dan .\\
dan .
}
}
\caption{\small Vse možne pripone povedi \emph{Danes je lep dan}. Zaradi lažje berljivosti so oznake MSD izpuščene.}
\label{fig:today}
\end{figure}

Vhod modula se razširi na vse možne podnize, iz vhodne povedi izdelamo vse možne pripone, kot je prikazano na sliki \ref{fig:today}.

\begin{table}[h]
\centering
\caption{\small Razlaga oblikoskladenjskih oznak španščine in katalonščine.}
\begin{tabular}{|l|l|}
\hline
\hline
značka & opis\\
\hline
<det> & determiner -- členek\\
<pos> & positive -- pozitiven\\
<pl> & plural -- množina\\
<sg> & singular -- ednina\\
<n> & noun -- samostalnik\\
<f> & female -- ženski\\
<m> & male -- moški\\
<vbhaver> & verbo haver -- pomožni glagol imeti\\
<vblex> & verbo lexical -- navadni glagol\\
<pri> & present indicative -- sedanjik\\
<p3> & third person -- tretja oseba\\
<pr> & preposition -- členek\\
<pp> & past participle -- pretekli deležnik\\
<def> & definite -- določni\\
<ind> & indefinite -- nedoločni\\
<num> & numeral -- število\\
\hline
\end{tabular}
\label{tab:opisznackspansko}
\end{table}

Izvirni algoritem za strukturni prenos preskoči vse vhodne žetone, ki se ne uporabijo v nobenem od pravil sistema. Za simulacijo te težave je bilo uvedeno posebno prazno pravilo (\gls{dummy rule}), ki se uporabi vsakič, ko ni pravega pravila z vzorcem, ki se ujema z vhodnim nizom.

Vsaka izdelana pripona, niz besed z oznakami MSD, se obravnava kot posebna poved. Za vsak položaj se uporabijo vsa možna pravila, ne le pravilo z najdaljšim ujemanjem. Za vsak položaj v povedi so shranjena vsa pravila in njihovi rezultati, tj. prevodi za vse vhodne besede, ki jih ta pravila zajamejo. Tak način omogoča izdelavo vseh možnih pokritij vhodne povedi s pravili prenosa. 

\begin{figure}[h!]
\centering
%\includegraphics[width=.4\textwidth]{JV_stiri.eps}
\framebox[9.5cm][l]{\parbox[b]{9cm}{
Sus acciones han subido de un 75\% desde el ano pasado .\\
$^{\wedge}$El seu $<$det$><$pos$><$m$><$pl$>$\$ \\
$^{\wedge}$acci$<$n$><$f$><$pl$>$\$\\
$^{\wedge}$haver$<$vbhaver$><$pri$><$p3$><$pl$>$\$ \\ 
$^{\wedge}$pujar$<$vblex$><$pp$><$m$><$sg$>$\$ \\
$^{\wedge}$de$<$pr$>$\$\\
$^{\wedge}$un$<$det$><$ind$><$m$><$sg$>$\$ \\
$^{\wedge}$75$<$num$>$\$\\
$^{\wedge}$des de$<$pr$>$\$ 
$^{\wedge}$el$<$det$><$def$><$m$><$sg$>$\$\\ 
$^{\wedge}$any$<$n$><$m$><$sg$>$\$ 
$^{\wedge}$passar$<$vblex$><$pp$><$m$><$sg$>$\$ 
$^{\wedge}$.$<$sent$>$\$\\
\_0\_1\_-1\_25\_-1\_0\_-1\_1\_5\_25\_42
}
}
\caption{\small Delni podatki, trojica, sestavljena iz izvorne povedi, niza pravil (pokritje povedi) in delnega prevoda, ki ga izdela ta niz pravil na izvorni povedi. Značke so obširjene predstavljene v tabeli \ref{tab:opisznackspansko}.}
\label{fig:stiri}
\end{figure}

Vsak niz pravil, ki zajemajo celotno poved, je predstavljen s trojico: vhodna poved, niz pravil in nedokončani prevod, ki ga izdela ta niz pravil. Primer je prikazan na sliki \ref{fig:stiri}.

V zadnji fazi metode so uporabljeni vsi preostali moduli prevajalnega sistema, saj je izhod spremenjenega modula prirejen tako, da ostali moduli nemoteno opravljajo svoje delo. Končni prevodi so ovrednoteni s trigramskim modelom ciljnega jezika. Končni rezultat je v obliki peterice, ki je sestavljena iz naslednjih komponent: 
\begin{enumerate}
\item Izvorna poved.
\item Niz pravil. Pravila so oštevilčena in ta niz predstavlja pravila, uporabljena v tem prevodu. Število $-1$ označuje, da je bilo uporabljeno prazno pravilo.
\item Rezultat niza pravil na izvorni povedi (z oznakami MSD).
\item Končni prevod z uporabo pravil iz točke 2.
\item Ovrednotenje prevoda iz slike \ref{fig:stiri} z uporabo jezikovnega modela ciljnega jezika.
\end{enumerate}
Peterica z najboljšo oceno predstavlja najboljši niz pravil za izvorno poved.

\begin{figure}[h!]
\centering
%\includegraphics[width=.4\textwidth]{JV_pet.eps}
\framebox[9.5cm][l]{\parbox[b]{9cm}{
Sus acciones han subido de un 75\% desde el ano pasado .\\
\_0\_1\_-1\_25\_-1\_0\_-1\_1\_5\_25\_42\\
$^{\wedge}$El seu $<$det$><$pos$><$m$><$pl$>$\$ \\
$^{\wedge}$acci$<$n$><$f$><$pl$>$\$\\
$^{\wedge}$haver$<$vbhaver$><$pri$><$p3$><$pl$>$\$ \\
$^{\wedge}$pujar$<$vblex$><$pp$><$m$><$sg$>$\$
$^{\wedge}$de$<$pr$>$\$\\
$^{\wedge}$un$<$det$><$ind$><$m$><$sg$>$\$
$^{\wedge}$75$<$num$>$\$\\
$^{\wedge}$des de$<$pr$>$\$
$^{\wedge}$el$<$det$><$def$><$m$><$sg$>$\$\\
$^{\wedge}$any$<$n$><$m$><$sg$>$\$
$^{\wedge}$passar$<$vblex$><$pp$><$m$><$sg$>$\$
$^{\wedge}$.$<$sent$>$\$\\
Els seus accions han pujat d'un 75\% des de l'any passat .\\
\\
2.65465883353068E-28

}
}
\caption{\small Končni rezultat metode je množica ovrednotenih petoric. Vsaka petorica vsebuje izvorno poved, vse pripone te povedi z oblikoskladenjskimi oznakami, niz imen pravil, ki predstavljajo pokritje izvorne povedi s pravili, ciljni prevod in končno oceno jezikovnega modela za ta prevod. Značke so obširjene predstavljene v tabeli \ref{tab:opisznackspansko}.}
\label{fig:pet}
\end{figure}


\section{Izdelava pravil\index{pravilo} na osnovi regularnih izrazov za izražanje lokalnega ujemanja\index{ujemanje} oblikoskladenjskih kategorij}
\label{section:samodejnalocalagreementrules}
%JERNEJ tukaj
Metoda, opisana v nadaljevanju razdelka, je lastno delo, predstavljeno v \citep{vicic2010b}.

Modul za odpravljanje napak lokalnega ujemanja\index{ujemanje} oblikoskladenjskih kategorij uporablja enak tip pravil\index{pravilo} kot modul za plitki prenos\index{plitki prenos}, opisan v \citep{sanchez2009}; pravila\index{pravilo} so poenostavljena. Pravila\index{pravilo} odražajo le ujemanje\index{ujemanje} besed, ki so oddaljene največ dve mesti, kot je na primer ujemanje\index{ujemanje} pridevnikov in samostalnikov v sklonu, spolu in številu. Takšna pravila\index{pravilo} je veliko laže sestaviti kot pravila\index{pravilo} za strukturni prenos\index{strukturni prenos}. Metoda odkriva le lokalno ujemanje\index{ujemanje} v okviru največ treh besed (z uporabo trigramskega jezikovnega modela), vendar bi samo z uporabo drugačnega modela njeno delovanje lahko razširili. Zahteve za uporabo metode so preprostejše kot pri metodi za izdelavo pravil\index{pravilo} strukturnega prenosa, opisani v \citep{sanchez2009}, saj potrebujemo le enojezični, oblikoskladenjsko označeni korpus.

\begin{algorithm}[h]
\begin{quote}
\begin{algorithmic}
\State $trigrami \gets$ izdelaj bigrame\index{bigram} in trigrame\index{trigram} iz korpusa;
\ForAll{$trigram \in trigrami$}
 \ForAll{$msd1 \in trigram.besede$}
  \ForAll{$msd2 \in trigram.besede$}
    \If{$msd1 = msd2$}
      \State $trenutniRazred \gets pravilo(msd1, msd2)$ \Comment{ugotovi, kateri deli oblikoskladenjskih oznak v trigramu se ujemajo}
    \EndIf
  \EndFor
 \EndFor
 \If{$r \in vsiRazredi  \wedge trenutniRazred = r$}
  \State{$r.count \gets r.count + 1$} \Comment{najden razred $r$ z istimi besednimi vrstami in istim ujemanjem}
 \Else
  \State{$vsiRazredi \gets vsiRazredi \cup \left\{{trenutniRazred}\right\}$}
 \EndIf
\EndFor
\ForAll{$r \in vsiRazredi$}
 \If{$r.count \leq prag$} 
  \State{$vsiRazredi \gets vsiRazredi \setminus \left\{{r}\right\}$} \Comment{izbriši razrede s številom kandidatov, ki je manjše od praga}
 \EndIf
\EndFor
\end{algorithmic}
\caption{\small Proces samodejne izdelave pravil\index{pravilo} lokalnega ujemanja iz označenega korpusa.}
\label{alg:rulesconstructionalgorithm}
\end{quote}
\end{algorithm}
\normalsize

Pravila\index{pravilo} lokalnega ujemanja\index{ujemanje} uporabljata dva modula s slike \ref{fig:changed_system}, in sicer modul za izbiro množice kandidatov in modul za iskanje lokalnega ujemanja\index{ujemanje}. Prvi modul uporablja pravila\index{pravilo}, naučena na oblikoskladenjsko označenem korpusu izvornih besedil, drugi na enako označenem korpusu ciljnih besedil. Tudi pri tej metodi smo uporabili korpus ,,1984'', ki vsebuje tako izvorno kot ciljno besedilo.

Tri- in bigrame\index{bigram} oblikoskladenjskih oznak, in sicer brez dejanskih besed, torej izključno z oznakami, zgradimo iz označenega korpusa s pomočjo standardne metode za izdelavo stohastičnih jezikovnih modelov, kot je predstavljena v razdelku \ref{section:statisticnimodeljezika}. Iz osnovnega korpusa ,,1984'' smo najprej izluščili oblikoskladenjske oznake ter na tako pripravljenem korpusu zgradili tri- in bigrame.  Tri- in bigrami so bili razdeljeni v skupine glede na besedne vrste (prve dele oblikoskladenjskih oznak) ter na dolžine oznak. V isto skupino so bili dodeljeni tri- in bigrami, ki so vsebovali enake besedne vrste in enako dolge oznake. Ostali deli oznak so bili prosti.

Za vsako leksikalno enoto tri- in bigramov\index{bigram} je bilo preverjeno ujemanje\index{ujemanje} oblikoskladenjskih kategorij z vsemi ostalimi enotami. Kandidat za novo pravilo\index{pravilo} lokalnega ujemanja\index{ujemanje} je shranjen v ekvivalenčni razred z lastnostmi, kot so prikazane na sliki \ref{fig:lokalnoujemanjerazred}, če med enotami tri- oziroma bigram\index{bigram}a obstajajo ujemanja\index{ujemanje} oblikoskladenjskih kategorij . 

\begin{figure}[h]
\footnotesize
\begin{quote}
\begin{verbatim}
vzorec naslavljanja za pravilo:
pridevnik, dolžina MSD = 5
samostalnik, dolžina MSD = 4
ujemanja oblikoskladenjskih kategorij: 1-1, 2-2, 3-3
število kandidatov v razredu: 1335
\end{verbatim}
\end{quote}
\normalsize
\caption{\small Ekvivalenčni razred za sestavo pravil lokalnega ujemanja med pridevnikom in samostalnikom. Pridevnik in samostalnik se ujemata v treh lastnostih, ki so na zaporednih mestih 1 = spol, 2 = število, 3 = sklon.}
\label{fig:lokalnoujemanjerazred}
\end{figure}

Razred določimo za primernega za izdelavo pravila\index{pravilo}, če je število kandidatov, ki ga sestavljajo, dovolj veliko in če je število kandidatov v tem razredu, ki ne ustrezajo ujemanjem, zanemarljivo majhno (ocenimo ga kot šum). Prag za izbiro veljavnih pravil\index{pravilo} je bil določen empirično na podlagi manjšega števila testnih primerov. Metodo za boljšo določitev praga bo treba dodatno raziskati.

Algoritem \ref{alg:rulesconstructionalgorithm} opisuje ta postopek.

Iz razreda, predstavljenega na sliki \ref{fig:lokalnoujemanjerazred}, je bilo izdelano pravilo na sliki \ref{fig:lokalnoujemanjepravilo}. 

\begin{figure}[h!]
\footnotesize
\begin{verbatim}
<rule>
 <pattern>
  <pattern-item n="pridevnik dolžine 5"/>
  <pattern-item n="samostalnik dolžine 4"/>
 </pattern>
 <action>
  <out>
   <lu>
    <clip pos="1" side="tl" part="lema"/>
    <clip pos="1" side="tl" part="pridevnik dolžine5 MSD_0"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_1"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_2"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_3"/>
    <clip pos="1" side="tl" part="pridevnik dolžine5 MSD_4"/>
   </lu>
   <b pos="1"/> 
   <lu> 
    <clip pos="2" side="tl" part="lema"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_0"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_1"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_2"/>
    <clip pos="2" side="tl" part="samostalnik dolžine4 MSD_3"/>
   </lu>
  </out>
 </action>
</rule>
\end{verbatim}
\normalsize
\caption{\small Pravilo\index{pravilo}, zgrajeno iz primerov razreda, prikazanega na sliki \ref{fig:lokalnoujemanjerazred}. Pridevnik (prva beseda) se ujema s samostalnikom (druga beseda) v treh delih MSD-oznake, in sicer v kategorijah na mestih 1, 2, 3, ki jih pridevnik povzame po samostalniku. Posamezne značke so predstavljene v tabeli \ref{tab:opisznackapertium}.}
\label{fig:lokalnoujemanjepravilo}
\end{figure}

\subsection{Primeri uporabe pravil\index{pravilo} za lokalno ujemanje\index{ujemanje} oblikoskladenjskih kategorij}
\label{section:primerilocalagreementrules}

Leksikalna podobnost\index{podobnost} sorodnih jezikov, obširneje predstavljena v razdelku \ref{section:leksikalnapodobnost}, zagotavlja, da se večina besed pomensko enostavno prevaja v besede v ciljnem jeziku po pravilu "ena-na-ena", torej ena beseda izvornega jezika se prevede v eno besedo v ciljnem jeziku. Tako je izdelava slovarjev enostavna in napake so redke. 
\begin{unbreakableexample}[h!]
\begin{example}
\gll Odprto okno.
	odprto-\emph{pridevnik, srednji spol} okno-\emph{samostalnik, srednji spol}
\glt ''Odprto okno.'' (SLO)
\glend	
\gll Otvoren prozor.
	otvoren-\emph{pridevnik, moški spol} prozor-\emph{samostalnik, moški spol}
\glt ''Otvoren prozor.'' (SR)
\glend	
\label{example:leksikalna11}
\end{example}
\end{unbreakableexample}
\begin{unbreakableexample}
\begin{example}
\gll ptič je letel
	ptič-\emph{sam, m, ed} biti-\emph{p. glag, ed} letete-\emph{glag, m, ed, preteklik}
\glt ''ptič je letel'' (SLO)
\glend	
\gll ptica je letela
	ptica-\emph{sam, ž, ed} jesam-\emph{p. glag, ed} voziti-\emph{glag, ž, ed, preteklik}
\glt ''ptica je letela'' (SR)
\glend	
\label{example:praviloleksikalna1}
\end{example}
\end{unbreakableexample}

\begin{unbreakableexample}
\begin{example}
\gll Kolo, bilo je rdeče, je vozilo...
  kolo-\emph{sam, sr, ed} biti-\emph{p. glag, ed, pret} biti-\emph{p. glag, ed} rdeče-\emph{prid, sr, ed, m} biti-\emph{p. glag, ed} voziti-\emph{glag, sr, ed, pret}
\glt ''Kolo, bilo je rdeče, je vozilo...'' (SLO)
\glend  
\gll Bicikl, bio je crven, je vozilo...
  bicikl-\emph{sam, m, ed} biti-\emph{p. glag, ed, pret} jesam-\emph{p. glag, ed} crven-\emph{prid, m, ed, m} biti-\emph{p. glag, ed} voziti-\emph{glag, sr, ed, pret}
\glt ''Bicikl, bio je crven, je vozilo(NAPAKA)...'' (SR)
\glend  
\label{example:leksikalna2}
\end{example}
\end{unbreakableexample}
Kljub temu pa obstajajo izjeme, ki jih poskušamo opisati s pomočjo razširitve dvojezičnih slovarjev z oblikoskladenjskimi podatki in s pomočjo pravil.

Oglejmo si dva primera na jezikovnem paru slovenščina\index{slovenščina}-srbščina\index{srbščina}. Med tema dvema jezikoma obstaja nekaj samostalnikov, ki so različnih spolov v obeh jezikih. Primer je opisan v razdelku \ref{section:leksikalnapodobnost} in predstavljen s primerom \ref{example:leksikalna1}. Vsebina primera je zaradi lažje predstavitve ponovno prikazana s primerom \ref{example:leksikalna11}. Pri prevod\index{prevod}u besede \emph{okno} v srbsko besedo \emph{prozor} kaže spremembo spola iz srednjega v moški. V obeh jezikih se pridevnik ujema s samostalnikom v spolu, številu in sklonu.

Na sliki \ref{fig:praviloleksikalna1} je zapisano pravilo\index{pravilo} za lokalno ujemanje\index{ujemanje} pridevnika in samostalnika, ki popravi napako, ki jo povzroči sprememba spola pri samostalniku.

\begin{figure}[h!]
\footnotesize
\begin{quote}
\begin{verbatim}
<rule>
  <pattern>
    <pattern-item n="pridevnik"/>
    <pattern-item n="samostalnik"/>
  </pattern>
  <action>
    <out>
      <lu>
        <clip pos="1" side="tl" part="lema"/>
        <clip pos="1" side="tl" part="pridevnik"/>
        <clip pos="2" side="tl" part="spol"/>
        <clip pos="2" side="tl" part="število"/>
        <clip pos="2" side="tl" part="sklon"/>
        <clip pos="1" side="tl" part="stopnja"/>
        <clip pos="2" side="tl" part="določnost"/>
      </lu>
      <b pos="1"/>
      <lu>
        <clip pos="2" side="tl" part="lema"/>
        <clip pos="2" side="tl" part="samostalnik"/>
        <clip pos="2" side="tl" part="spol"/>
        <clip pos="2" side="tl" part="število"/>
        <clip pos="2" side="tl" part="sklon"/>
      </lu>
    </out>
  </action>
</rule>
\end{verbatim}
\end{quote}
\normalsize
\caption{\small Pravilo\index{pravilo} ujemanja\index{ujemanje} pridevnika in samostalnika, ki si sledita. Besedi se morata ujemati v spolu, sklonu in številu. Pri prevajanju se spreminjajo oblikoskladenjske kategorije samostalnika in ne pridevnika, zato je ujemanje\index{ujemanje} vezano na samostalnik.}
\label{fig:praviloleksikalna1}
\end{figure}

Pridevnik in samostalnik v pravilu na sliki \ref{example:praviloleksikalna1} se morata ujemati v spolu, številu in sklonu. Ujemanje je vezano na samostalnik. Ob spremembi teh lastnosti pri prevodu se popravijo oznake pri pridevniku.

Primer \ref{example:praviloleksikalna1} kaže ujemanje\index{ujemanje} samostalnika, pomožnega glagola leme \emph{jesam -- biti} ter glagola v obeh jezikih (SLO, SR).

Na sliki \ref{fig:praviloleksikalna2} je zapisano pravilo\index{pravilo} za lokalno ujemanje\index{ujemanje} samostalnika, pomožnega glagola leme \emph{jesam -- biti} in glagola.

Pravila\index{pravilo} lokalnega ujemanja\index{ujemanje} so omejena na fiksno določeno okolico in ne zajamejo oddaljenih odvisnosti (long-distance dependencies). 

\begin{figure}[h]
\footnotesize
\begin{quote}
\begin{verbatim}
<rule>
  <pattern>
    <pattern-item n="samostalnik"/>
    <pattern-item n="pomožni glagol jesam (biti)"/>
    <pattern-item n="glavni glagol"/>
  </pattern>
  <action>
    <out>
      <lu>
        <clip pos="1" side="tl" part="lema"/>
        <clip pos="1" side="tl" part="samostalnik_0"/>
        <clip pos="1" side="tl" part="samostalnik_1"/>
        <clip pos="1" side="tl" part="samostalnik_2"/>
        <clip pos="1" side="tl" part="samostalnik_3"/>
      </lu>
      <b pos="1"/>
      <lu>
        <clip pos="2" side="tl" part="lema"/>
        <clip pos="2" side="tl" part="pomožni glagol_0"/>
        <clip pos="2" side="tl" part="pomožni glagol_1"/>
        <clip pos="2" side="tl" part="pomožni glagol_2"/>
        <clip pos="1" side="tl" part="samostalnik_2/>
        <clip pos="2" side="tl" part="pomožni glagol_4"/>
      </lu>
      <b pos="2"/>
      <lu>
        <clip pos="3" side="tl" part="lema"/>
        <clip pos="3" side="tl" part="glavni glagol_0"/>
        <clip pos="3" side="tl" part="glavni glagol_1"/>
        <clip pos="1" side="tl" part="samostalnik_2"/>
        <clip pos="1" side="tl" part="samostalnik_3"/>
      </lu>
    </out>
  </action>
</rule>
\end{verbatim}
\end{quote}
\normalsize
\caption{\small Pravilo\index{pravilo} ujemanja\index{ujemanje} samostalnika, pomožnega glagola leme \emph{jesam -- biti} in glagola. Pomožni glagol in samostalnik se ujemata v številu, samostalnik in glagol na tretjem mestu se ujemata v spolu in številu.}
\label{fig:praviloleksikalna2}
\end{figure}

Primer \ref{example:leksikalna2} kaže poved, pri kateri s pravili lokalnega ujemanja\index{ujemanje} ne moremo popraviti možnih napak. Vrinjeni stavki so poljubne dolžine in jih ne moremo opisati s pomočjo vzorcev končne dolžine, kakršne uporablja Apertium. Sistemi plitkega prenosa\index{plitki prenos} takšnih odvisnosti ne zajamejo in pri njihovi uporabi se zanašamo na podobnost\index{podobnost} med jeziki, pri katerih naj bi bilo takšnih problemov malo.