Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
¿Cómo cuento el número de combinaciones de palabras de una serie de oraciones?

¿Qué función js puede resolver el siguiente problema?

 ["lemon hy te", "tracy austin", "tracy austin mk3", "ford mondeo mk3"]

Arriba verá una lista de 4 oraciones en una matriz. Las oraciones constan de más de 1 palabra. Habrá de 100000 a 200000 oraciones en la matriz.

paso 1) Para cada valor en la matriz, haga lo siguiente. Divide la oración por palabra y agrega el resultado a la variable resultArr.

Entonces de esta manera: "lemon" "hy" "te"

 let resultArr = []

paso 2) Luego divida la misma oración en cada combinación de dos palabras sin cambiar el orden de la oración y agregue el resultado a la variable resultArr.

Entonces de esta manera: "lemon hy" "hy te"

paso 3) Luego divida la misma oración en cada combinación de tres palabras sin cambiar el orden de la oración y agregue el resultado a la variable resultArr.

Entonces de esta manera: "lemon hy te"

En el paso 4, 5, 6, 7, etc., repita este patrón. Si una oración consta de 4 palabras, en el paso 7, por ejemplo, no necesita agregar la palabra completa a la matriz nuevamente. Eso ya se hizo en el paso 4.

La variable resultArr ahora contiene lo siguiente ["lemon", "hy", "te", "lemon hy", "hy te", "lemon hy te"]

A continuación, me gustaría saber cuántas veces aparece cada combinación de palabras en resultArr. En este caso, el resultado sería el siguiente.

resultado 1:

 [["lemon", 1] ["hy", 1], ["te", 1], ["lemon hy", 1] ["hy te", 1], ["lemon hy te", 1]]

Si el resultado contiene la misma combinación de palabras con el número dos veces como se muestra en el ejemplo a continuación, se puede eliminar 1 vez ["hy", 1] dejando ["hy", 1] 1 vez.

resultado 2:

 [["lemon", 1]] ["hy", 1]] ["hy", 1], ["te", 1], ["lemon hy", 1] ["hy te", 1], ["lemon hy te", 1]]

Ahora, para lo último, la función debería llamarse getWordCombos(range, minAmountOfWords, maxAmountOfWords). Como habrás notado, los dos últimos argumentos no fueron explicados por mí.

Supongamos que ingreso 4 y 12, entonces la función a la que llamo se parece a esto. getWordCombos(rango, 4, 12) entonces solo se deben ejecutar los pasos 4 a 12 descritos anteriormente.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esta es mi respuesta:

 function getWordCombos(list, minWords, maxWords){ let resultArr = []; let temp = []; maxWords += 1; for(let words = minWords; words < maxWords; words++){ for(let l of list){ temp = l.slice().split(" "); if(temp.length + 1 < words){ continue; } while(temp.length + 1 > words){ resultArr.push([temp.slice(0, words).join(" "), 1]) for(let r = 0; r < words; r++){ temp.shift(); } } } } for(let w in resultArr){ for(let ws in resultArr){ if(w == ws){ continue; } if(resultArr[w][0] == resultArr[ws][0]){ resultArr.splice(ws, 1); resultArr[w][1]++; } } } return resultArr; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda