def test_attributive(self): # Assert "alto" => "altos" (masculine, plural), and others. for lemma, inflected, gender in ( (u"alto", u"alto", es.MALE + es.SINGULAR), (u"alto", u"altos", es.MALE + es.PLURAL), (u"alto", u"alta", es.FEMALE + es.SINGULAR), (u"alto", u"altas", es.FEMALE + es.PLURAL), (u"verde", u"verdes", es.MALE + es.PLURAL), (u"verde", u"verdes", es.FEMALE + es.PLURAL)): v = es.attributive(lemma, gender) self.assertEqual(v, inflected) print("pattern.es.attributive()")
def ingresarPalabra(dicPalabras, text): """esta funcion verifica si es una palabra valida y cual es su clasificacion, y la agrega al diccionario""" try: clasificacion = parse(text).split('/')[1][0:2] if esPalabraValida(text): if (clasificacion == 'VB'): enInfinitivo = conjugate(text, INFINITIVE) articulo = Wiktionary(language='es').search(enInfinitivo) elif (clasificacion == 'JJ'): adjetivo = attributive(text, gender=NEUTRAL) articulo = Wiktionary(language='es').search(adjetivo) elif (clasificacion == 'NN'): articulo = Wiktionary(language='es').search(text) aux = str(articulo.sections) if 'ADJ' in aux.upper() and clasificacion == 'JJ': print('La palabra es un adjetivo') elif 'VERB' in aux.upper() and clasificacion == 'VB': print('La palabra es un verbo') elif 'SUST' in aux.upper() and clasificacion == 'NN': print('La palabra es un sustantivo') if (clasificacion != 'JJ' and clasificacion != 'NN' and clasificacion != 'VB'): GenerarReporte('La palabra ' + text + ' no existe en pattern.') print('La palabra es valida y es un', articulo.sections[3].title) dicPalabras[clasificacion][text] = buscarDefinicion(text) print(dicPalabras[clasificacion][text]) return True else: if (clasificacion == 'JJ' or clasificacion == 'NN' or clasificacion == 'VB'): GenerarReporte( 'La palabra ' + text + ' no fue encontrada en Wiktionary, pero sí en pattern siendo un ' + clasificacion) dicPalabras[clasificacion][text] = sg.PopupGetText( 'Definicion: ') return True else: GenerarReporte( 'La palabra ' + text + ' no fue encontrada en Wiktionary y tampoco en pattern.') except TypeError: GenerarReporte('La palabra ' + text + ' no es valida.') print('La palabra ingresada no es valida.') return False
def ingresarPalabra(dicPalabras, text): """Verifica que la palabra sea v�lida tanto en Wiktionary como en Pattern. la palabra existe, la clasifica en verbo/sustantivo/adjetivo y la agrega a la lista de palabras. Caso contrario, genera el reporte con una descripcion del error. Retorna verdadero o falso dependiendo si la palabra se inserto correctamente o no.""" try: clasificacion = clasificarPalabra(text) if esPalabraValida(text): if (clasificacion == 'VB'): enInfinitivo = conjugate(text, INFINITIVE) articulo = Wiktionary(language='es').search(enInfinitivo) elif (clasificacion == 'JJ'): adjetivo = attributive(text, gender=NEUTRAL) articulo = Wiktionary(language='es').search(adjetivo) elif (clasificacion == 'NN'): articulo = Wiktionary(language='es').search(text) aux = str(articulo.sections) if clasificacion == 'JJ' and 'ADJ' in aux.upper(): clasificacion = 'JJ' elif clasificacion == 'VB' and 'VERB' in aux.upper(): clasificacion == 'VB' elif clasificacion == 'NN' and 'SUST' in aux.upper(): clasificacion == 'NN' else: GenerarReporte('La definición de la palabra' + text + ' no coincide en Pattern y Wiktionary, se la clasificó como ' + clasificacion) if (clasificacion != 'JJ' and clasificacion != 'NN' and clasificacion != 'VB'): GenerarReporte('La palabra ' + text + ' no existe en pattern.') dicPalabras[clasificacion][text] = buscarDefinicion(text) return True else: if (clasificacion == 'JJ' or clasificacion == 'NN' or clasificacion == 'VB'): GenerarReporte('La palabra ' + text + ' no fue encontrada en Wiktionary pero si en pattern siendo un ' + clasificacion) dicPalabras[clasificacion][text] = sg.PopupGetText('Definición' 'No se ha encontrado la palabra en Wiktionary ni en Pattern. Ingrese una definición para la palabra: ') return True else: GenerarReporte('La palabra ' + text + ' no fue encontrada en Wiktionary y tampoco en pattern.') sg.Popup('La palabra ingresada no es válida. Se ha agregado esta situación en un reporte llamado ArchivoReporte.txt en el directorio.') except: GenerarReporte('La palabra ' + text + ' no es válida.') sg.Popup('La palabra ingresada no es válida. Se ha agregado esta situacion en un reporte ArchivoReporte.txt en el directorio.') return False
def adjetives(): print(predicative('hermosos')) print(attributive('hermoso', gender=FEMALE + PLURAL))