0

我有波兰语的 pandas 数据框列,想翻译成英语,但出现错误。下面的代码:

from googletrans import Translator
translator = Translator()
df['text_en'] = df2['text_pl'].apply(translator.translate, src='pl', dest='en')

下面的错误:

 63 
     64         # this will be the same as python code after stripping out a reserved word 'var'
---> 65         code = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '')
     66         # unescape special ascii characters such like a \x3d(=)
     67         if PY3:  # pragma: no cover

AttributeError: 'NoneType' object has no attribute 'group'

4

1 回答 1

0

我不知道你是否解决了你的问题,但我遇到了同样的事情。我发现了模块google_trans_new。你应该试试看:

pip install google_trans_new

对于翻译部分:

from google_trans_new import google_translator  
  
translator = google_translator()  
translate_text = translator.translate('首先感谢我的父母他们对我的关爱',lang_tgt='en')  

返回:

'First of all thank my parents for their love'

对于检测:

from google_trans_new import google_translator  
  
detector = google_translator()  
detect_result = detector.detect('首先感谢我的父母他们对我的关爱')

这使

['zh-CN', 'chinese (simplified)']

在你的情况下,它可能会这样工作:

detector = google_translator()  

def detect(x):
    try:
        detected_language = detector.detect(x)
    except:
        detected_language = None
    return detected_language

df['language detected'] = df2['text_pl'].apply(detect)

检测语言(如果您不确定全部是英语还是波兰语)。

并以类似的方式进行翻译。(见上面的例子)。我是这样做的:

Translationlist = df2['text_pl'].unique()

LANGT = []
for lang in Translationlist :
    try:
        translate_text = translator.translate(lang, lang_tgt='en') 
    except:
        translate_text = None
    LANGT.append(translate_text)

然后将其与原始数据框合并。(选择的原因:40 种语言和一些我不确定是否可以翻译的“奇怪”文本),但您可能不需要那样做。

于 2020-12-31T05:17:36.750 回答