Python中【翻译】第三方库使用说明——免费且不依赖于付费API
1、googletrans
安装命令:pip install googletrans==4.0.0-rc1
翻译实现如下:
from googletrans import Translator def translate_text(text, dest='zh-CN'): # en translator = Translator() translation = translator.translate(text, dest) return translation.text
print(translate_text('water can flow, or can crash. be water my friend'))
水可以流动,或者可能崩溃。我的朋友是水 # 实测翻译效果比较机械
水可以流动,或者可能崩溃。我的朋友是水 # 实测翻译效果比较机械
还可以监测输入的语言,实现如下:
def detect_language(text): translator = Translator() detection = translator.detect(text) return detection.lang print(detect_language('water can flow, or can crash. be water my friend')) en
2、translate
安装命令:pip install translate
翻译实现如下:
from translate import Translator # 创建翻译器实例,from_lang和to_lang必须使用正确的语言代码 translator = Translator(from_lang='en', to_lang='zh') # 翻译文本 translation = translator.translate("water can flow, or can crash. be like water my friend") print(translation)
水可以流动,或者可能撞击。像水一样吧,我的朋友。
3、baidu_translate
Github地址:https://github.com/tq-xyy/baidu-translate/
通过以下方式安装最新版本:
pip install git+https://github.com/17097239132/baidu-translate.git
翻译实现如下,效果还不错。
import baidu_translate as fanyi result = fanyi.translate_text('Hello, World!') print(result) # 你好,世界! result_zh = fanyi.translate_text('Water can flow, or can crash. be like water my friend', to=fanyi.Lang.ZH) print(result_zh) # 水可以流动,也可以破裂。像水一样,我的朋友 result = fanyi.translate_text('为有牺牲多壮志,敢叫日月换新天', to=fanyi.Lang.EN) print(result) # To have the great ambition of sacrifice, dare to let the sun and moon exchange for a new sky
4、Argos Translate(离线使用):
import argostranslate.package import argostranslate.translate from_code = "zh" to_code = "en" # 更新语言包索引 argostranslate.package.update_package_index() # 注释掉这行代码,会加速变快。不然代码返回结果就较慢。 # # 获取可用的语言包 available_packages = argostranslate.package.get_available_packages() # 筛选出需要的语言包并安装 package_to_install = next( filter( lambda x: x.from_code == from_code and x.to_code == to_code, available_packages ) ) argostranslate.package.install_from_path(package_to_install.download()) # 执行翻译 translatedText = argostranslate.translate.translate("为有牺牲多壮志,敢叫日月换新天", from_code, to_code) print(translatedText) # 应该输出: How dare you change the sun and moon for sacrifice?
5、deep_translator
安装命令:pip install argostranslate
翻译实现如下:
from deep_translator import GoogleTranslator # 使用Google翻译器翻译文本 gt = GoogleTranslator() translated_text = gt.translate('Hello, World', target='zh') print(translated_text) # 输出: Hello, World (并没有翻译) translated_text = gt.translate('为有牺牲多壮志,敢叫日月换新天', target='en') print(translated_text) # 输出: Because of the sacrifices, we have great ambitions, and we dare to change the sun and the moon into a new sky
6、Helsinki-NLP/opus-mt-zh-en 预训练模型
该模型支持中文到英文的翻译,但不支持英文到中文。
如果你想要中到英的翻译,可以直接使用该模型。
# 1. 翻译任务(将中文翻译成英文) translator = pipeline("translation", model="Helsinki-NLP/opus-mt-zh-en") translation = translator("为有牺牲多壮志,敢叫日月换新天。") print(translation)
# [{'translation_text': 'I dared to call the sun and the moon a new day for sacrifice.'}]
7、TJUNLP/wmt23-zh-en 预训练模型
该模型也主要用于中文到英文的翻译任务,性能较强,但该模型并没有直接开放为Hugging Face中的一个pipeline模型,所以需要自己训练和部署。
如果模型开放为 Hugging Face 的 pipeline 使用,代码将会与 Helsinki-NLP 模型类似:
# 1. 翻译任务(将中文翻译成英文) translator = pipeline("translation", model="TJUNLP/wmt23-zh-en") translation = translator("为有牺牲多壮志,敢叫日月换新天。") print(translation)

浙公网安备 33010602011771号