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)

 

posted @ 2024-08-15 23:50  AlphaGeek  阅读(3579)  评论(0)    收藏  举报