from ukrainian_word_stress import StressSymbol, Stressifier import sys import os sys.path.append(os.path.abspath(os.path.dirname(__file__))) from accentor_lib.ukrainian_accentor_transformer import Accentor def stress_replace_and_shift(stressed: str): stressed = stressed.replace( StressSymbol.CombiningAcuteAccent, "+" ) new_stressed = "" start = 0 last = 0 while True: plus_position = stressed.find("+", start) if plus_position != -1: new_stressed += ( stressed[last : plus_position - 1] + "+" + stressed[plus_position - 1] ) start = plus_position + 1 last = start else: new_stressed += stressed[last:] break return new_stressed stressify = Stressifier(stress_symbol=StressSymbol.CombiningAcuteAccent) accentor_transformer = Accentor() def accentification(sentence: str, mode: str): if (mode != "none"): sentence = sentence.replace("+", "") sentence = sentence.replace( StressSymbol.CombiningAcuteAccent, "" ) if (mode == "vocab"): accented_sentence = stressify(sentence) elif (mode == "model"): accented_sentence = accentor_transformer(sentence) else: accented_sentence = sentence return accented_sentence # def accentification(sentence: str): # # sentence = sentence.replace("+", "") # sentence = sentence.replace( # StressSymbol.CombiningAcuteAccent, "" # ) # # accented_sentence = accentor_transformer(sentence) # # return accented_sentence