Created
August 28, 2024 13:52
-
-
Save guilhermesilveira/d584eac850f87a41f71ca86cdc9c2407 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function processaTexto() { | |
const textoEntrada = document.getElementById("textoEntrada").value; | |
const palavrasChave = pegaPalavrasChave(textoEntrada); | |
const resultado = document.getElementById("resultado"); | |
resultado.textContent = palavrasChave.join(", "); | |
} | |
// Busca o botão | |
const botaoProcessarTexto = document.getElementById("processarTexto"); | |
botaoProcessarTexto.addEventListener("click", processaTexto); | |
function pegaPalavrasChave(texto) { | |
// Quebra o texto em palavras com regex | |
let palavras = texto.split(/\P{L}+/u); | |
// Converte todas as palavras para minúsculas | |
for (let i in palavras) { | |
palavras[i] = palavras[i].toLowerCase(); | |
} | |
palavras = tiraPalavrasRuins(palavras); | |
const frequencias = contaFrequencia(palavras); | |
// Ordena a palavra por frequência | |
function ordenaPalavra(p1, p2) { | |
return frequencias[p2] - frequencias[p1]; | |
} | |
let ordenadas = Object.keys(frequencias).sort(ordenaPalavra); | |
return ordenadas.slice(0, 10); | |
} | |
function tiraPalavrasRuins(palavras) { | |
const boas = []; | |
for (let palavra of palavras) { | |
if (!palavrasRuins.has(palavra) && palavra.length > 2) { | |
boas.push(palavra); | |
} | |
} | |
return boas; | |
} | |
function contaFrequencia(palavras) { | |
const frequencias = {}; | |
for (let palavra of palavras) { | |
if (frequencias[palavra]) { | |
frequencias[palavra]++; | |
} else { | |
frequencias[palavra] = 1; | |
} | |
} | |
return frequencias; | |
} | |
// VARIACAO MENOR, se sobrar tempo? | |
function contaFrequencia() { | |
const frequencias = {}; | |
for (let palavra of palavrasBoas) { | |
frequencias[palavra] = (frequencias[palavra] ?? 0) + 1; | |
} | |
return frequencias; | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Palavras ruins | |
const PALAVRAS_RUINS = new Set([ | |
"de", | |
"a", | |
"o", | |
"e", | |
"que", | |
"do", | |
"da", | |
"em", | |
"um", | |
"para", | |
"é", | |
"com", | |
"não", | |
"uma", | |
"os", | |
"no", | |
"se", | |
"na", | |
"por", | |
"mais", | |
"as", | |
"dos", | |
"como", | |
"mas", | |
"foi", | |
"ao", | |
"ele", | |
"das", | |
"tem", | |
"à", | |
"seu", | |
"sua", | |
"ou", | |
"ser", | |
"quando", | |
"muito", | |
"há", | |
"nos", | |
"já", | |
"está", | |
"eu", | |
"também", | |
"só", | |
"pelo", | |
"pela", | |
"até", | |
"isso", | |
"ela", | |
"entre", | |
"era", | |
"depois", | |
"sem", | |
"mesmo", | |
"aos", | |
"ter", | |
"seus", | |
"quem", | |
"nas", | |
"me", | |
"esse", | |
"eles", | |
"estão", | |
"você", | |
"tinha", | |
"foram", | |
"essa", | |
"num", | |
"nem", | |
"suas", | |
"meu", | |
"às", | |
"minha", | |
"têm", | |
"numa", | |
"pelos", | |
"elas", | |
"havia", | |
"seja", | |
"qual", | |
"será", | |
"nós", | |
"tenho", | |
"lhe", | |
"deles", | |
"essas", | |
"esses", | |
"pelas", | |
"este", | |
"fosse", | |
"dele", | |
"tu", | |
"te", | |
"vocês", | |
"vos", | |
"lhes", | |
"meus", | |
"minhas", | |
"teu", | |
"tua", | |
"teus", | |
"tuas", | |
"nosso", | |
"nossa", | |
"nossos", | |
"nossas", | |
"dela", | |
"delas", | |
"esta", | |
"estes", | |
"estas", | |
"aquele", | |
"aquela", | |
"aqueles", | |
"aquelas", | |
"isto", | |
"aquilo", | |
"estou", | |
"está", | |
"estamos", | |
"estão", | |
"estive", | |
"esteve", | |
"estivemos", | |
"estiveram", | |
"estava", | |
"estávamos", | |
"estavam", | |
]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment