1
resposta

Adição na Função o Token Espaço

Dentro das etapas do código da função final após a carga do modelos, as classes utilizadas eu não consegui entender o pq que a classe token_espaco = tokenize.WhitespaceTokenizer() não foi utlizada como uma das etapas da leitura de novos dados na função abaixo:

palavras_irrelevantes = nltk.corpus.stopwords.words('portuguese')
token_pontuacao = tokenize.WordPunctTokenizer()
stemmer = nltk.RSLPStemmer()

def processar_avaliacao(avaliacao):

  # passo 1
 tokens = token_pontuacao.tokenize(avaliacao)

  # passo 2
  frase_processada = [palavra for palavra in tokens if palavra.lower() not in palavras_irrelevantes]

  # passo 3
 frase_processada = [palavra for palavra in frase_processada if palavra.isalpha()]

  # passo 4
 frase_processada = [unidecode.unidecode(palavra) for palavra in frase_processada]

  # passo 5

  frase_processada = [stemmer.stem(palavra) for palavra in frase_processada]

  return ' '.join(frase_processada)
1 resposta

Oii, Julio! Como vai?

No seu caso, a função processar_avaliacao usa WordPunctTokenizer, que separa palavras e pontuações. Isso é útil, por exemplo, para remover pontuações na análise de sentimentos.

O WhitespaceTokenizer, por outro lado, apenas divide o texto com base em espaços em branco, o que não separaria palavras de pontuações. Isso pode não ser ideal se você precisa remover pontuações durante o pré-processamento. Sua aplicação pode depender da necessidade de um processamento mais detalhado, como remover stopwords e aplicar stemming, que já estão sendo feitos na sua função.

Se quiser experimentar, tente substituir token_pontuacao por WhitespaceTokenizer e veja como isso afeta o resultado. Assim, você pode entender melhor o impacto dos diferentes tokenizers na análise de sentimentos.

Segue 2 artigos para expandir os seus conhecimentos, o texto está inglês caso queira traduzi-lo, uma dica é usar tradutor automático do navegador.

Espero ter ajudado. Qualquer dúvida, conte conosco.

Até mais, Julio!