856 lines
33 KiB
Python
856 lines
33 KiB
Python
|
# Generated by Snowball 2.2.0 - https://snowballstem.org/
|
||
|
|
||
|
from .basestemmer import BaseStemmer
|
||
|
from .among import Among
|
||
|
|
||
|
|
||
|
class YiddishStemmer(BaseStemmer):
|
||
|
'''
|
||
|
This class implements the stemming algorithm defined by a snowball script.
|
||
|
Generated by Snowball 2.2.0 - https://snowballstem.org/
|
||
|
'''
|
||
|
|
||
|
a_0 = [
|
||
|
Among(u"\u05D5\u05D5", -1, 1),
|
||
|
Among(u"\u05D5\u05D9", -1, 2),
|
||
|
Among(u"\u05D9\u05D9", -1, 3),
|
||
|
Among(u"\u05DA", -1, 4),
|
||
|
Among(u"\u05DD", -1, 5),
|
||
|
Among(u"\u05DF", -1, 6),
|
||
|
Among(u"\u05E3", -1, 7),
|
||
|
Among(u"\u05E5", -1, 8)
|
||
|
]
|
||
|
|
||
|
a_1 = [
|
||
|
Among(u"\u05D0\u05D3\u05D5\u05E8\u05DB", -1, 1),
|
||
|
Among(u"\u05D0\u05D4\u05D9\u05E0", -1, 1),
|
||
|
Among(u"\u05D0\u05D4\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05D0\u05D4\u05F2\u05DE", -1, 1),
|
||
|
Among(u"\u05D0\u05D5\u05DE", -1, 1),
|
||
|
Among(u"\u05D0\u05D5\u05E0\u05D8\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05D0\u05D9\u05D1\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05D0\u05E0", -1, 1),
|
||
|
Among(u"\u05D0\u05E0\u05D8", 7, 1),
|
||
|
Among(u"\u05D0\u05E0\u05D8\u05E7\u05E2\u05D2\u05E0", 8, 1),
|
||
|
Among(u"\u05D0\u05E0\u05D9\u05D3\u05E2\u05E8", 7, 1),
|
||
|
Among(u"\u05D0\u05E4", -1, 1),
|
||
|
Among(u"\u05D0\u05E4\u05D9\u05E8", 11, 1),
|
||
|
Among(u"\u05D0\u05E7\u05E2\u05D2\u05E0", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05D0\u05E4", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05D5\u05DE", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05D5\u05E0\u05D8\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05D9\u05D1\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05F1\u05E1", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05F1\u05E4", -1, 1),
|
||
|
Among(u"\u05D0\u05E8\u05F2\u05E0", -1, 1),
|
||
|
Among(u"\u05D0\u05F0\u05E2\u05E7", -1, 1),
|
||
|
Among(u"\u05D0\u05F1\u05E1", -1, 1),
|
||
|
Among(u"\u05D0\u05F1\u05E4", -1, 1),
|
||
|
Among(u"\u05D0\u05F2\u05E0", -1, 1),
|
||
|
Among(u"\u05D1\u05D0", -1, 1),
|
||
|
Among(u"\u05D1\u05F2", -1, 1),
|
||
|
Among(u"\u05D3\u05D5\u05E8\u05DB", -1, 1),
|
||
|
Among(u"\u05D3\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05DE\u05D9\u05D8", -1, 1),
|
||
|
Among(u"\u05E0\u05D0\u05DB", -1, 1),
|
||
|
Among(u"\u05E4\u05D0\u05E8", -1, 1),
|
||
|
Among(u"\u05E4\u05D0\u05E8\u05D1\u05F2", 31, 1),
|
||
|
Among(u"\u05E4\u05D0\u05E8\u05F1\u05E1", 31, 1),
|
||
|
Among(u"\u05E4\u05D5\u05E0\u05D0\u05E0\u05D3\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05E6\u05D5", -1, 1),
|
||
|
Among(u"\u05E6\u05D5\u05D6\u05D0\u05DE\u05E2\u05E0", 35, 1),
|
||
|
Among(u"\u05E6\u05D5\u05E0\u05F1\u05E4", 35, 1),
|
||
|
Among(u"\u05E6\u05D5\u05E8\u05D9\u05E7", 35, 1),
|
||
|
Among(u"\u05E6\u05E2", -1, 1)
|
||
|
]
|
||
|
|
||
|
a_2 = [
|
||
|
Among(u"\u05D3\u05D6\u05E9", -1, -1),
|
||
|
Among(u"\u05E9\u05D8\u05E8", -1, -1),
|
||
|
Among(u"\u05E9\u05D8\u05E9", -1, -1),
|
||
|
Among(u"\u05E9\u05E4\u05E8", -1, -1)
|
||
|
]
|
||
|
|
||
|
a_3 = [
|
||
|
Among(u"\u05E7\u05DC\u05D9\u05D1", -1, 9),
|
||
|
Among(u"\u05E8\u05D9\u05D1", -1, 10),
|
||
|
Among(u"\u05D8\u05E8\u05D9\u05D1", 1, 7),
|
||
|
Among(u"\u05E9\u05E8\u05D9\u05D1", 1, 15),
|
||
|
Among(u"\u05D4\u05F1\u05D1", -1, 23),
|
||
|
Among(u"\u05E9\u05F0\u05D9\u05D2", -1, 12),
|
||
|
Among(u"\u05D2\u05D0\u05E0\u05D2", -1, 1),
|
||
|
Among(u"\u05D6\u05D5\u05E0\u05D2", -1, 18),
|
||
|
Among(u"\u05E9\u05DC\u05D5\u05E0\u05D2", -1, 21),
|
||
|
Among(u"\u05E6\u05F0\u05D5\u05E0\u05D2", -1, 20),
|
||
|
Among(u"\u05D1\u05F1\u05D2", -1, 22),
|
||
|
Among(u"\u05D1\u05D5\u05E0\u05D3", -1, 16),
|
||
|
Among(u"\u05F0\u05D9\u05D6", -1, 6),
|
||
|
Among(u"\u05D1\u05D9\u05D8", -1, 4),
|
||
|
Among(u"\u05DC\u05D9\u05D8", -1, 8),
|
||
|
Among(u"\u05DE\u05D9\u05D8", -1, 3),
|
||
|
Among(u"\u05E9\u05E0\u05D9\u05D8", -1, 14),
|
||
|
Among(u"\u05E0\u05D5\u05DE", -1, 2),
|
||
|
Among(u"\u05E9\u05D8\u05D0\u05E0", -1, 25),
|
||
|
Among(u"\u05D1\u05D9\u05E1", -1, 5),
|
||
|
Among(u"\u05E9\u05DE\u05D9\u05E1", -1, 13),
|
||
|
Among(u"\u05E8\u05D9\u05E1", -1, 11),
|
||
|
Among(u"\u05D8\u05E8\u05D5\u05E0\u05E7", -1, 19),
|
||
|
Among(u"\u05E4\u05D0\u05E8\u05DC\u05F1\u05E8", -1, 24),
|
||
|
Among(u"\u05E9\u05F0\u05F1\u05E8", -1, 26),
|
||
|
Among(u"\u05F0\u05D5\u05D8\u05E9", -1, 17)
|
||
|
]
|
||
|
|
||
|
a_4 = [
|
||
|
Among(u"\u05D5\u05E0\u05D2", -1, 1),
|
||
|
Among(u"\u05E1\u05D8\u05D5", -1, 1),
|
||
|
Among(u"\u05D8", -1, 1),
|
||
|
Among(u"\u05D1\u05E8\u05D0\u05DB\u05D8", 2, 31),
|
||
|
Among(u"\u05E1\u05D8", 2, 1),
|
||
|
Among(u"\u05D9\u05E1\u05D8", 4, 33),
|
||
|
Among(u"\u05E2\u05D8", 2, 1),
|
||
|
Among(u"\u05E9\u05D0\u05E4\u05D8", 2, 1),
|
||
|
Among(u"\u05D4\u05F2\u05D8", 2, 1),
|
||
|
Among(u"\u05E7\u05F2\u05D8", 2, 1),
|
||
|
Among(u"\u05D9\u05E7\u05F2\u05D8", 9, 1),
|
||
|
Among(u"\u05DC\u05E2\u05DB", -1, 1),
|
||
|
Among(u"\u05E2\u05DC\u05E2\u05DB", 11, 1),
|
||
|
Among(u"\u05D9\u05D6\u05DE", -1, 1),
|
||
|
Among(u"\u05D9\u05DE", -1, 1),
|
||
|
Among(u"\u05E2\u05DE", -1, 1),
|
||
|
Among(u"\u05E2\u05E0\u05E2\u05DE", 15, 3),
|
||
|
Among(u"\u05D8\u05E2\u05E0\u05E2\u05DE", 16, 4),
|
||
|
Among(u"\u05E0", -1, 1),
|
||
|
Among(u"\u05E7\u05DC\u05D9\u05D1\u05E0", 18, 14),
|
||
|
Among(u"\u05E8\u05D9\u05D1\u05E0", 18, 15),
|
||
|
Among(u"\u05D8\u05E8\u05D9\u05D1\u05E0", 20, 12),
|
||
|
Among(u"\u05E9\u05E8\u05D9\u05D1\u05E0", 20, 7),
|
||
|
Among(u"\u05D4\u05F1\u05D1\u05E0", 18, 27),
|
||
|
Among(u"\u05E9\u05F0\u05D9\u05D2\u05E0", 18, 17),
|
||
|
Among(u"\u05D6\u05D5\u05E0\u05D2\u05E0", 18, 22),
|
||
|
Among(u"\u05E9\u05DC\u05D5\u05E0\u05D2\u05E0", 18, 25),
|
||
|
Among(u"\u05E6\u05F0\u05D5\u05E0\u05D2\u05E0", 18, 24),
|
||
|
Among(u"\u05D1\u05F1\u05D2\u05E0", 18, 26),
|
||
|
Among(u"\u05D1\u05D5\u05E0\u05D3\u05E0", 18, 20),
|
||
|
Among(u"\u05F0\u05D9\u05D6\u05E0", 18, 11),
|
||
|
Among(u"\u05D8\u05E0", 18, 4),
|
||
|
Among(u"GE\u05D1\u05D9\u05D8\u05E0", 31, 9),
|
||
|
Among(u"GE\u05DC\u05D9\u05D8\u05E0", 31, 13),
|
||
|
Among(u"GE\u05DE\u05D9\u05D8\u05E0", 31, 8),
|
||
|
Among(u"\u05E9\u05E0\u05D9\u05D8\u05E0", 31, 19),
|
||
|
Among(u"\u05E1\u05D8\u05E0", 31, 1),
|
||
|
Among(u"\u05D9\u05E1\u05D8\u05E0", 36, 1),
|
||
|
Among(u"\u05E2\u05D8\u05E0", 31, 1),
|
||
|
Among(u"GE\u05D1\u05D9\u05E1\u05E0", 18, 10),
|
||
|
Among(u"\u05E9\u05DE\u05D9\u05E1\u05E0", 18, 18),
|
||
|
Among(u"GE\u05E8\u05D9\u05E1\u05E0", 18, 16),
|
||
|
Among(u"\u05E2\u05E0", 18, 1),
|
||
|
Among(u"\u05D2\u05D0\u05E0\u05D2\u05E2\u05E0", 42, 5),
|
||
|
Among(u"\u05E2\u05DC\u05E2\u05E0", 42, 1),
|
||
|
Among(u"\u05E0\u05D5\u05DE\u05E2\u05E0", 42, 6),
|
||
|
Among(u"\u05D9\u05D6\u05DE\u05E2\u05E0", 42, 1),
|
||
|
Among(u"\u05E9\u05D8\u05D0\u05E0\u05E2\u05E0", 42, 29),
|
||
|
Among(u"\u05D8\u05E8\u05D5\u05E0\u05E7\u05E0", 18, 23),
|
||
|
Among(u"\u05E4\u05D0\u05E8\u05DC\u05F1\u05E8\u05E0", 18, 28),
|
||
|
Among(u"\u05E9\u05F0\u05F1\u05E8\u05E0", 18, 30),
|
||
|
Among(u"\u05F0\u05D5\u05D8\u05E9\u05E0", 18, 21),
|
||
|
Among(u"\u05D2\u05F2\u05E0", 18, 5),
|
||
|
Among(u"\u05E1", -1, 1),
|
||
|
Among(u"\u05D8\u05E1", 53, 4),
|
||
|
Among(u"\u05E2\u05D8\u05E1", 54, 1),
|
||
|
Among(u"\u05E0\u05E1", 53, 1),
|
||
|
Among(u"\u05D8\u05E0\u05E1", 56, 4),
|
||
|
Among(u"\u05E2\u05E0\u05E1", 56, 3),
|
||
|
Among(u"\u05E2\u05E1", 53, 1),
|
||
|
Among(u"\u05D9\u05E2\u05E1", 59, 2),
|
||
|
Among(u"\u05E2\u05DC\u05E2\u05E1", 59, 1),
|
||
|
Among(u"\u05E2\u05E8\u05E1", 53, 1),
|
||
|
Among(u"\u05E2\u05E0\u05E2\u05E8\u05E1", 62, 1),
|
||
|
Among(u"\u05E2", -1, 1),
|
||
|
Among(u"\u05D8\u05E2", 64, 4),
|
||
|
Among(u"\u05E1\u05D8\u05E2", 65, 1),
|
||
|
Among(u"\u05E2\u05D8\u05E2", 65, 1),
|
||
|
Among(u"\u05D9\u05E2", 64, -1),
|
||
|
Among(u"\u05E2\u05DC\u05E2", 64, 1),
|
||
|
Among(u"\u05E2\u05E0\u05E2", 64, 3),
|
||
|
Among(u"\u05D8\u05E2\u05E0\u05E2", 70, 4),
|
||
|
Among(u"\u05E2\u05E8", -1, 1),
|
||
|
Among(u"\u05D8\u05E2\u05E8", 72, 4),
|
||
|
Among(u"\u05E1\u05D8\u05E2\u05E8", 73, 1),
|
||
|
Among(u"\u05E2\u05D8\u05E2\u05E8", 73, 1),
|
||
|
Among(u"\u05E2\u05E0\u05E2\u05E8", 72, 3),
|
||
|
Among(u"\u05D8\u05E2\u05E0\u05E2\u05E8", 76, 4),
|
||
|
Among(u"\u05D5\u05EA", -1, 32)
|
||
|
]
|
||
|
|
||
|
a_5 = [
|
||
|
Among(u"\u05D5\u05E0\u05D2", -1, 1),
|
||
|
Among(u"\u05E9\u05D0\u05E4\u05D8", -1, 1),
|
||
|
Among(u"\u05D4\u05F2\u05D8", -1, 1),
|
||
|
Among(u"\u05E7\u05F2\u05D8", -1, 1),
|
||
|
Among(u"\u05D9\u05E7\u05F2\u05D8", 3, 1),
|
||
|
Among(u"\u05DC", -1, 2)
|
||
|
]
|
||
|
|
||
|
a_6 = [
|
||
|
Among(u"\u05D9\u05D2", -1, 1),
|
||
|
Among(u"\u05D9\u05E7", -1, 1),
|
||
|
Among(u"\u05D3\u05D9\u05E7", 1, 1),
|
||
|
Among(u"\u05E0\u05D3\u05D9\u05E7", 2, 1),
|
||
|
Among(u"\u05E2\u05E0\u05D3\u05D9\u05E7", 3, 1),
|
||
|
Among(u"\u05D1\u05DC\u05D9\u05E7", 1, -1),
|
||
|
Among(u"\u05D2\u05DC\u05D9\u05E7", 1, -1),
|
||
|
Among(u"\u05E0\u05D9\u05E7", 1, 1),
|
||
|
Among(u"\u05D9\u05E9", -1, 1)
|
||
|
]
|
||
|
|
||
|
g_niked = [255, 155, 6]
|
||
|
|
||
|
g_vowel = [33, 2, 4, 0, 6]
|
||
|
|
||
|
g_consonant = [239, 254, 253, 131]
|
||
|
|
||
|
I_x = 0
|
||
|
I_p1 = 0
|
||
|
|
||
|
def __r_prelude(self):
|
||
|
v_1 = self.cursor
|
||
|
try:
|
||
|
while True:
|
||
|
v_2 = self.cursor
|
||
|
try:
|
||
|
try:
|
||
|
while True:
|
||
|
v_3 = self.cursor
|
||
|
try:
|
||
|
self.bra = self.cursor
|
||
|
among_var = self.find_among(YiddishStemmer.a_0)
|
||
|
if among_var == 0:
|
||
|
raise lab3()
|
||
|
self.ket = self.cursor
|
||
|
if among_var == 1:
|
||
|
v_4 = self.cursor
|
||
|
try:
|
||
|
if not self.eq_s(u"\u05BC"):
|
||
|
raise lab4()
|
||
|
raise lab3()
|
||
|
except lab4: pass
|
||
|
self.cursor = v_4
|
||
|
if not self.slice_from(u"\u05F0"):
|
||
|
return False
|
||
|
elif among_var == 2:
|
||
|
v_5 = self.cursor
|
||
|
try:
|
||
|
if not self.eq_s(u"\u05B4"):
|
||
|
raise lab5()
|
||
|
raise lab3()
|
||
|
except lab5: pass
|
||
|
self.cursor = v_5
|
||
|
if not self.slice_from(u"\u05F1"):
|
||
|
return False
|
||
|
elif among_var == 3:
|
||
|
v_6 = self.cursor
|
||
|
try:
|
||
|
if not self.eq_s(u"\u05B4"):
|
||
|
raise lab6()
|
||
|
raise lab3()
|
||
|
except lab6: pass
|
||
|
self.cursor = v_6
|
||
|
if not self.slice_from(u"\u05F2"):
|
||
|
return False
|
||
|
elif among_var == 4:
|
||
|
if not self.slice_from(u"\u05DB"):
|
||
|
return False
|
||
|
elif among_var == 5:
|
||
|
if not self.slice_from(u"\u05DE"):
|
||
|
return False
|
||
|
elif among_var == 6:
|
||
|
if not self.slice_from(u"\u05E0"):
|
||
|
return False
|
||
|
elif among_var == 7:
|
||
|
if not self.slice_from(u"\u05E4"):
|
||
|
return False
|
||
|
else:
|
||
|
if not self.slice_from(u"\u05E6"):
|
||
|
return False
|
||
|
self.cursor = v_3
|
||
|
raise lab2()
|
||
|
except lab3: pass
|
||
|
self.cursor = v_3
|
||
|
if self.cursor >= self.limit:
|
||
|
raise lab1()
|
||
|
self.cursor += 1
|
||
|
except lab2: pass
|
||
|
continue
|
||
|
except lab1: pass
|
||
|
self.cursor = v_2
|
||
|
break
|
||
|
except lab0: pass
|
||
|
self.cursor = v_1
|
||
|
v_7 = self.cursor
|
||
|
try:
|
||
|
while True:
|
||
|
v_8 = self.cursor
|
||
|
try:
|
||
|
try:
|
||
|
while True:
|
||
|
v_9 = self.cursor
|
||
|
try:
|
||
|
self.bra = self.cursor
|
||
|
if not self.in_grouping(YiddishStemmer.g_niked, 1456, 1474):
|
||
|
raise lab10()
|
||
|
self.ket = self.cursor
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
self.cursor = v_9
|
||
|
raise lab9()
|
||
|
except lab10: pass
|
||
|
self.cursor = v_9
|
||
|
if self.cursor >= self.limit:
|
||
|
raise lab8()
|
||
|
self.cursor += 1
|
||
|
except lab9: pass
|
||
|
continue
|
||
|
except lab8: pass
|
||
|
self.cursor = v_8
|
||
|
break
|
||
|
except lab7: pass
|
||
|
self.cursor = v_7
|
||
|
return True
|
||
|
|
||
|
def __r_mark_regions(self):
|
||
|
self.I_p1 = self.limit
|
||
|
v_1 = self.cursor
|
||
|
try:
|
||
|
self.bra = self.cursor
|
||
|
if not self.eq_s(u"\u05D2\u05E2"):
|
||
|
self.cursor = v_1
|
||
|
raise lab0()
|
||
|
self.ket = self.cursor
|
||
|
v_2 = self.cursor
|
||
|
try:
|
||
|
try:
|
||
|
v_3 = self.cursor
|
||
|
try:
|
||
|
if not self.eq_s(u"\u05DC\u05D8"):
|
||
|
raise lab3()
|
||
|
raise lab2()
|
||
|
except lab3: pass
|
||
|
self.cursor = v_3
|
||
|
if not self.eq_s(u"\u05D1\u05E0"):
|
||
|
raise lab1()
|
||
|
except lab2: pass
|
||
|
self.cursor = v_1
|
||
|
raise lab0()
|
||
|
except lab1: pass
|
||
|
self.cursor = v_2
|
||
|
if not self.slice_from(u"GE"):
|
||
|
return False
|
||
|
except lab0: pass
|
||
|
v_4 = self.cursor
|
||
|
try:
|
||
|
if self.find_among(YiddishStemmer.a_1) == 0:
|
||
|
self.cursor = v_4
|
||
|
raise lab4()
|
||
|
try:
|
||
|
v_5 = self.cursor
|
||
|
try:
|
||
|
v_6 = self.cursor
|
||
|
try:
|
||
|
v_7 = self.cursor
|
||
|
try:
|
||
|
if not self.eq_s(u"\u05E6\u05D5\u05D2\u05E0"):
|
||
|
raise lab8()
|
||
|
raise lab7()
|
||
|
except lab8: pass
|
||
|
self.cursor = v_7
|
||
|
try:
|
||
|
if not self.eq_s(u"\u05E6\u05D5\u05E7\u05D8"):
|
||
|
raise lab9()
|
||
|
raise lab7()
|
||
|
except lab9: pass
|
||
|
self.cursor = v_7
|
||
|
if not self.eq_s(u"\u05E6\u05D5\u05E7\u05E0"):
|
||
|
raise lab6()
|
||
|
except lab7: pass
|
||
|
if self.cursor < self.limit:
|
||
|
raise lab6()
|
||
|
self.cursor = v_6
|
||
|
raise lab5()
|
||
|
except lab6: pass
|
||
|
self.cursor = v_5
|
||
|
try:
|
||
|
v_8 = self.cursor
|
||
|
if not self.eq_s(u"\u05D2\u05E2\u05D1\u05E0"):
|
||
|
raise lab10()
|
||
|
self.cursor = v_8
|
||
|
raise lab5()
|
||
|
except lab10: pass
|
||
|
self.cursor = v_5
|
||
|
try:
|
||
|
self.bra = self.cursor
|
||
|
if not self.eq_s(u"\u05D2\u05E2"):
|
||
|
raise lab11()
|
||
|
self.ket = self.cursor
|
||
|
if not self.slice_from(u"GE"):
|
||
|
return False
|
||
|
raise lab5()
|
||
|
except lab11: pass
|
||
|
self.cursor = v_5
|
||
|
self.bra = self.cursor
|
||
|
if not self.eq_s(u"\u05E6\u05D5"):
|
||
|
self.cursor = v_4
|
||
|
raise lab4()
|
||
|
self.ket = self.cursor
|
||
|
if not self.slice_from(u"TSU"):
|
||
|
return False
|
||
|
except lab5: pass
|
||
|
except lab4: pass
|
||
|
v_9 = self.cursor
|
||
|
c = self.cursor + 3
|
||
|
if c > self.limit:
|
||
|
return False
|
||
|
self.cursor = c
|
||
|
self.I_x = self.cursor
|
||
|
self.cursor = v_9
|
||
|
v_10 = self.cursor
|
||
|
try:
|
||
|
if self.find_among(YiddishStemmer.a_2) == 0:
|
||
|
self.cursor = v_10
|
||
|
raise lab12()
|
||
|
except lab12: pass
|
||
|
v_11 = self.cursor
|
||
|
try:
|
||
|
if not self.in_grouping(YiddishStemmer.g_consonant, 1489, 1520):
|
||
|
raise lab13()
|
||
|
if not self.in_grouping(YiddishStemmer.g_consonant, 1489, 1520):
|
||
|
raise lab13()
|
||
|
if not self.in_grouping(YiddishStemmer.g_consonant, 1489, 1520):
|
||
|
raise lab13()
|
||
|
self.I_p1 = self.cursor
|
||
|
return False
|
||
|
except lab13: pass
|
||
|
self.cursor = v_11
|
||
|
if not self.go_out_grouping(YiddishStemmer.g_vowel, 1488, 1522):
|
||
|
return False
|
||
|
while True:
|
||
|
try:
|
||
|
if not self.in_grouping(YiddishStemmer.g_vowel, 1488, 1522):
|
||
|
raise lab14()
|
||
|
continue
|
||
|
except lab14: pass
|
||
|
break
|
||
|
self.I_p1 = self.cursor
|
||
|
try:
|
||
|
if not self.I_p1 < self.I_x:
|
||
|
raise lab15()
|
||
|
self.I_p1 = self.I_x
|
||
|
except lab15: pass
|
||
|
return True
|
||
|
|
||
|
def __r_R1(self):
|
||
|
if not self.I_p1 <= self.cursor:
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
def __r_R1plus3(self):
|
||
|
if not self.I_p1 <= (self.cursor + 3):
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
def __r_standard_suffix(self):
|
||
|
v_1 = self.limit - self.cursor
|
||
|
try:
|
||
|
self.ket = self.cursor
|
||
|
among_var = self.find_among_b(YiddishStemmer.a_4)
|
||
|
if among_var == 0:
|
||
|
raise lab0()
|
||
|
self.bra = self.cursor
|
||
|
if among_var == 1:
|
||
|
if not self.__r_R1():
|
||
|
raise lab0()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
elif among_var == 2:
|
||
|
if not self.__r_R1():
|
||
|
raise lab0()
|
||
|
if not self.slice_from(u"\u05D9\u05E2"):
|
||
|
return False
|
||
|
elif among_var == 3:
|
||
|
if not self.__r_R1():
|
||
|
raise lab0()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
self.ket = self.cursor
|
||
|
among_var = self.find_among_b(YiddishStemmer.a_3)
|
||
|
if among_var == 0:
|
||
|
raise lab0()
|
||
|
self.bra = self.cursor
|
||
|
if among_var == 1:
|
||
|
if not self.slice_from(u"\u05D2\u05F2"):
|
||
|
return False
|
||
|
elif among_var == 2:
|
||
|
if not self.slice_from(u"\u05E0\u05E2\u05DE"):
|
||
|
return False
|
||
|
elif among_var == 3:
|
||
|
if not self.slice_from(u"\u05DE\u05F2\u05D3"):
|
||
|
return False
|
||
|
elif among_var == 4:
|
||
|
if not self.slice_from(u"\u05D1\u05F2\u05D8"):
|
||
|
return False
|
||
|
elif among_var == 5:
|
||
|
if not self.slice_from(u"\u05D1\u05F2\u05E1"):
|
||
|
return False
|
||
|
elif among_var == 6:
|
||
|
if not self.slice_from(u"\u05F0\u05F2\u05D6"):
|
||
|
return False
|
||
|
elif among_var == 7:
|
||
|
if not self.slice_from(u"\u05D8\u05E8\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 8:
|
||
|
if not self.slice_from(u"\u05DC\u05F2\u05D8"):
|
||
|
return False
|
||
|
elif among_var == 9:
|
||
|
if not self.slice_from(u"\u05E7\u05DC\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 10:
|
||
|
if not self.slice_from(u"\u05E8\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 11:
|
||
|
if not self.slice_from(u"\u05E8\u05F2\u05E1"):
|
||
|
return False
|
||
|
elif among_var == 12:
|
||
|
if not self.slice_from(u"\u05E9\u05F0\u05F2\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 13:
|
||
|
if not self.slice_from(u"\u05E9\u05DE\u05F2\u05E1"):
|
||
|
return False
|
||
|
elif among_var == 14:
|
||
|
if not self.slice_from(u"\u05E9\u05E0\u05F2\u05D3"):
|
||
|
return False
|
||
|
elif among_var == 15:
|
||
|
if not self.slice_from(u"\u05E9\u05E8\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 16:
|
||
|
if not self.slice_from(u"\u05D1\u05D9\u05E0\u05D3"):
|
||
|
return False
|
||
|
elif among_var == 17:
|
||
|
if not self.slice_from(u"\u05F0\u05D9\u05D8\u05E9"):
|
||
|
return False
|
||
|
elif among_var == 18:
|
||
|
if not self.slice_from(u"\u05D6\u05D9\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 19:
|
||
|
if not self.slice_from(u"\u05D8\u05E8\u05D9\u05E0\u05E7"):
|
||
|
return False
|
||
|
elif among_var == 20:
|
||
|
if not self.slice_from(u"\u05E6\u05F0\u05D9\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 21:
|
||
|
if not self.slice_from(u"\u05E9\u05DC\u05D9\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 22:
|
||
|
if not self.slice_from(u"\u05D1\u05F2\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 23:
|
||
|
if not self.slice_from(u"\u05D4\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 24:
|
||
|
if not self.slice_from(u"\u05E4\u05D0\u05E8\u05DC\u05D9\u05E8"):
|
||
|
return False
|
||
|
elif among_var == 25:
|
||
|
if not self.slice_from(u"\u05E9\u05D8\u05F2"):
|
||
|
return False
|
||
|
else:
|
||
|
if not self.slice_from(u"\u05E9\u05F0\u05E2\u05E8"):
|
||
|
return False
|
||
|
elif among_var == 4:
|
||
|
try:
|
||
|
v_2 = self.limit - self.cursor
|
||
|
try:
|
||
|
if not self.__r_R1():
|
||
|
raise lab2()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
raise lab1()
|
||
|
except lab2: pass
|
||
|
self.cursor = self.limit - v_2
|
||
|
if not self.slice_from(u"\u05D8"):
|
||
|
return False
|
||
|
except lab1: pass
|
||
|
self.ket = self.cursor
|
||
|
if not self.eq_s_b(u"\u05D1\u05E8\u05D0\u05DB"):
|
||
|
raise lab0()
|
||
|
v_3 = self.limit - self.cursor
|
||
|
try:
|
||
|
if not self.eq_s_b(u"\u05D2\u05E2"):
|
||
|
self.cursor = self.limit - v_3
|
||
|
raise lab3()
|
||
|
except lab3: pass
|
||
|
self.bra = self.cursor
|
||
|
if not self.slice_from(u"\u05D1\u05E8\u05E2\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 5:
|
||
|
if not self.slice_from(u"\u05D2\u05F2"):
|
||
|
return False
|
||
|
elif among_var == 6:
|
||
|
if not self.slice_from(u"\u05E0\u05E2\u05DE"):
|
||
|
return False
|
||
|
elif among_var == 7:
|
||
|
if not self.slice_from(u"\u05E9\u05E8\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 8:
|
||
|
if not self.slice_from(u"\u05DE\u05F2\u05D3"):
|
||
|
return False
|
||
|
elif among_var == 9:
|
||
|
if not self.slice_from(u"\u05D1\u05F2\u05D8"):
|
||
|
return False
|
||
|
elif among_var == 10:
|
||
|
if not self.slice_from(u"\u05D1\u05F2\u05E1"):
|
||
|
return False
|
||
|
elif among_var == 11:
|
||
|
if not self.slice_from(u"\u05F0\u05F2\u05D6"):
|
||
|
return False
|
||
|
elif among_var == 12:
|
||
|
if not self.slice_from(u"\u05D8\u05E8\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 13:
|
||
|
if not self.slice_from(u"\u05DC\u05F2\u05D8"):
|
||
|
return False
|
||
|
elif among_var == 14:
|
||
|
if not self.slice_from(u"\u05E7\u05DC\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 15:
|
||
|
if not self.slice_from(u"\u05E8\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 16:
|
||
|
if not self.slice_from(u"\u05E8\u05F2\u05E1"):
|
||
|
return False
|
||
|
elif among_var == 17:
|
||
|
if not self.slice_from(u"\u05E9\u05F0\u05F2\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 18:
|
||
|
if not self.slice_from(u"\u05E9\u05DE\u05F2\u05E1"):
|
||
|
return False
|
||
|
elif among_var == 19:
|
||
|
if not self.slice_from(u"\u05E9\u05E0\u05F2\u05D3"):
|
||
|
return False
|
||
|
elif among_var == 20:
|
||
|
if not self.slice_from(u"\u05D1\u05D9\u05E0\u05D3"):
|
||
|
return False
|
||
|
elif among_var == 21:
|
||
|
if not self.slice_from(u"\u05F0\u05D9\u05D8\u05E9"):
|
||
|
return False
|
||
|
elif among_var == 22:
|
||
|
if not self.slice_from(u"\u05D6\u05D9\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 23:
|
||
|
if not self.slice_from(u"\u05D8\u05E8\u05D9\u05E0\u05E7"):
|
||
|
return False
|
||
|
elif among_var == 24:
|
||
|
if not self.slice_from(u"\u05E6\u05F0\u05D9\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 25:
|
||
|
if not self.slice_from(u"\u05E9\u05DC\u05D9\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 26:
|
||
|
if not self.slice_from(u"\u05D1\u05F2\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 27:
|
||
|
if not self.slice_from(u"\u05D4\u05F2\u05D1"):
|
||
|
return False
|
||
|
elif among_var == 28:
|
||
|
if not self.slice_from(u"\u05E4\u05D0\u05E8\u05DC\u05D9\u05E8"):
|
||
|
return False
|
||
|
elif among_var == 29:
|
||
|
if not self.slice_from(u"\u05E9\u05D8\u05F2"):
|
||
|
return False
|
||
|
elif among_var == 30:
|
||
|
if not self.slice_from(u"\u05E9\u05F0\u05E2\u05E8"):
|
||
|
return False
|
||
|
elif among_var == 31:
|
||
|
if not self.slice_from(u"\u05D1\u05E8\u05E2\u05E0\u05D2"):
|
||
|
return False
|
||
|
elif among_var == 32:
|
||
|
if not self.__r_R1():
|
||
|
raise lab0()
|
||
|
if not self.slice_from(u"\u05D4"):
|
||
|
return False
|
||
|
elif among_var == 33:
|
||
|
try:
|
||
|
v_4 = self.limit - self.cursor
|
||
|
try:
|
||
|
try:
|
||
|
v_5 = self.limit - self.cursor
|
||
|
try:
|
||
|
if not self.eq_s_b(u"\u05D2"):
|
||
|
raise lab7()
|
||
|
raise lab6()
|
||
|
except lab7: pass
|
||
|
self.cursor = self.limit - v_5
|
||
|
if not self.eq_s_b(u"\u05E9"):
|
||
|
raise lab5()
|
||
|
except lab6: pass
|
||
|
v_6 = self.limit - self.cursor
|
||
|
try:
|
||
|
if not self.__r_R1plus3():
|
||
|
self.cursor = self.limit - v_6
|
||
|
raise lab8()
|
||
|
if not self.slice_from(u"\u05D9\u05E1"):
|
||
|
return False
|
||
|
except lab8: pass
|
||
|
raise lab4()
|
||
|
except lab5: pass
|
||
|
self.cursor = self.limit - v_4
|
||
|
if not self.__r_R1():
|
||
|
raise lab0()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
except lab4: pass
|
||
|
except lab0: pass
|
||
|
self.cursor = self.limit - v_1
|
||
|
v_7 = self.limit - self.cursor
|
||
|
try:
|
||
|
self.ket = self.cursor
|
||
|
among_var = self.find_among_b(YiddishStemmer.a_5)
|
||
|
if among_var == 0:
|
||
|
raise lab9()
|
||
|
self.bra = self.cursor
|
||
|
if among_var == 1:
|
||
|
if not self.__r_R1():
|
||
|
raise lab9()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
else:
|
||
|
if not self.__r_R1():
|
||
|
raise lab9()
|
||
|
if not self.in_grouping_b(YiddishStemmer.g_consonant, 1489, 1520):
|
||
|
raise lab9()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
except lab9: pass
|
||
|
self.cursor = self.limit - v_7
|
||
|
v_8 = self.limit - self.cursor
|
||
|
try:
|
||
|
self.ket = self.cursor
|
||
|
among_var = self.find_among_b(YiddishStemmer.a_6)
|
||
|
if among_var == 0:
|
||
|
raise lab10()
|
||
|
self.bra = self.cursor
|
||
|
if among_var == 1:
|
||
|
if not self.__r_R1():
|
||
|
raise lab10()
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
except lab10: pass
|
||
|
self.cursor = self.limit - v_8
|
||
|
v_9 = self.limit - self.cursor
|
||
|
try:
|
||
|
while True:
|
||
|
v_10 = self.limit - self.cursor
|
||
|
try:
|
||
|
try:
|
||
|
while True:
|
||
|
v_11 = self.limit - self.cursor
|
||
|
try:
|
||
|
self.ket = self.cursor
|
||
|
try:
|
||
|
v_12 = self.limit - self.cursor
|
||
|
try:
|
||
|
if not self.eq_s_b(u"GE"):
|
||
|
raise lab16()
|
||
|
raise lab15()
|
||
|
except lab16: pass
|
||
|
self.cursor = self.limit - v_12
|
||
|
if not self.eq_s_b(u"TSU"):
|
||
|
raise lab14()
|
||
|
except lab15: pass
|
||
|
self.bra = self.cursor
|
||
|
if not self.slice_del():
|
||
|
return False
|
||
|
|
||
|
self.cursor = self.limit - v_11
|
||
|
raise lab13()
|
||
|
except lab14: pass
|
||
|
self.cursor = self.limit - v_11
|
||
|
if self.cursor <= self.limit_backward:
|
||
|
raise lab12()
|
||
|
self.cursor -= 1
|
||
|
except lab13: pass
|
||
|
continue
|
||
|
except lab12: pass
|
||
|
self.cursor = self.limit - v_10
|
||
|
break
|
||
|
except lab11: pass
|
||
|
self.cursor = self.limit - v_9
|
||
|
return True
|
||
|
|
||
|
def _stem(self):
|
||
|
self.__r_prelude()
|
||
|
v_2 = self.cursor
|
||
|
self.__r_mark_regions()
|
||
|
self.cursor = v_2
|
||
|
self.limit_backward = self.cursor
|
||
|
self.cursor = self.limit
|
||
|
self.__r_standard_suffix()
|
||
|
self.cursor = self.limit_backward
|
||
|
return True
|
||
|
|
||
|
|
||
|
class lab0(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab1(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab2(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab3(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab4(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab5(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab6(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab7(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab8(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab9(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab10(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab11(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab12(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab13(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab14(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab15(BaseException): pass
|
||
|
|
||
|
|
||
|
class lab16(BaseException): pass
|