Secciones de la página

key. tol


Declaraciones


Funciones


Time oriented language


Árbol de ficheros

Funciones

Text KeyWord()

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









key.tol de Omr.Forms

Funciones para palabras clave.

Declaraciones

Funciones

  • Text KeyWord(Set valSet, Real minChr, Real a2zOrd, Real maxKey)
    Retorna un texto formado por una lista de palabras separadas por comas. Selecciona las maxKey palabras mas frecuentes de un conjunto de textos u otros valores que intenta convertir a texto. Las palabras mas frecuentes las ordena alfabeticamente si a2zOrd. Retira todas las palabras que no superen la longitud minChr y todas las que aparecen en una tabla interna de palabras comunes.

Funciones

Text KeyWord()

//////////////////////////////////////////////////////////////////////////////
Text KeyWord(Set  valSet, // Set of texts
             Real minChr, // Minimum number of chars
             Real a2zOrd, // If true ordered
             Real maxKey) // Maximun number of keywords
//////////////////////////////////////////////////////////////////////////////
{
  Text allTxt = ToLower(F(valSet));   // Todo a texto
  Text fixWit = Replace(allTxt, " ", " "); // Unico &xxx; que respeta
  Text notHtm = TxtOutHtmTag(fixWit); // Fuera de html y scripts, sin &xxx;

  Text clsTxt = Compact(ReplaceTable(notHtm,
    [[ [[Char(34), " "]], [["'",      " "]],
       [["." ,     " "]], [[":",      " "]],
       [[";",      " "]], [[",",      " "]],
       [["[",      " "]], [["]",      " "]],
       [["(",      " "]], [[")",      " "]],
       [["«",      " "]], [["»",      " "]],
       [["¡",      " "]], [["!",      " "]],
       [["¿",      " "]], [["?",      " "]],
       [["/",      " "]], [["\\",     " "]]
    ]]));

  Set  setTxt = Tokenizer(clsTxt, " "); // Romper por palabras

  // Selecciona palabras con mas de minChr caracteres  
  Set  setSel = Select(setTxt, Real(Text oneWrd)
                { GT(TextLength(oneWrd), minChr) });

  // Clasificar por palabras
  Set  setCla = Classify(setSel, Real(Text a, Text b) { Compare(a,b) });

  // Tabla de frecuencias [palabra, ocurrencias]
  Set  tabFrq = EvalSet(setCla, Set(Set oneCla)
                        { [[ oneCla[1], Card(oneCla) ]] });

  // Ordenar por ocurrencia de mas a menos
  Set  srtFrq = Sort(tabFrq, Real(Set a, Set b)
                     { Compare(Real(b[2]), Real(a[2])) });

  // Proyectar por la columna de palabras que es la primera
  Set  keySet = EvalSet(srtFrq, Text(Set wrdFrq) { wrdFrq[1] });

  Set  keyMin = keySet - // Palabras comunes a retirar
  [[
     "además",
     "ambos", "ambas",
     "aunque",
     "cualquier", "cualquiera",
     "cuando", "cuándo",
     "deberá", 
     "desde",
     "dentro",
     "entre",
     "esta", "estas", "esto", "estos", 
     "junto",
     "mismo", "mismos", "misma", "mismas",
     "mucho", "muchos", "mucha", "muchas",
     "ningún", "ninguna",
     "nosotros", "nosotras",
     "nuestro", "nuestros", "nuestra", "nuestras", 
     "otra", "otras", "otro", "otros",
     "parte",
     "porque",
     "puede", "pueden", "pudiendo",
     "quienes",
     "siempre",
     "siguiente", "siguientes",
     "sobre",
     "sumamente",
     "también",
     "tanto",
     "través",
     "zulú"
  ]];

   // Seleccionar las maxKey palabras o todas si maxKey == 0
  Set  keyFst = If(maxKey, SetFirstN(keyMin, maxKey), keyMin);

  // Ordenar alfabeticamente si se necesita
  Set  keySor = If(!a2zOrd, keyFst, Sort(keyFst, Real(Text a, Text b)
                                         { Compare(a,b) }));

  // Convertir a texto separado por comas
  ReplaceTable(F(keySor), [[ [["[", ""]], [["]", ""]], [["|", ", "]] ]])
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un texto formado por una lista de palabras separadas por comas.
Selecciona las maxKey palabras mas frecuentes de un conjunto de textos u
otros valores que intenta convertir a texto.
Las palabras mas frecuentes las ordena alfabeticamente si a2zOrd.
Retira todas las palabras que no superen la longitud minChr y todas las que
aparecen en una tabla interna de palabras comunes.",
KeyWord);
//////////////////////////////////////////////////////////////////////////////

Time oriented language

//////////////////////////////////////////////////////////////////////////////
// FILE    : key.tol
// AUTHOR  : http://www.asolver.com
// PURPOSE : Funciones para palabras clave.
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
Text KeyWord(Set  valSet, // Set of texts
             Real minChr, // Minimum number of chars
             Real a2zOrd, // If true ordered
             Real maxKey) // Maximun number of keywords
