Como eliminar palavras de um texto ?

1. Como eliminar palavras de um texto ?

LUCAS GOMES
LUCASGOMES111

(usa Outra)

Enviado em 19/03/2021 - 12:04h


Olá, sou novato nesse mundo do linux, estou tentando fazer um script que apaga ocorrencias de palavras que tenho dentro de um arquivo txt (stopWords.txt)
Tenho o seguinte comando :
cat arquivo.txt | egrep -o '\w+' | sort | uniq -c | sort -n -r | head -n 5
que pega um arquivo txt, deixa uma palavra por linha, ver as maiores ocorrencias e os rankeia do que mais aparece para o que menos aparece (os 5 primeiros)
porém esta aparecendo muitas palavras de ligação (de, a, o , que, dos, como, entre. ... ) tenho um arquivo com todas as palavras que gostaria de ignora-las, como posso
fazer ?


  


2. Re: Como eliminar palavras de um texto ?

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 19/03/2021 - 13:02h

O software ou comando que faz a exclusão e substituição de palavras de um arquivo texto é o:
$ sed 
Para manual:
$ man sed 
Use um "pipe(|)" e use o sed.
https://www.gnu.org/software/sed/manual/sed.html

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


3. Re: Como eliminar palavras de um texto ?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/03/2021 - 15:59h

LUCASGOMES111 escreveu:


Olá, sou novato nesse mundo do linux, estou tentando fazer um script que apaga ocorrencias de palavras que tenho dentro de um arquivo txt (stopWords.txt)
Tenho o seguinte comando :
cat arquivo.txt | egrep -o '\w+' | sort | uniq -c | sort -n -r | head -n 5
que pega um arquivo txt, deixa uma palavra por linha, ver as maiores ocorrencias e os rankeia do que mais aparece para o que menos aparece (os 5 primeiros)
porém esta aparecendo muitas palavras de ligação (de, a, o , que, dos, como, entre. ... )
tenho um arquivo com todas as palavras que gostaria de ignora-las, como posso fazer ?

Boa tarde Lucas.
O comando egrep '\w+' casa "palavras", independentemente da quantidade de caracteres.....
Para definir o nº de letras, pode usar,
grep -E '\w{4,}' arquivo #egrep está obsoleto, veja: man egrep|grep 'deprecated'
{4,} => com 4 ou mais caracteres
------------------------------------------------------------------------
Sugestão:
Use o arquivo com palavras para ignorar
exemplo:
==> arq01.txt <==
Um
Dois
Tres
Quatro
Cinco
Seis
Sete
Oito
Nove
Dez
==> arq02.txt <==
Zero
Quatro
Oito
Dez

grep -v -f arq02.txt arq01.txt
Um
Dois
Tres
Cinco
Seis
Sete
Nove


Ignora as palavras de arq02.txt, isso usando o
-v, --invert-match
Note que nos dois arquivos tenho uma palavra por linha,
------------------------------------------------------------------------
Arquivo "uma linha"
echo "Zero Um Dois Tres Quatro Cinco Seis Um Um Um Dois Tres Tres Sete Cinco Cinco Cinco Cinco Oito Nove Dez" > umalinha.txt
sed 's/ /\n/g' umalinha.txt|grep -v -f arq02.txt |sort|uniq -c|sort -nr|nl -n rz -w2 -s ' '
01 5 Cinco
02 4 Um
03 3 Tres
04 2 Dois
05 1 Sete
06 1 Seis
07 1 Nove
--------------------------------------------------------------------------------------------------------------------
Contando as ocorrências com o awk
awk 'BEGIN{RS=" "}{count[$0]++}END{for(x in count)print count[x],x}' umalinha.txt|sort -nr
5 Cinco
4 Um
3 Tres
2 Dois
1 Zero
1 Sete
1 Seis
1 Quatro
1 Oito
1 Nove
1 Dez




______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



4. Re: Como eliminar palavras de um texto ?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/03/2021 - 21:07h

aguamole escreveu:

O software ou comando que faz a exclusão e substituição de palavras de um arquivo texto é o:
$ sed 
Para manual:
$ man sed 
Use um "pipe(|)" e use o sed.
https://www.gnu.org/software/sed/manual/sed.html

O software ou comando que faz a exclusão e substituição de palavras de um arquivo texto é o: [b]$ sed
AGUAMOLE.... boa noite.
Não somente o sed, o gawk, também faz, e atualiza o arquivo original.
-------------------------------------
Use um "pipe(|)" e use o sed.
Pra que pipe?????
sed 's/tira o pipe//' arquivo
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



5. Re: Como eliminar palavras de um texto ?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 20/03/2021 - 12:08h

1.sed '\bpalavra\b' p excluir palavra
2.sed '\bpalavra1\b/|\bpalavra2\b/|\bpalavra3\b' p excluir varias palavras
Faça um arquivo c as palavras uma por linha. Estou sem acesso a terminal p testar, mas vc poderia rodar
vol=$(cat arq_stopword | xargs -I % echo "\b%\b"| tr '\n' '/|')
sed "$vol" arq_texto_a_ser_processado







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts