Hướng dẫn dùng translate process python
Để dịch văn bản / translate text, có 1 thư viện của Python giúp chúng ta thực hiện dễ dàng đó là thư viện googletrans. Nó dịch văn bản thông qua API của Google Translate. Sau đây mình sử hướng dẫn căn bản cách sử dụng thư viện này để dịch văn bản nhé! Show
Cài đặt thư viện googletransNhư mội khi chúng ta thực hiện cài đặt qua công cụ quản lý package của Python 3 là PIP pip install googletrans==4.0.0rc1 Ngoài ra bạn có thể cài đặt thông qua công cụ quản lý conda conda install googletrans==4.0.0rc1 Danh sách các ngôn ngữ được hỗ trợBạn có thể liệt kê danh sách các ngôn ngữ được hỗ trợ bởi thư viện bằng đoạn code sau: import googletrans import json # List all languages print(json.dumps(googletrans.LANGUAGES, indent=4)) Kết quả: /opt/python/myapp/venv/bin/python /opt/python/myapp/google-translate.py { "af": "afrikaans", "sq": "albanian", "am": "amharic", "ar": "arabic", "hy": "armenian", "az": "azerbaijani", "eu": "basque", "be": "belarusian", "bn": "bengali", "bs": "bosnian", "bg": "bulgarian", "ca": "catalan", "ceb": "cebuano", "ny": "chichewa", "zh-cn": "chinese (simplified)", "zh-tw": "chinese (traditional)", "co": "corsican", "hr": "croatian", "cs": "czech", "da": "danish", "nl": "dutch", "en": "english", "eo": "esperanto", "et": "estonian", "tl": "filipino", "fi": "finnish", "fr": "french", "fy": "frisian", "gl": "galician", "ka": "georgian", "de": "german", "el": "greek", "gu": "gujarati", "ht": "haitian creole", "ha": "hausa", "haw": "hawaiian", "iw": "hebrew", "he": "hebrew", "hi": "hindi", "hmn": "hmong", "hu": "hungarian", "is": "icelandic", "ig": "igbo", "id": "indonesian", "ga": "irish", "it": "italian", "ja": "japanese", "jw": "javanese", "kn": "kannada", "kk": "kazakh", "km": "khmer", "ko": "korean", "ku": "kurdish (kurmanji)", "ky": "kyrgyz", "lo": "lao", "la": "latin", "lv": "latvian", "lt": "lithuanian", "lb": "luxembourgish", "mk": "macedonian", "mg": "malagasy", "ms": "malay", "ml": "malayalam", "mt": "maltese", "mi": "maori", "mr": "marathi", "mn": "mongolian", "my": "myanmar (burmese)", "ne": "nepali", "no": "norwegian", "or": "odia", "ps": "pashto", "fa": "persian", "pl": "polish", "pt": "portuguese", "pa": "punjabi", "ro": "romanian", "ru": "russian", "sm": "samoan", "gd": "scots gaelic", "sr": "serbian", "st": "sesotho", "sn": "shona", "sd": "sindhi", "si": "sinhala", "sk": "slovak", "sl": "slovenian", "so": "somali", "es": "spanish", "su": "sundanese", "sw": "swahili", "sv": "swedish", "tg": "tajik", "ta": "tamil", "te": "telugu", "th": "thai", "tr": "turkish", "uk": "ukrainian", "ur": "urdu", "ug": "uyghur", "uz": "uzbek", "vi": "vietnamese", "cy": "welsh", "xh": "xhosa", "yi": "yiddish", "yo": "yoruba", "zu": "zulu" } Process finished with exit code 0 Hướng dẫn sử dụng thư viện cơ bảnImport thư viện from googletrans import Translator Tạo một đối tượng của Translor from googletrans import Translator Thực hiện dịch văn bản. VD từ tiếng Việt ra tiếng Anh from googletrans import Translator # define a translate object translate = Translator() # Translate some text result = translate.translate('Chúng tôi là nhóm vinasupport') print(result) print(result.text) Kết quả: Chỉ định ngôn ngữ dịch result = translator.translate('Mikä on nimesi', src='vi', dest='en') Sử dụng googletrans như command line What is parallel processing?Về cơ bản làm hai việc cùng một lúc, hoặc chạy code đồng thời trên các CPU khác nhau, hoặc chạy code cùng một CPU và đạt được tốc độ tăng tốc bằng cách tận dụng các chu kỳ CPU “lãng phí” trong khi chương trình của bạn đang chờ tài nguyên bên ngoài --upload file, gọi API. Nội dung chính
Nội dung chính
Ví dụ, đây là một chương trình "normal". Nó tải xuống một danh sách các URL tại một thời điểm bằng cách sử dụng một chủ đề duy nhất. Đây là chương trình tương tự sử dụng 2 threads. Nó phân chia các url giữa các thread giúp chúng ta tăng tốc gần gấp đôi.
Biểu đồ cho thấy multiple threads có thể được tạo theo cùng một cách. Các phương thức trong thư viện của Python trả về một mảng kết quả. Process vs ThreadProcess là một phiên bản của program (ví dụ: Jupyter notebook, Python interpreter). Process sinh ra các thread (sub-processes) để xử lý các tác vụ con như đọc keystrokes, loading HTML pages, saving files. Các thread sống bên trong các process và chia sẻ cùng một không gian bộ nhớ. Ví dụ: Microsoft Word Khi bạn mở Word, bạn tạo một process. Khi bạn bắt đầu nhập, process tạo ra các thread: một thread để đọc các lần gõ phím, một thread khác để hiển thị văn bản, một thread để tự động lưu file của bạn và một thread khác để đánh dấu lỗi chính tả. Bằng cách tạo ra nhiều thread, Microsoft tận dụng thời gian CPU nhàn rỗi (chờ các lần gõ phím hoặc tải file) và giúp bạn làm việc hiệu quả hơn. Process
Thread
CPU vs CoreCPU, hoặc bộ xử lý, quản lý công việc tính toán cơ bản của máy tính. CPU có một hoặc nhiều lõi, cho phép CPU thực thi code đồng thời. Với một lõi đơn, không có tốc độ tăng cho các tác vụ đòi hỏi nhiều CPU (ví dụ: vòng lặp, số học). Hệ điều hành chuyển đổi qua lại giữa các tác vụ thực hiện từng tác vụ một chút tại một thời điểm. Đây là lý do tại sao đối với các hoạt động nhỏ (ví dụ: tải xuống một vài hình ảnh), đa nhiệm đôi khi có thể ảnh hưởng đến hiệu suất của bạn. Có chi phí liên quan đến việc khởi chạy và duy trì nhiều tác vụ. Python’s GIL problemCPython (triển khai python tiêu chuẩn) có một thứ gọi là GIL (Global Interpreter Lock), ngăn hai threads thực thi đồng thời trong cùng một chương trình. Một số người khó chịu vì điều này, trong khi những người khác lại quyết liệt bảo vệ nó. Tuy nhiên, vẫn có những cách giải quyết khác và các thư viện như Numpy đã bỏ qua hạn chế này bằng cách chạy mã bên ngoài trong C. When to use threads vs processes?
Parallel processing examplesThư viện concurrent.futures của Python thật thú vị khi làm việc. Chỉ cần chuyển vào function của bạn, list các items cần làm việc và số lượng công nhân
API callsTôi nhận thấy các thread hoạt động tốt hơn cho các cuộc gọi API và quan sát thấy tốc độ tăng lên qua xử lý nối tiếp và đa xử lý.
2 threads4 threads2 processes4 processesIO Heavy TaskTôi đã chuyển qua một loạt các chuỗi văn bản khổng lồ để xem hiệu suất ghi khác nhau như thế nào. Các thread dường như giành chiến thắng ở đây, nhưng đa xử lý cũng cải thiện thời gian chạy.
Serial
4 threads4 processesCPU IntensiveĐa xử lý đã giành được ngày ở đây như mong đợi. Các quá trình tránh GIL và thực thi code đồng thời trên nhiều lõi.
Serial: 4.2 seconds 4 threads: 6.5 seconds 4 processes: 1.9 seconds Numpy Dot Product Đúng như mong đợi, tôi không thấy lợi ích gì khi thêm thread hoặc process vào code này. Numpy thực thi mã C bên ngoài đằng sau và do đó tránh được GIL.
Serial: 2.8 seconds 2 threads: 3.4 seconds 2 processes: 3.3 seconds Tài liệu tham khảohttps://medium.com/@bfortuner/python-multithreading-vs-multiprocessing-73072ce5600b |