Поэтому я пытаюсь создать переводчик на питоне (на устройстве s60). Итак, что я пытаюсь сделать, так это заменить только одно целое слово, не касаясь других слов. Вот пример
Оригинал: «Коричневая лиса перепрыгивает через собаку по кличке Домовой». Я хочу заменить слово «коричневый» на «дэтлеси» (просто не обращайте внимания, почему). Результат должен быть: «Лисица дэтлеси перепрыгивает через собаку по кличке Брауни». Но вместо этого он также меняет «домовой» в строке, что приводит к: «Лисица смерти перепрыгивает через собаку по имени смертьлеси».
Поскольку я пытаюсь заменить каждое слово, иногда это превращается в нескончаемый парадокс. Пример: «Я тупой». Я пытаюсь изменить «Я» на «Иум», и вот что происходит. "iumumumumumumumumumumumumumumumumumumum.... am stupiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuim..", это в основном изменяет каждое "I" в строке и не остановится, пока в строке не будет "I".
Любая помощь? Спасибо!
Изменить: я уже пробовал «stringhere».replace(), но некоторые части, такие как строчная буква «i», обычно заменяют «i» глупым.
Вот еще пример: «Люди приходят в восторг от гигантского зайца». замена «are» на «iume» вместо «людей волнует гигантский заяц». оно также заменило «зайца», в результате чего «люди были в восторге от гигантского хиуме».
Предположительно, я выстроил предложение и перевел каждое из них. Это мой текущий метод сейчас. В основном преобразование каждого слова в массив и преобразование каждого из них. Затем сделать
translated_sentence=["particulus:people", "iume:are", "geus:getting", "exchantus:excited", "d:at", "qun:the", "gesas:giant", "hsont:hare"]
sentence= "People are getting excited at the giant hare."
for i in translated_sentence do
element=i.split(":")
sentence=sentence.replace(element[1], element[0])
и все равно выдает "particulus uime geus exchantus d qun gesas huime (вместо hsont)"
Я только что понял это. Я просто разделил строку на массив и сохранил форматирование, очистив текущее слово и выполнив string.replace() для исходного слова.
sentence="The quick brown fox jumps over the lazy dog.".split(" ")
result=""
for i in sentence:
cleaned=clean(i) #removes the punctuations and stuff leaving the raw word.
translated=translate(cleaned) #returns the translated word
result=result+i.replace(cleaned,translated)+" "
return result