# Preprocessing & ==> & < ==> < > ==> > \r ==> # XML/HTML entities & ==> & \< ==> < \> ==> > # Punctuation, paragraphs, spaces ([×/,.():"»«?!'“”°‘’…•\-_&–—©*%#=}$@{\[\]+;]) ==> $1 &((amp)|(lt)|(gt)); ==> &$1; # \.\.(\.)+ ==> $txt ^ ==>

$ ==>

\s ==> # Words ==> ==> ==>

==>

==>

# Cleanup

(\n*) ==>

$1 ==> # E-mail (case-insensitive regex matching is denoted with '-->') ([\p{L}0-9_-]+\.)*[\p{L}0-9_-]+@((([0-9a-z~]+)|([_!*'()-]))+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6} --> $txt # URL (((ftp)|(https?))://)?((([0-9a-z~]+)|([_!*'()-]))+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6}(/(([0-9a-z~]+)|([_!*'().;?:@=+$,%#-])|(&))+)*/? --> $txt # Brioni rule #2: locuj dva kosa z obojesticno piko, ce je drugi z veliko zacetnico ([^<.]+)\.(\p{Lu}) ==> $1.
$2 ([^<]+)-((a)|(evemu)|(evskega)|(i)|(jevega)|(jevska)|(jevskimi)|(jinemu)|(oma)|(ovim)|(ovski)|(e)|(evi)|(evskem)|(ih)|(jevem)|(jevske)|(jevsko)|(jini)|(ov)|(ovima)|(ovskih)|(em)|(evih)|(evskemu)|(ja)|(jevemu)|(jevskega)|(ji)|(jinih)|(ova)|(ovimi)|(ovskim)|(ema)|(evim)|(evski)|(je)|(jevi)|(jevskem)|(jih)|(jinim)|(ove)|(ovo)|(ovskima)|(ev)|(evima)|(evskih)|(jem)|(jevih)|(jevskemu)|(jin)|(jinima)|(ovega)|(ovska)|(ovskimi)|(eva)|(evimi)|(evskim)|(jema)|(jevim)|(jevski)|(jina)|(jinimi)|(ovem)|(ovske)|(ovsko)|(eve)|(evo)|(evskima)|(jev)|(jevima)|(jevskih)|(jine)|(jino)|(ovemu)|(ovskega)|(u)|(evega)|(evska)|(evskimi)|(jeva)|(jevimi)|(jevskim)|(jinega)|(ju)|(ovi)|(ovskem)|(evem)|(evske)|(evsko)|(jeve)|(jevo)|(jevskima)|(jinem)|(om)|(ovih)|(ovskemu)) ==> $1-$2 (\d+)-((timi)|(im)|(ima)|(a)|(imi)|(e)|(o)|(ega)|(ti)|(em)|(tih)|(emu)|(tim)|(i)|(tima)|(ih)|(ta)|(te)|(to)|(tega)|(tem)|(temu)) ==> $1-$2 ' ==> ' (\d+)([.,:])(\d+) ==> $1$2$3 ((\p{L})|([Oo]k)|(Ur)|([Dd]r)|([Šš]t)|([Ss]tr)|([Oo]z)|([Ii]td)|([Nn]pr)|([Ss]v)|([Ii]tn)|([Tt]el)|([Oo]dst)|([Mm]ed)|([Ii]pd)|([Aa]ngl)|([Zz]v)|([Zz]ap)|([Pp]rof)|([Oo]p)|([Mm]ag)|([Ii]t)|([Pp]rim)|([Oo]pr)|([Mm]l)|([Ii]nv)|([Ii]dr)|([Ss]p)|([Oo]pr)|([Mm]ag)|([Mm]r))\. ==> $1. ((agr)|(dipl)|(univ)|(zg)|(co)|(doc)|(al)|(pr)|(st)|(tč)|(tj)|(inž))\. --> $1. # Sentence splitting

==>

==>

(([.?!…])|(\.\.\.+))(\p{Lu}) ==> $1$4 (([.?!…])|(\.\.\.+))(["»“‘'])(\p{Lu}) ==> $1$4$5 (([.?!…])|(\.\.\.+))(["»“‘'])(\p{Lu}) ==> $1$4$5 (([.?!…])|(\.\.\.+))(["«”’'])(\p{Lu}) ==> $1$4$5 (([.?!…])|(\.\.\.+))([«”’])(\p{Lu}) ==> $1$4$5 (([.?!…])|(\.\.\.+))(["«”’'])\)(\p{Lu}) ==> $1$4)$5 (([.?!…])|(\.\.\.+))(["«”’'])\)(\p{Lu}) ==> $1$4)$5 (([.?!…])|(\.\.\.+))\( ==> $1( ==> # Brioni rule #8: dodaj segmentacijo med dva navedka po obstojecih pravilih (["«”’'])(["»“‘']) ==> $1$2 # Brioni rule #10: sprobajmo koncno locilo + zaklepaj + velika zacetnica (razclenitev stavka) (([.?!…])|(\.\.\.+))\)(\p{Lu}) ==> $1)$4 (([.?!…])|(\.\.\.+))\)(\p{Lu}) ==> $1)$4 # Brioni rule #13: številke/crke postanejo naštevanje samo na zacetku stavka # Brioni rule #11: iz združevanja števka + pika izloci nic (samo nic!) # Brioni rule #5: dodaj rimske številke s piko (tako kot arabske) ((([1-9][0-9]*)|([ivxIVX]+))|(\p{L}))\. ==> $1. # Brioni rule #4: števke + pika + mala zacetnica: vedno združuj in piko daj v token # Brioni rule #11: iz združevanja števka + pika izloci nic (samo nic!) # Brioni rule #5: dodaj rimske številke s piko (tako kot arabske) (([1-9][0-9]*)|([ivxIVX]+))\.(\p{Ll}) ==> $1.$4 # Dates ([1-9]\d*)\.([1-9]\d*)\. ==> $1.$2. # Brioni rule #7: mogoce sprobati števke kot velike zacetnice (([.?!…])|(\.\.\.+))([0-9]) ==> $1$4 # Fix letter + dot errors (\p{Ll})\.(\p{Lu}) ==> $1.$2