mod: изменен поиск суфиксов в английских словах

This commit is contained in:
2025-07-30 19:28:34 +03:00
parent 19dab28ecb
commit 0b0847843b

View File

@@ -165,6 +165,7 @@ class Hyphenator:
# РАЗРЕШЕНИЕ 2: Перенос после "слога" с Ь/Ъ, если дальше идет СОГЛАСНАЯ. # РАЗРЕШЕНИЕ 2: Перенос после "слога" с Ь/Ъ, если дальше идет СОГЛАСНАЯ.
# Пример: "строитель-ство", но НЕ "компь-ютер". # Пример: "строитель-ство", но НЕ "компь-ютер".
# По-хорошему нужно проверять, что перед Ь/Ъ нет йотированной гласной # По-хорошему нужно проверять, что перед Ь/Ъ нет йотированной гласной
# (и переработать ЗАПРЕТ 2), но это еще больше усложнит логику.
if self._is_sign(word_segment[i - 1]) and self._is_cons(word_segment[i]): if self._is_sign(word_segment[i - 1]) and self._is_cons(word_segment[i]):
return 9 return 9
# РАЗРЕШЕНИЕ 3: Перенос после "слога" если предыдущий Й (очень качественный перенос). # РАЗРЕШЕНИЕ 3: Перенос после "слога" если предыдущий Й (очень качественный перенос).
@@ -179,8 +180,6 @@ class Hyphenator:
# РАЗРЕШЕНИЕ 6 (Основное правило): Перенос после гласной. # РАЗРЕШЕНИЕ 6 (Основное правило): Перенос после гласной.
if self._is_vow(word_segment[i - 1]): if self._is_vow(word_segment[i - 1]):
return 5 return 5
# Если ни одно правило не подошло, точка не подходит для переноса. # Если ни одно правило не подошло, точка не подходит для переноса.
return 0 return 0
@@ -295,8 +294,10 @@ class Hyphenator:
logger.debug(f"Found V-C-V (split after C) split point at index {i} in '{word_segment}'") logger.debug(f"Found V-C-V (split after C) split point at index {i} in '{word_segment}'")
return i return i
# 6. Правила для распространенных суффиксов (перенос ПЕРЕД суффиксом) # 6. Правила для распространенных суффиксов (перенос ПЕРЕД суффиксом). Проверяем, что word_segment
# заканчивается на суффикс, и точка переноса (i) находится как раз перед ним
if word_segment[i:].upper() in _EN_SUFFIXES_WITHOUT_HYPHENATION_UPPER: if word_segment[i:].upper() in _EN_SUFFIXES_WITHOUT_HYPHENATION_UPPER:
# Мы нашли потенциальный суффикс.
logger.debug(f"Found suffix '-{word_segment[i:]}' split point at index {i} in '{word_segment}'") logger.debug(f"Found suffix '-{word_segment[i:]}' split point at index {i} in '{word_segment}'")
return i return i