blob: 259fa6095aa05b225553be27b453a175cb9bf312 [file] [log] [blame]
source all/allpref.xfst
define Caseinsensitive [
a (->) A,
b (->) B,
c (->) C,
d (->) D,
e (->) E,
f (->) F,
g (->) G,
h (->) H,
i (->) I,
j (->) J,
k (->) K,
l (->) L,
m (->) M,
n (->) N,
o (->) O,
p (->) P,
q (->) Q,
r (->) R,
s (->) S,
t (->) T,
u (->) U,
v (->) V,
w (->) W,
x (->) X,
y (->) Y,
z (->) Z,
ö (->) Ö,
ü (->) Ü,
ä (->) Ä,
è (->) È,
é (->) É,
ú (->) Ú,
á (->) Á,
â (->) Â,
ê (->) Ê,
î (->) Î,
ô (->) Ô,
û (->) Û,
ß (->) {SS}
];
! Foma complains when this reuses the above definition
define CapitalCaseinsensitive [
a (->) A,
b (->) B,
c (->) C,
d (->) D,
e (->) E,
f (->) F,
g (->) G,
h (->) H,
i (->) I,
j (->) J,
k (->) K,
l (->) L,
m (->) M,
n (->) N,
o (->) O,
p (->) P,
q (->) Q,
r (->) R,
s (->) S,
t (->) T,
u (->) U,
v (->) V,
w (->) W,
x (->) X,
y (->) Y,
z (->) Z,
ö (->) Ö,
ü (->) Ü,
ä (->) Ä,
è (->) È,
é (->) É,
ú (->) Ú,
á (->) Á,
â (->) Â,
ê (->) Ê,
î (->) Î,
ô (->) Ô,
û (->) Û,
ß (->) {SS}
|| .#. _ ];
define Letter [ [ AsciiLetter | ö | ü | ä | è | é | ú | á | â | ê | î | ô | û | ß ] .o. Caseinsensitive ];
define NotSmallCaps [? - a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - z - ü - ö - ä - è - é - ú - á - â - ê - î - ô - û];
source en/clitics.xfst
# define Word Char+ (Apos Char+)*;
define Word [[ Char+ | Clitics ] - CliticsNTPart | CliticsNT];
define Plusampersand @txt"de/plusampersand.txt";
define Word [Plusampersand | Word] (Dash [Plusampersand | Word])*;
! Abbreviations and Initials
define Months [{Jan}|{Feb}|{Mar}|{Apr}|{Jun}|{Jul}|{Aug}|{Sep}(t)|{Oct}|{Nov}|{Dec}];
define Abbr [ [ @txt"en/abbrv.txt" | Letter | Months ] .o. CapitalCaseinsensitive ] %.;
source all/allpost.xfst
echo - Compile Real Token
define RealToken [Punct|Emdash|Abbr|Word|SNS|AcronymDep|Ord|Num|Years|Times|XMLEntities|Omission];
! Treatmeant for I as a word in "M. I. Baxter was killed in World War I. So was I."
define NonAbbrI [ {am}|{was}|{will}|{have}|{had}|{would}|{do}|{did}|{and}|{War}|{than}|{not}|[P|p]{art} ];
echo - Introduce Token splitter
define Token [
RealToken @-> ... NLout,
XML @-> ... NLout,
URL @-> ... NLout,
Email @-> ... NLout,
File @-> ... NLout,
Domain @-> ... NLout,
[Emoticons|Arrows] @-> ... NLout
]
! I as a separate token
.o. ["I" @-> ... NLout \/ NonAbbrI [WS | NLout ]+ _ ]
! Negative clitics are tokens
.o. [ {n't} ->@ NLout ... \/ NLout ];
source all/allsentencesplit.xfst
! foma -e "source tokenizer.xfst" -q -s && cat text.txt | flookup tokenizer.fst -x -b