谷歌翻译API不会在Python中将撇号作为撇号返回

时间:2019-06-13 07:56:46

标签: python google-cloud-platform google-translate

我正在尝试使用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 '的忠告

1 个答案:

答案 0 :(得分:0)

我解决如下:

问题:

问题是您需要指定使用的是纯文本而不是HTML文本。 在此处查看文档:{​​{3}},查找“ translate”属性和“ format_”参数。

解决方案:

只需添加参数'format _ ='text'。就我而言,我是这样写的:

result = translate_client.translate(text, target_language=target, format_='text')

并且运行良好,现在api正确返回了撇号:

在我得到:“你好,我们很久没有见面了”之前。

现在我得到:“你好,我们很久没有见面了”