[Algoritmo] [PLN#6] Pré-processamento: Remoção de símbolos



Como já discutimos no artigo anterior sobre a remoção de stopwords, outra vertente que é bastante útil parra o Processamento de Linguagem Natural é a remoção de 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 caracter assim como uma letra. Sendo assim, ela pode ser considerada em alguns contextos como "lixo". 

É bastante comum termos de remover estes caracteres, 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.





[Algoritmo] [PLN#6] Pré-processamento: Remoção de símbolos [Algoritmo] [PLN#6] Pré-processamento: Remoção de símbolos Reviewed by Vinicius dos Santos on 13:45:00 Rating: 5

Nenhum comentário

Escreve ai sua opinião!