zwl*_*yer 7 python google-translate google-cloud-platform
我正在尝试使用谷歌翻译API,如下所示。'翻译似乎没问题,除了撇号字符作为instaead返回。
有可能解决这些问题吗?我当然可以进行后处理,但我不知道是否还有另一个特殊角色面临同样的问题。
这就是我现在进行翻译的方式:
import pandas as pd
import six
from google.cloud import translate
# Instantiates a client
#translate_client = translate.Client()
"""Translates text into the target language.
Target must be an ISO 639-1 language code.
See https://g.co/cloud/translate/v2/translate-reference#supported_languages
"""
translate_client_en_de = translate.Client(target_language="de")
translate_client_de_en = translate.Client(target_language="en")
target1="de"
target2="en"
#if isinstance(text, six.binary_type):
# text = text.decode('utf-8')
fname ='fname.tsv'
df = pd.read_table(fname,sep='\t')
for i,row in df.iterrows():
text = row['Text']
de1 = translate_client_en_de.translate(
text, target_language=target1)
text2 = de1['translatedText']
en2 = translate_client_de_en.translate(
text2, target_language=target2)
text3 = en2['translatedText']
print(text)
print(text2)
print(text3)
print('----------')
break
Run Code Online (Sandbox Code Playgroud)
示例输出:
西蒙拒绝后的建议
西蒙'之后的建议
我解决如下:
问题:
问题是您需要指定您使用的是纯文本而不是 HTML 文本。查看此处的文档: https: //googleapis.dev/python/translation/latest/client.html,查找“translate”属性和“format_”参数。
解决方案:
只需添加参数'format_='text'即可。就我而言,我是这样写的:
result = translate_client.translate(text, target_language=target, format_='text')
Run Code Online (Sandbox Code Playgroud)
它运行良好,现在 api 正确返回撇号:
在我收到:“你好,我们已经很长时间没有见面了”。
现在我得到:“你好,我们已经很长时间没见面了”
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |