Python离线翻译库argos-translate

截至 2023-09-28 中英互译效果巨差,不推荐!!!

可以尝试 BingTranslator

简介

argos-translate 是一款基于 OpenNMT(神经网络机器翻译框架)的离线翻译库,不依赖第三方翻译接口,支持翻译包括中文在内的 30 多种语言。




安装

pip install argostranslate




初试

import argostranslate.package
import argostranslate.translate

from_code = 'en'
to_code = 'zh'

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))
path = package_to_install.download()  # 下载包
argostranslate.package.install_from_path(path)  # 安装

translated_text = argostranslate.translate.translate('friends', from_code, to_code)
print(translated_text)
# 朋友

装不上的话可以尝试手动装,将文件改名,并放到路径如 C:\Users\Administrator\.local\cache\argos-translate\downloads\translate-en_zh.argosmodel

import argostranslate.package
import argostranslate.translate

from_code = 'en'
to_code = 'zh'

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))
print(package_to_install.links)  # 列出下载地址
# ['https://pub-dbae765fb25a4114aac1c88b90e94178.r2.dev/v1/translate-en_zh-1_7.argosmodel', 'ifps://QmZ9QmyRdwsYebNS4HPnfXKUsaREisoRe1Vd8W63F4MDiR']




列出语言列表

import argostranslate.package

argostranslate.package.update_package_index()  # 更新索引
available_packages = argostranslate.package.get_available_packages()  # 可翻译的语言
for package in available_packages:
    print(package, package.from_code, package.to_code)
# Chinese → English zh en
# English → Chinese en zh
# 其余略




直接翻译

from argostranslate import package, settings, translate

from_code = 'en'
to_code = 'zh'
filename = f'translate-{from_code}_{to_code}.argosmodel'
path = settings.downloads_dir / filename
package.install_from_path(path)

while True:
    q = input()
    translated_text = translate.translate(q, from_code, to_code)
    print(translated_text)
英文译文
How are you?你们如何?
I’m fine. Thank you. And you?我的罚款。 谢谢。 你们?
What’s your age?你们的时代是什么?




参考文献

  1. argos-translate GitHub
  2. argos-translate Documentation
  3. Poor Chinese translation
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XerCis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值