Bienvenido al sector de Internet que no sabías que existía.

viernes, 29 de junio de 2018

Palabras con todas las vocales (español)

Desde la base de datos "CREA" (Corpus de Referencia del Español Actual):

import csv
def allvowels():
   with open('CREA_total.TXT', encoding="latin-1") as txtfile:
      archivo = open("allvowels.txt", "r+", encoding="latin-1")
      reader = csv.reader(txtfile, delimiter='\t')
      for row in reader:
         if((row[1].count("a") >= 1 or row[1].count("á") >= 1) and
            (row[1].count("e") >= 1 or row[1].count("é") >= 1) and 
            (row[1].count("i") >= 1 or row[1].count("í") >= 1) and 
            (row[1].count("o") >= 1 or row[1].count("ó") >= 1) and 
            (row[1].count("u") >= 1 or row[1].count("ú") >= 1)): 
               archivo.write(row[1]+"\n") 

count = 0
def allvowelscount():
   global count
   with open('CREA_total.TXT', encoding="latin-1") as txtfile:
      reader = csv.reader(txtfile, delimiter='\t') for row in reader:
         if((row[1].count("a") >= 1 or row[1].count("á") >= 1) and
            (row[1].count("e") >= 1 or row[1].count("é") >= 1) and 
            (row[1].count("i") >= 1 or row[1].count("í") >= 1) and 
            (row[1].count("o") >= 1 or row[1].count("ó") >= 1) and 
            (row[1].count("u") >= 1 or row[1].count("ú") >= 1)): 
               count = count+1
   return count

allvowels() #guarda todas las palabras en un archivo
print(allvowelscount()) #17418 palabras
Genera el siguiente archivo (con las 17418 palabras en español que tienen todas las vocales al menos una vez).
Ver archivo.

Por alguna razón hay palabras como "alegreschicasenbuscasdesensacio", y cosas por el estilo... Falta de la RAE y no mía, esta vez.

Las 20 y pico palabras más largas son:
largas = []
pentavocalicas = []
lenwords = []
index = 0
def allvowelslongest(n):
    global largas
    global pentavocalicas
    global lenwords
    global index
    with open('CREA_total.TXT', encoding="latin-1") as txtfile:
        reader = csv.reader(txtfile, delimiter='\t')
        for row in reader:
            if((row[1].count("a") >= 1 or row[1].count("á") >= 1) and
               (row[1].count("e") >= 1 or row[1].count("é") >= 1) and
               (row[1].count("i") >= 1 or row[1].count("í") >= 1) and
               (row[1].count("o") >= 1 or row[1].count("ó") >= 1) and
               (row[1].count("u") >= 1 or row[1].count("ú") >= 1)):
                pentavocalicas.append(row[1])
        for word in pentavocalicas:
            if(len(word) > 25):
                lenwords.append(0)
            else:
                lenwords.append(len(word))
        for i in range(0,n+1):
            index = lenwords.index(max(lenwords))
            largas.append(pentavocalicas[index])
            lenwords.pop(index)
            pentavocalicas.pop(index)
            index = 0
        print(largas)
allvowelslongest(20)

Entrega la siguiente lista:
['neuromusculoesquelética  ', 'universidadcontralaguerra', 'adenofaringoconjuntivales', 'centroestudioscervantinos', 'consecuenciasaparecerán  ', 'democráticorevolucionario', 'desgubernamentalización  ', 'desoxirribonucleoproteína', 'escapuloclaviculohumeral ', 'glutamatodeshidrogenasa  ', 'metabemoglobinreductasa  ', 'neuropsicoendocrinopatía ', 'seudoinstitucionalización', 'suecoasioafroamericanos  ', 'traerunacosaenlasmientes ', 'triflourometanolsulfónico', 'trimetoprimsulfametoxazol', 'usernamemisdocumentos    ', 'vicohistóricaribonucleica', 'vuelvoenseguidapuedeirse ', 'oculovestibulocefalogiro']

De la que solo las palabras neuromusculoesquelética, adenofaringoconjuntivales, democráticorevolucionario, desgubernamentalización, desoxirribonucleoproteína, escapuloclaviculohumeral, glumatodeshidrogenasa, metabemoglobinreductasa, neuropsicoendocrinopatía, seudiinstitucionalización, suecoasioafroamericanos, triflourometanolsulfónico, trimetoprimsulfametoxazol y oculovestíbulocefalogiro suenan como palabras "verosímiles"... El resto son erorres raros, como "vuelvoenseguidapuedeirse"... RAE loca

Nada, estaba al repedo y quise averiguar esas cosas.

<<<neuropsicoendocrinopatía>>> es buenisimo eso

2 comentarios:

  1. Hay un error, separé las palabras por el caracter "\t" que es simplemente un "tab" o "shift"... Debería haber usado el caracter " " o "espacio"... Pero ahora ni ganas de editarlo muejej

    ResponderEliminar

Para poner un comentario, escribí tu mensaje en la caja de texto y elegí en el menú desplegable como quién querés publicar el comentario. Si no tenés ninguna cuenta, seleccioná Nombre/URL o Anónimo. ¡GRACIAS!