Python 将俄语翻译成英语

Python 将俄语翻译成英语,python,replace,str-replace,transliteration,Python,Replace,Str Replace,Transliteration,我需要创建一个程序,以不同的方式将俄语名称翻译成英语 例如,俄罗斯姓氏: Мааё 可能的英语口译: 穆拉夫约夫;米拉维耶夫;穆拉维耶夫;穆拉维奥夫;穆拉夫耶夫;穆拉维夫;穆拉夫耶夫;穆拉沃夫;穆拉夫乔夫;穆拉夫耶夫;穆拉维夫;穆拉维耶夫;穆拉维夫; 穆拉维耶夫;穆拉维夫;穆拉维奥夫 我找到了现有的音译Python包,它有一个从西里尔语到英语的标准化音译形式。 问题是我还需要另一种可能的英语口译。我曾想过在Python中替换方法,但并没有弄明白如何生成正确的代码 现在我有了这个: def tra

我需要创建一个程序,以不同的方式将俄语名称翻译成英语

例如,俄罗斯姓氏:

Мааё

可能的英语口译:

穆拉夫约夫;米拉维耶夫;穆拉维耶夫;穆拉维奥夫;穆拉夫耶夫;穆拉维夫;穆拉夫耶夫;穆拉沃夫;穆拉夫乔夫;穆拉夫耶夫;穆拉维夫;穆拉维耶夫;穆拉维夫; 穆拉维耶夫;穆拉维夫;穆拉维奥夫

我找到了现有的音译Python包,它有一个从西里尔语到英语的标准化音译形式。 问题是我还需要另一种可能的英语口译。我曾想过在Python中替换方法,但并没有弄明白如何生成正确的代码

现在我有了这个:

def translit(string):

capital_letters = {
    u'А': u'A',
    u'Б': u'B',
    u'В': u'V',
    u'Г': u'G',
    u'Д': u'D',
    u'Е': u'E',
    u'Ё': u'E',
    u'Ж': u'Zh',
    u'З': u'Z',
    u'И': u'I',
    u'Й': u'Y',
    u'К': u'K',
    u'Л': u'L',
    u'М': u'M',
    u'Н': u'N',
    u'О': u'O',
    u'П': u'P',
    u'Р': u'R',
    u'С': u'S',
    u'Т': u'T',
    u'У': u'U',
    u'Ф': u'F',
    u'Х': u'H',
    u'Ц': u'Ts',
    u'Ч': u'Ch',
    u'Ш': u'Sh',
    u'Щ': u'Sch',
    u'Ъ': u'',
    u'Ы': u'Y',
    u'Ь': u'',
    u'Э': u'E',
    u'Ю': u'Yu',
    u'Я': u'Ya'
}

lower_case_letters = {
    u'а': u'a',
    u'б': u'b',
    u'в': u'v',
    u'г': u'g',
    u'д': u'd',
    u'е': u'e',
    u'ё': u'e',
    u'ж': u'zh',
    u'з': u'z',
    u'и': u'i',
    u'й': u'y',
    u'к': u'k',
    u'л': u'l',
    u'м': u'm',
    u'н': u'n',
    u'о': u'o',
    u'п': u'p',
    u'р': u'r',
    u'с': u's',
    u'т': u't',
    u'у': u'u',
    u'ф': u'f',
    u'х': u'h',
    u'ц': u'ts',
    u'ч': u'ch',
    u'ш': u'sh',
    u'щ': u'sch',
    u'ъ': u'',
    u'ы': u'y',
    u'ь': u'',
    u'э': u'e',
    u'ю': u'yu',
    u'я': u'ya'
}

translit_string = ""

for index, char in enumerate(string):
    if char in lower_case_letters.keys():
        char = lower_case_letters[char]
    elif char in capital_letters.keys():
        char = capital_letters[char]
        if len(string) > index+1:
            if string[index+1] not in lower_case_letters.keys():
                char = char.upper()
        else:
            char = char.upper()
    translit_string += char

return translit_string

我是一名新的程序员,在大约2-3个月的时间里开始编程,并学习了一点Python。我可以使用字符串中的
来获得其他可能的答案吗?或者,在这里如何使用
替换方法
也可以得到其他可能的答案。

您可以使用Python包并按照包含其他俄语音译词典的方法。

您应该使用得到的结果和预期的结果来更新您的问题。请参阅如何根据您的示例创建,一个西里尔字母可以被音译成多个拉丁字母。替换项可以有多个字符。例如,西里尔字母小写y可替换为拉丁语
y
u
,或
ou
。您需要一个大的dict将单个西里尔字符映射到替换的列表或元组。。。一个条目是“y”:[“u”,“y”,“ou']。我看不出有两个单词的意义,一个是大写字母,一个是小写字母。