From 73d538c64dbcb0cea84a52c78875a0d83ebaf80f Mon Sep 17 00:00:00 2001 From: Antonio Date: Wed, 13 Sep 2017 18:50:58 -0500 Subject: [PATCH] Add exceptions in singularize() inflect.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Maybe you sould add this. To Add: rr, gr, rn, v, f, m, qu, gu, g, ch, p "*rres" torres => torre amarres => amarre cierres => cierre agarres => agarre "*gres" tigres => tigre bagres => bagre "*rnes" carnes => carne "*ves" aves => ave naves => nave bajorrelieves => bajorrelieve detectives => detective aeronaves => aeronave relieves => relieve nieves => nieve llaves => llave agaves => agave "*fes" jefes => jefe catástrofes => catástrofe arrecifes => arrecife enchufes => enchufe "*rmes" falconiformes => falconiforme gendarmes => gendarme uniformes => uniforme iformes => iforme "*mes" síndromes => síndrome perfumes => perfume derrames => derrame chismes => chisme "*ques" guardabosques => guardabosque contraataques => contraataque alcornoques => alcornoque estanques => estanque tabiques => tabique caciques => cacique cheques => cheque parques => parque tanques => tanque bloques => bloque choques => choque ataques => ataque bosques => bosque diques => dique toques => toque buques => buque duques => duque "*gues" despliegues => despliegue albergues => albergue "*ges" esfinges => esfinge collages => collage cónyuges => cónyuge "ides" hemorroides => hemorroide asteroides => asteroide esteroides => esteroide androides => androide pirámides => pirámide "*ches" conpinches => conpinche huaraches => huarache boliches => boliche mapaches => mapache parches => parche afiches => afiche apaches => apache noches => noche coches => coche "*pes" príncipes => príncipe escapes => escape sarapes => sarape naipes => naipe golpes => golpe SPECIAL CASE Special Case (depending of syalbes): b, d "*bes" nubes => nube urbes => urbe percebes => percebe árabes => árabe EXCEPTIONS *clubes => *club "*des" cobardes => cobarde bordes => borde tardes => tarde rebeldes => rebelde alcaldes => alcalde moldes => molde duendes => duende condes => conde alcaides => alcaide fraudes => fraude EXCEPTIONS unidades => unidad bondades => bondad deidades => deidad ciudades => ciudad --- pattern/text/es/inflect.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pattern/text/es/inflect.py b/pattern/text/es/inflect.py index 16cd6228..c0c9bb45 100644 --- a/pattern/text/es/inflect.py +++ b/pattern/text/es/inflect.py @@ -170,7 +170,7 @@ def singularize(word, pos=NOUN, custom={}): return "un" return w # hombres => hombre - if w.endswith("es") and w[:-2].endswith(("br", "i", "j", "t", "zn")): + if w.endswith("es") and w[:-2].endswith(("br", "i", "j", "t", "zn", "rr", "gr", "rn", "v", "f", "m", "qu", "gu", "g", "ch", "p")): return w[:-1] # gestiones => gestión for a, b in ( @@ -421,4 +421,4 @@ def predicative(adjective): if len(w) >= 4 and not is_vowel(normalize(w[-3])) and not is_vowel(normalize(w[-4])): return w[:-1] return w[:-2] - return w \ No newline at end of file + return w