Commit a670858e authored by sofia martin's avatar sofia martin
Browse files

ejemplo de como generar combinaciones y permutaciones dad una lista de letrsa

parent e48c3db2
from itertools import permutations
import pattern.es
'''este programa genera todas las combinaciones posibles con las letras que recibe en una lista'''
#clasificaciones posibles para adjetivos y verbos
TIPO = {'adj': ["AO", "JJ", "AQ", "DI", "DT"],
'verb': ["VAG", "VBG", "VAI", "VAN", "MD", "VAS", "VMG", "VMI", "VB", "VMM", "VMN", "VMP", "VBN", "VMS", "VSG",
"VSI", "VSN", "VSP", "VSS"]
}
def clasifico(palabra, clasificacion):
'''
Función que recibe una palabra y verifica que sea aadjetivo o verbo
:param palabra: es un string
:param clasificacion: un diccionario que tiene las clasficaciones que busco
:return: True si está dentro de la clasificación, False caso contrario
'''
s = (pattern.es.parse(palabra)).split()
# print(s)
for cada in s:
for c in cada:
for tipo in clasificacion:
# print("la clasificacion que se busca es {}".format(tipo))
if c[1] in clasificacion[tipo]:
print(palabra + " es del tipo " + tipo)
return True
def es_pal(pal):
'''
Verifica si es una palabra válida
:param pal: un string
:return: True si es, False caso contrario
'''
if pal in pattern.es.lexicon:
# print(pal + " en lexicon ")
if pal in pattern.es.spelling:
# print(pal + " en spelling ")
return True
return False
def armo_palabra(letras_palabras):
'''
Armo las posibles combinaciones y permutaciones con una lista de letras recibidas
:param letras_palabras: lista de letras
:return: un conjunto con las palabras armadas
'''
letras = ''
# for letra in letras_palabras:
# letras += entradas[letra]
for letra in letras_palabras:
letras += letra
print(letras)
palabras = set()
for i in range(2, len(letras) + 1):
palabras.update((map("".join, permutations(letras, i))))
return (palabras)
#Ejemplo de uso con una lista de letras dada
lista_palabras = armo_palabra(["c", "a", "s", "s", "k", "a", "r"])
# clasifico con pattern
#lista palabras válidas dad una clasificación
palabras_adj_verb = []
#todas las palabras válidas posibles
palabras_validas = []
for pal in lista_palabras:
if es_pal(pal):
palabras_validas.append(pal)
if clasifico(pal, TIPO):
palabras_adj_verb.append(pal)
print(palabras_adj_verb)
print(palabras_validas)
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment