У меня есть информационный фрейм pandas, в котором есть куча текста на английском или французском языке. Я хочу перевести французский текст на английский. Я использую лямбду, как это:
from py_translator import Translator
import pandas as pd
translator = Translator()
// read data into dataframe df
df.apply(lambda x:pre_process(x, translator), axis=1)
Перевод происходит в функции pre_process:
def pre_process(data, translator):
text = data['text']
# Detect french or english: if French, translate to English
language = detect(text)
if(language == 'fr'):
text = translator.translate(text, src='fr', dest='en')
data['text'] = text
Я запускаю тестовую версию с несколькими французскими документами, и все, кажется, в порядке. Однако, когда я запускаю полную версию, я получаю сообщение об ошибке слишком долго:
Traceback (most recent call last):
File "myscript.py", line 120, in <module>
df.apply(lambda x:pre_process(x, translator), axis=1)
File "/usr/lib64/python2.7/site-packages/pandas/core/frame.py", line 6014, in apply
return op.get_result()
File "/usr/lib64/python2.7/site-packages/pandas/core/apply.py", line 142, in get_result
return self.apply_standard()
File "/usr/lib64/python2.7/site-packages/pandas/core/apply.py", line 248, in apply_standard
self.apply_series_generator()
File "/usr/lib64/python2.7/site-packages/pandas/core/apply.py", line 277, in apply_series_generator
results[i] = self.f(v)
File "tfidf_keyword_extraction_w_scikit.py", line 120, in <lambda>
df.apply(lambda x:pre_process(x, translator), axis=1)
File "tfidf_keyword_extraction_w_scikit.py", line 36, in pre_process
text = translator.translate(str(text), src='fr', dest='en').text
File "/usr/lib/python2.7/site-packages/py_translator/client.py", line 172, in translate
data = self._translate(text, dest, src)
File "/usr/lib/python2.7/site-packages/py_translator/client.py", line 81, in _translate
data = utils.format_json(r.text)
File "/usr/lib/python2.7/site-packages/py_translator/utils.py", line 62, in format_json
converted = legacy_format_json(original)
File "/usr/lib/python2.7/site-packages/py_translator/utils.py", line 54, in legacy_format_json
converted = json.loads(text)
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: ('No JSON object could be decoded', u'occurred at index 17')
Кажется, я не могу это исправить. Есть предложения?