Given this dictionary:
{'intents': [{'intent': 'CambiarDireccion', 'examples': [{'text': 'compre la lavadora, pero me equivoque y no cambié la dirección de despacho'}, {'text': 'podrían enviarla a otra dirección'}, {'text': 'sin querer compre en otra direccion como la mudo'}, {'text': 'efectue la compra en la direccion incorrecta'}, {'text': 'necesito mudar la direccion'}, {'text': 'necesito mudar mi direccion'}, {'text': 'quiero mudar mi direccion'}, {'text': 'quiero cambiar mi direccion cono puedo hacer'}, {'text': 'Quiero cambiar la dirección de envío y no puedo , como lo hago'}, {'text': 'Holaa! Llegaria a más tardar el Domingo? Lo quiero enviar a otra dirección,en las Rejas'}, {'text': 'compre en la direccion equivocada quiero cambiarla'}, {'text': 'como puedo mudar mi direccion'}, {'text': 'como puedo hacer para cambiar la direccion'}, {'text': 'Cómo puedo cambiar de destino de mi compra?'}, {'text': 'Coloqué mal la direccion'}, {'text': 'acabo de aser una compra pero me equivoque de dirección me sale mi dirección anterior'}, {'text': 'quiero mudar mi direccion como hago'}]}, {'intent': 'CP', 'examples': [{'text': 'código postal 1812'}, {'text': 'el cp es'}, {'text': 'el código postal es'}, {'text': 'cp es 1212'}, {'text': 'cp es'}, {'text': 'cp'}, {'text': 'código postal'}]}], 'pagination': {'refresh_url': '/v1/workspaces/1ae2c245-76eb-44ff-7b7a-4dk6dfafac51/intents?version=2020-04-01&export=true'}}
How can I create a function where I take the all of the text examples so I can clean clean them (using lower and unicode) and get a dictionary with the same format with the clean version of the text?
I get that I have to use a loop but I'm having trouble getting all of the texts and not just the first group of examples.
CodePudding user response:
The following uses translate
to remove accents inside a (a little complicated) nested list comprehension:
import copy
# data = {'intents': ...}
tt = str.maketrans('áéíóúñ', 'aeioun') # translate table
intents = [
{
'intent': d['intent'],
'examples': [{'text': example['text'].lower().translate(tt)} for example in d['examples']]
}
for d in data['intents']]
data_clean = copy.deepcopy(data) # (deep) copy the original dict
data_clean['intents'] = intents # replace
print(data_clean)
Output:
{
"intents": [
{
"intent": "CambiarDireccion",
"examples": [
{"text": "compre la lavadora, pero me equivoque y no cambie la direccion de despacho"},
{"text": "podrian enviarla a otra direccion"},
{"text": "sin querer compre en otra direccion como la mudo"},
{"text": "efectue la compra en la direccion incorrecta"},
{"text": "necesito mudar la direccion"},
{"text": "necesito mudar mi direccion"},
{"text": "quiero mudar mi direccion"},
{"text": "quiero cambiar mi direccion cono puedo hacer"},
{"text": "quiero cambiar la direccion de envio y no puedo , como lo hago"},
{"text": "holaa! llegaria a mas tardar el domingo? lo quiero enviar a otra direccion,en las rejas"},
{"text": "compre en la direccion equivocada quiero cambiarla"},
{"text": "como puedo mudar mi direccion"},
{"text": "como puedo hacer para cambiar la direccion"},
{"text": "como puedo cambiar de destino de mi compra?"},
{"text": "coloque mal la direccion"},
{"text": "acabo de aser una compra pero me equivoque de direccion me sale mi direccion anterior"},
{"text": "quiero mudar mi direccion como hago"}
]
},
{
"intent": "CP",
"examples": [
{"text": "codigo postal 1812"},
{"text": "el cp es"},
{"text": "el codigo postal es"},
{"text": "cp es 1212"},
{"text": "cp es"},
{"text": "cp"},
{"text": "codigo postal"}
]
}
],
"pagination": {"refresh_url": "/v1/workspaces/1ae2c245-76eb-44ff-7b7a-4dk6dfafac51/intents?version=2020-04-01&export=true"
}
}