Cal dissenyar un sistema automàtic que sigui capaç de corregir textos de manera que substitueixi paraules considerades políticament incorrectes per sinònims acceptables. Inicialment, les paraules políticament incorrectes estan emmagatzemades en una llista de subllistes d’strings de manera que el primer element de cada subllista és la paraula incorrecta i la resta dels elements (un nombre variable) són sinònims correctes.
ll = [['bonyut', 'malgirbat', 'irregular'],\ ['sapastre', 'incompetent'],\ ['capsigrany', 'curt', 'inhabil'],\ ['bufanuvols', 'somiador'], \ ['ximplet', 'beneit', 'bonhome'],\ ['tararot', 'belluguet', 'turbulent', 'esvalotat']]
’Un bonyut que era un sapastre va anar a cal capsigrany pero el bufanuvols que era un ximplet va acabar essent un tararot’
Les funcions valen 40 i 60 punts respectivament.
Observació
Aquest problema és el problema "Corrector de llenguatge" creat per professors del departament de Ciències de la Computació amb docència a l’ETSEIB. Podeu consultar l’original a:
http://gie.cs.upc.edu/fi/temes/diccionaris/Corrector_de_llenguatge.html
>>> ll = [['bonyut', 'malgirbat', 'irregular'],\ ... ['sapastre', 'incompetent'],\ ... ['capsigrany', 'curt', 'inhabil'],\ ... ['bufanuvols', 'somiador'], \ ... ['ximplet', 'beneit', 'bonhome'],\ ... ['tararot', 'belluguet', 'turbulent', 'esvalotat']] >>> dicc(ll) {'bonyut': ['malgirbat', 'irregular'], 'ximplet': ['beneit', 'bonhome'], 'sapastre': ['incompetent'], 'bufanuvols': ['somiador'], 'tararot': ['belluguet', 'turbulent', 'esvalotat'], 'capsigrany': ['curt', 'inhabil']} >>> ti = 'Un bonyut que era un sapastre va anar a cal capsigrany ' + \ ... 'pero el bufanuvols que era un ximplet va acabar essent un tararot' >>> correccio(dicc(ll), ti) 'Un irregular que era un incompetent va anar a cal curt pero el somiador que era un bonhome va acabar essent un turbulent'