本帖最后由 喬治兄 于 2018-11-29 18:37 编辑 * |& ~6 H- o2 A6 ?. E' `1 s5 y
5 m5 k8 U$ h$ P3 i% V
6 v7 w4 m7 P" k1 @$ l平日使用 Google Translate 翻譯詞語、短句,不會覺得有甚麼問題。雖然 Google Translate 功能強大,多種語言都懂,但都有限制。
: J7 b, n1 d. }* y% c% h8 a4 U5 ]
轉載8 A: ^' u6 ^3 }* {, Q2 x0 T. l% R
https://hk.news.yahoo.com/%E9%95 ... 8%B6-043028932.html1 s% i1 ^0 }+ j& f% ?5 @4 m" b
: e9 Q# I" [' z) }
原來,Google Translate 有字數限制。每次翻譯,Google 只支援最多 5000 字。當系統發現字數超標,就會發出警告,指出有多少字未能翻譯。若是經搜尋器翻譯,字數上限則為 2800 字。一版網頁,輕易就能超出 5000 字,不過不受此限制影響。
8 S2 u( J) w [8 _2 ~& ^
6 N Z2 i, S4 P2 q& c# C字數太多,原來會令 Google Translate 不能負擔。另一方面,根本全文翻譯的準確度就會降低不少,鬧出笑話。字數限制,其實對我們平日使用影響不大。最多,分多次翻譯就可以解決。
) N' _& ~) V, a# `https://www.cnblogs.com/feng8621/archive/2012/08/11/2633979.html
g! a4 t: v7 s7 X9 b g. y) i- Z( F. P' C
背景介绍
7 A! \/ J5 E2 W3 F2 X* ~ 前段时间在做一个类似于“一键翻译”的小功能,需要对长文本进行多语种的翻译,本以为很简单,不过在网上找来找去,居然发现没有一个完美的方法来解决,我只好从网上搜来了各种各样的翻译API,并揣摩了其使用方法,不过都不尽完美,其各方面的缺陷大致有: $ M9 Y6 t. Q8 N+ l5 p6 E! p" u2 A; @
- 微软API:利用WCF方式进行翻译,每次翻译英文字数最大为一万两千多个,中文字符的话最多为六七千个,最大200M字符/月的限制,超过限制后要付费。对HTML翻译支持完美,翻译结果也不错,但考虑到免费字符数限制,需做账号轮巡,账号注册的步骤那叫一个繁琐啊……(此方式可做为首选翻译方式,轮巡的翻译功能已实现,有时间了把源码贴上来。 ——qfzhang于2013-05-30更新)
- YoudaoAPI:语言支持不够多,只有英文、日文、中文几个之间的互相翻译,且每次请求最多翻译的字符数不能超过200,还有访问频率限制。
- GoogleAPI:Google翻译的API,优势明显,翻译结果十分准确,尤其是针对HTML,能够准确跳过HTML标签部分,只翻译文本,但它是付费使用的(v1版为免费版,但接口已关闭),其价格为100万字符/20美金,其价格自然不言而喻。且在使用过程中发现,其标称每次最大翻译字符数不能超过2k,但实际使用时超过1.5k就会报异常。
- BaiduAPI:有访问频率限制和长度限制,且翻译结果不理想。
, ^8 o. l* p" U: e; d9 \# d 在这四大翻译巨头的各种限制之下,不得不另寻出路…… 1 b [7 Q( K: ~0 S
转机 鉴于Google翻译的准确性,还是果断选择了Google作为目标,但其价格实在昂贵,只好从其翻译页面上做文章。 在测试时发现,其GET请求中加上一些参数可以实现翻译功能,于是乎第一个GET版本的翻译功能出炉了,其步骤大约分为以下两步:
- W. J7 C; i7 ~! \1 z& C8 w- 构造查询字符串,向翻译页面发送请求
- 获取返回的HTML,并从中过滤出所需要的结果。(小弟不才,因为这个东西,好好地把正则表达式训练了一把^_^)
5 Q+ w7 g T2 d9 P
然而,GET方式跟API有同样的问题,超出固定长度后就会报请求异常。于是只能再想其它方法。 后来小弟尝试了构造POST请求去访问它,没想到……居然成功了……一时高兴,代码不敢独享,在此贴出来,希望大家有遇到此类问题的,一起分享一下。 |