//////////////////////////////////////////////////////////////////////////////
{
  Text allTxt = ToLower(F(valSet));   // Todo a texto
  Text fixWit = Replace(allTxt, " ", " "); // Unico &xxx; que respeta
  Text notHtm = TxtOutHtmTag(fixWit); // Fuera de html y scripts, sin &xxx;

  Text clsTxt = Compact(ReplaceTable(notHtm,
    [[ [[Char(34), " "]], [["'",      " "]],
       [["." ,     " "]], [[":",      " "]],
       [[";",      " "]], [[",",      " "]],
       [["[",      " "]], [["]",      " "]],
       [["(",      " "]], [[")",      " "]],
       [["«",      " "]], [["»",      " "]],
       [["¡",      " "]], [["!",      " "]],
       [["¿",      " "]], [["?",      " "]],
       [["/",      " "]], [["\\",     " "]]
    ]]));

  Set  setTxt = Tokenizer(clsTxt, " "); // Romper por palabras

  // Selecciona palabras con mas de minChr caracteres  
  Set  setSel = Select(setTxt, Real(Text oneWrd)
                { GT(TextLength(oneWrd), minChr) });

  // Clasificar por palabras
  Set  setCla = Classify(setSel, Real(Text a, Text b) { Compare(a,b) });

  // Tabla de frecuencias [palabra, ocurrencias]
  Set  tabFrq = EvalSet(setCla, Set(Set oneCla)
                        { [[ oneCla[1], Card(oneCla) ]] });

  // Ordenar por ocurrencia de mas a menos
  Set  srtFrq = Sort(tabFrq, Real(Set a, Set b)
                     { Compare(Real(b[2]), Real(a[2])) });

  // Proyectar por la columna de palabras que es la primera
  Set  keySet = EvalSet(srtFrq, Text(Set wrdFrq) { wrdFrq[1] });

  Set  keyMin = keySet - // Palabras comunes a retirar
  [[
     "además",
     "ambos", "ambas",
     "aunque",
     "cualquier", "cualquiera",
     "cuando", "cuándo",
     "deberá", 
     "desde",
     "dentro",
     "entre",
     "esta", "estas", "esto", "estos", 
     "junto",
     "mismo", "mismos", "misma", "mismas",
     "mucho", "muchos", "mucha", "muchas",
     "ningún", "ninguna",
     "nosotros", "nosotras",
     "nuestro", "nuestros", "nuestra", "nuestras", 
     "otra", "otras", "otro", "otros",
     "parte",
     "porque",
     "puede", "pueden", "pudiendo",
     "quienes",
     "siempre",
     "siguiente", "siguientes",
     "sobre",
     "sumamente",
     "también",
     "tanto",
     "través",
     "zulú"
  ]];

   // Seleccionar las maxKey palabras o todas si maxKey == 0
  Set  keyFst = If(maxKey, SetFirstN(keyMin, maxKey), keyMin);

  // Ordenar alfabeticamente si se necesita
  Set  keySor = If(!a2zOrd, keyFst, Sort(keyFst, Real(Text a, Text b)
                                         { Compare(a,b) }));

  // Convertir a texto separado por comas
  ReplaceTable(F(keySor), [[ [["[", ""]], [["]", ""]], [["|", ", "]] ]])
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un texto formado por una lista de palabras separadas por comas.
Selecciona las maxKey palabras mas frecuentes de un conjunto de textos u
otros valores que intenta convertir a texto.
Las palabras mas frecuentes las ordena alfabeticamente si a2zOrd.
Retira todas las palabras que no superen la longitud minChr y todas las que
aparecen en una tabla interna de palabras comunes.",
KeyWord);
//////////////////////////////////////////////////////////////////////////////

Árbol de ficheros

Omr.Forms construye las páginas web Html del sitio web omrforms.es

  • make.tol proceso principal de generación del sitio web omrforms.es
  • tol directorios de código Tol
    • cmm funciones comunes
    • app funciones específicas de la aplicación
      • pdb.tol de manejo de los posts de una agenda
      • key.tol generación de palabras clave para páginas
    • inc.tol para la inclusión de ficheros Tol
  • agenda directorio destinado a la única agenda de post
    • agendadb.age ejemplo de un conjunto de posts de contenido para publicar
  • web directorio destinado a las páginas web generadas
    • css directorio para ficheros de estilo Cascade Style Sheet
      • common.css fichero de estilo para las páginas Html
    • seed.htm semilla de página Html con Tol embebido para generar otras
    • sitemap.xml mapa del sitio web generado automáticamente en Xml
    • preciospresupuestoslecturaoptica.html ejemplo del código Html de una de las páginas web generadas
  • ejemplos.html ejemplos visuales de 3 páginas Html generadas automáticamente
  • omr_forms.pdf documento resumen de funciones del programa constructor de web

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol