我正在尝试使用Google翻译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
示例输出:
西蒙(Simon)不想的建议
Simon '
的忠告
答案 0 :(得分:0)
我解决如下:
问题:
问题是您需要指定使用的是纯文本而不是HTML文本。 在此处查看文档:{{3}},查找“ translate”属性和“ format_”参数。
解决方案:
只需添加参数'format _ ='text'。就我而言,我是这样写的:
result = translate_client.translate(text, target_language=target, format_='text')
并且运行良好,现在api正确返回了撇号:
在我得到:“你好,我们很久没有见面了”之前。
现在我得到:“你好,我们很久没有见面了”