Questão FC331228
Igor, analista de dados da CVM, escreveu e rodou o código a seguir. from nltk.corpus import stopwords from nltk.tokenize import word_tokenize texto = "Eu sou um analista de dados d
Linguagens de Programação
FGV · 2024
Igor, analista de dados da CVM, escreveu e rodou o código a seguir.
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
texto = "Eu sou um analista de dados da CVM!"
stop_words = set(stopwords.words('portuguese'))
tokens = word_tokenize(texto)
tokens_processados = [w for w in tokens if not w in stop_words]
print(tokens_processados)
Considerando que o código foi executado sem erros e sabendo que Igor está usando Python 3.10.12 e NLTK 3.8.1, a saída do terminal foi:
- ['analista', 'dados', 'CVM'];
- ['analista', 'dados', 'CVM', '!'];
- ['Eu', 'analista', 'dados', 'CVM'];
- ['Eu', 'analista', 'dados', 'CVM', '!'];
- ['Eu', 'sou', 'analista', 'dados', 'CVM', '!'].
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
O resultado impresso é ['Eu', 'analista', 'dados', 'CVM', '!']. Isso ocorre porque o código faz duas operações fundamentais: tokenização e remoção de stopwords.
Ao usar word_tokenize, o texto é dividido em tokens individuais; a pontuação ("!") vira um token separado, por isso aparece na lista final.
Em seguida, o filtro compara cada token com a lista de stopwords do NLTK em português. Essa lista está em minúsculas; a verificação é case-sensitive, então "Eu" (com inicial maiúscula) não coincide com "eu" e permanece.
Palavras como "sou", "um", "de" e "da" constam da lista de stopwords e são removidas, enquanto tokens relevantes — "analista", "dados" e "CVM" — são mantidos, gerando a saída indicada.
Conteúdo do catálogo FC Concursos · Atualizado em