我有波兰语的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'
我不知道你是否已经解决了你的问题,但我也经历了同样的事情。我发现了模块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种语言和一些"奇怪"的文本,我不确定是否可以翻译(,但你可能不需要这样做。