Você está visualizando atualmente Como remover símbolos em Java

Como remover símbolos em Java

Como já discutimos no artigo anterior sobre a remoção de stopwords, outra vertente que é bastante útil parra o Processamento de Linguagem Natural é como remover símbolos usando o Java. 

Por que remover símbolos?

Sabemos que em muitas línguas a pontuação pode ter funções essenciais para compreensão do texto. No entanto, em abordagens de PLN a pontuação é encarada como um caractere assim como uma letra. Sendo assim, ela pode ser considerada em alguns contextos como “lixo”. 

Quais símbolos podem ser removidos?

Isso depende muito da sua aplicação, para decidir isso você precisará compreender quais símbolos não tem nenhum significado para seu texto. Imagine por exemplo que você busca por nomes dentro de um texto, nesse contexto remover pontuações, números e outros símbolos parece completamente razoável. Portanto, a remoção de símbolos é feita de acordo com o contexto.

A seguir iremos mostrar um algoritmo em Java que utiliza uma lista de caracteres para remove-los de um corpus específico. 

import Modules.PreProcessing.Interfaces.SymbolsRemover;
import Util.LoadFiles;
import Util.Paths;
import Util.StringUtils;
import java.util.ArrayList;

public class SymbolsRemoveUsingLists implements SymbolsRemover{
    
    private String pathToSymbolsList;

    @Override
    public String removeSymbols(String words) {
        if(pathToSymbolsList == null 
           || pathToSymbolsList.isEmpty()){
            throw new InvalidPathException();
        }
        ArrayList<String> symbols = 
                   LoadFiles.loadSingleFile(pathToSymbolsList);
        ArrayList<String> retorno;
        
        symbols.toString();
       
       
        for(String sy: symbols){
                if(words.contains(sy)) 
                      words = words.replace(sy, "");
        }

        retorno = StringUtils.stringToArrayOfWords(words);
        ArrayList<String> r = new ArrayList<>();
        
        
        for(String a: retorno){
            if(a.length() > 1){
                r.add(a);
            }
        }
        
        return StringUtils.arrayOfWordsToString(r);
    }

    public String getPathToSymbolsList() {
        return pathToSymbolsList;
    }

    public void setPathToSymbolsList(String pathToSymbolsList) {
        this.pathToSymbolsList = pathToSymbolsList;
    }
    
    

}


As demais classes relacionadas neste código pode ser encontrada em nosso github. Clique na imagem abaixo para acessar este e outras ferramentas de PLN.

Veja nosso Github

Esse artigo ainda é um rascunho e será melhorado em breve. Estamos em um processo de melhoria contínua do nosso conteúdo e logo estaremos refatorando posts como esse e trazer mais informações. Fique à vontade para contribuir conosco usando os nossos contatos.

Vinicius dos Santos

Apenas um apaixonado por Ciência da Computação e a forma com que ela pode transformar vidas!

Deixe um comentário

dezoito − dois =