Hướng dẫn python convert russian to english - python chuyển đổi tiếng Nga sang tiếng Anh

Tôi đang nhận được ngoại lệ ____5 khi cố gắng sử dụng string.maketrans trong Python. Tôi không nản lòng với loại lỗi này trong mã sau (GIST):

# -*- coding: utf-8 -*-

import string

def translit1(string):
    """ This function works just fine """
    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


def translit2(text):
    """ This method should be more easy to grasp, 
    but throws exception:
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-51: ordinal not in range(128)
    """

    symbols = string.maketrans(u"абвгдеёзийклмнопрстуфхъыьэАБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ",
                               u"abvgdeezijklmnoprstufh'y'eABVGDEEZIJKLMNOPRSTUFH'Y'E")
    sequence = {
        u'ж':'zh',
        u'ц':'ts',
        u'ч':'ch',
        u'ш':'sh',
        u'щ':'sch',
        u'ю':'ju',
        u'я':'ja',
        u'Ж':'Zh',
        u'Ц':'Ts',
        u'Ч':'Ch'
    }

    for char in sequence.keys():
        text = text.replace(char, sequence[char])

    return text.translate(symbols)

if __name__ == "__main__":
    print translit1(u"Привет") # prints Privet as expected
    print translit2(u"Привет") # throws exception: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-51: ordinal not in range(128)

Dấu vết ban đầu:

Traceback (most recent call last):
  File "translit_error.py", line 124, in 
    print translit2(u"Привет") # throws exception: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-51: ordinal not in range(128)
  File "translit_error.py", line 103, in translit2
    u"abvgdeezijklmnoprstufh'y'eABVGDEEZIJKLMNOPRSTUFH'Y'E")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-51: ordinal not in range(128)

Ý tôi là, tại sao Python string.maketrans cố gắng sử dụng bảng ascii? Và làm thế nào là chữ cái tiếng Anh nằm ngoài phạm vi 0-128?

$ python -c "print ord(u'A')"
65
$ python -c "print ord(u'z')"
122
$ python -c "print ord(u\"'\")"
39

Sau vài giờ tôi cảm thấy muốn hoàn toàn kiệt sức để giải quyết vấn đề này.

Ai đó có thể nói những gì đang xảy ra và làm thế nào để sửa chữa nó?

Máy tính luôn đấu tranh với việc cung cấp các bản dịch được đánh bóng của văn bản nước ngoài, nghĩa là cho đến khi sự ra đời của học tập sâu. Sử dụng công nghệ này, độ chính xác và chất lượng dịch thuật đã được cải thiện đáng kể. Vấn đề duy nhất là việc sử dụng đúng cách công nghệ này có thể khó khăn và tốn thời gian. Hầu hết mọi người không có quyền truy cập vào card đồ họa cấp công nghiệp hoặc tuần để thực hiện đào tạo AI thích hợp. Rất may, quá trình này chỉ cần được thực hiện một lần và tôi đã chăm sóc điều đó cho bạn. Hôm nay tôi sẽ chứng minh cách truy cập AI này ngay lập tức cho các bản dịch tiếng Nga sang tiếng Anh bằng API.

Vì vậy, hãy để bắt đầu bằng cách cài đặt máy khách API API này bằng cách cài đặt PIP.

pip install git+https://github.com/Cloudmersive/Cloudmersive.APIClient.Python.NLP.git

Và bước tiếp theo là gọi chức năng ngôn ngữ_translation_translate_rus_to_eng. Điều này sẽ lấy một đối tượng đầu vào chứa chuỗi văn bản của chúng tôi để được dịch.

from __future__ import print_functionimport timeimport cloudmersive_nlp_api_clientfrom cloudmersive_nlp_api_client.rest import ApiExceptionfrom pprint import pprint# Configure API key authorization: Apikeyconfiguration = cloudmersive_nlp_api_client.Configuration()configuration.api_key['Apikey'] = 'YOUR_API_KEY'# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed# configuration.api_key_prefix['Apikey'] = 'Bearer'# create an instance of the API classapi_instance = cloudmersive_nlp_api_client.LanguageTranslationApi(cloudmersive_nlp_api_client.ApiClient(configuration))input = cloudmersive_nlp_api_client.LanguageTranslationRequest() # LanguageTranslationRequest | Input translation requesttry:# Translate Russian to English text with Deep Learning AIapi_response = api_instance.language_translation_translate_rus_to_eng(input)pprint(api_response)except ApiException as e:print("Exception when calling LanguageTranslationApi->language_translation_translate_rus_to_eng: %s\n" % e)

Bây giờ chạy nó và bạn sẽ nhận được bản dịch của bạn. Thật dễ dàng như thế nào! Quá nhanh và dễ dàng hơn nhiều so với việc cố gắng đối phó với việc học sâu sắc bản thân. Trong cùng một thư viện này, bạn cũng sẽ tìm thấy các chức năng để dịch tiếng Anh trở lại tiếng Nga, cũng như các ngôn ngữ khác.

Làm cách nào để dịch Python sang tiếng Anh?

Để dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác bằng Python, chúng tôi sẽ sử dụng một gói có tên Googletrans đã được gọi nội bộ vào API Google Dịch. Tuy nhiên, chúng tôi không cần phải lo lắng về việc gọi nội bộ của API; Thay vào đó, chúng ta có thể đi trước và trực tiếp sử dụng gói.use a package named googletrans that has been called internally to the Google Translate API. However, we do not need to worry about the internal calling of the API; instead, we can go ahead and directly use the package.

Làm cách nào để thay đổi ngôn ngữ trong Python?

Các bước để phát triển dịch giả ngôn ngữ Python với GUI:..
Cài đặt dịch ..
Nhập khẩu dịch và tkinter ..
Khởi tạo cửa sổ ..
Tạo tuple để chọn ngôn ngữ ..
Tạo một chức năng để dịch văn bản ..
Lựa chọn cho ngôn ngữ đầu vào và ngôn ngữ mà văn bản sẽ được dịch ..
Đầu vào và văn bản đầu ra ..

Có chức năng dịch trong Python không?

Phương thức dịch () trả về một chuỗi trong đó một số ký tự được chỉ định được thay thế bằng ký tự được mô tả trong từ điển hoặc trong bảng ánh xạ.Sử dụng phương thức maketrans () để tạo bảng ánh xạ.Nếu một ký tự không được chỉ định trong từ điển/bảng, ký tự sẽ không được thay thế.. Use the maketrans() method to create a mapping table. If a character is not specified in the dictionary/table, the character will not be replaced.

Trình dịch nào được sử dụng trong Python?

Trình dịch ngôn ngữ sử dụng API Google trong Python.Google API in Python.