Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2024

ProgramaçãoLinguagens de programação
Código
fg077333
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 7 - Ciência de Dados - Tarde
Igor, analista de dados da CVM, escreveu e rodou o código a seguir.from nltk.corpus import stopwordsfrom nltk.tokenize import word_tokenizetexto = "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 ifnot 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:
  1. A['analista', 'dados', 'CVM'];
  2. B['analista', 'dados', 'CVM', '!'];
  3. C['Eu', 'analista', 'dados', 'CVM'];
  4. D['Eu', 'analista', 'dados', 'CVM', '!'];
  5. E['Eu', 'sou', 'analista', 'dados', 'CVM', '!'].
Revelar gabarito e comentário

GabaritoD — ['Eu', 'analista', 'dados', 'CVM', '!'];

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Processamento de Texto com NLTK em Python - Remoção de Stopwords

Gabarito: letra D. O código tokeniza a frase e remove tokens que estejam no conjunto de stopwords portuguesas do NLTK. Como a comparação é sensível a maiúsculas/minúsculas (case-sensitive), a palavra "Eu" (iniciada com maiúscula) não é removida, pois o conjunto de stopwords contém "eu" em minúsculo. O ponto de exclamação "!" também não é uma stopword, portanto permanece. Assim, a lista resultante é ['Eu', 'analista', 'dados', 'CVM', '!'].

A banca testa o conhecimento sobre a sensibilidade a maiúsculas na correspondência com stopwords. Muitos candidatos assumem que o código converte os tokens para minúsculo antes de comparar, o que não ocorre.

Alternativa A — ❌ Incorreta

Remove "Eu" e "!" indevidamente. Ignora que "Eu" em maiúsculo não é stopword.

Alternativa B — ❌ Incorreta

Remove "Eu" indevidamente. Inclui "!" corretamente, mas esquece que "Eu" não é filtrado.

Alternativa C — ❌ Incorreta

Remove "!" indevidamente. O ponto de exclamação não é uma stopword, portanto deve ser mantido.

Alternativa D — ✅ Correta ⟵ GABARITO

Lista correta: ['Eu', 'analista', 'dados', 'CVM', '!']. Explica o motivo: case-sensitive para "Eu" e não remoção de pontuação.

Alternativa E — ❌ Incorreta

Inclui "sou", que é uma stopword (minúscula) e deveria ser removida.

NÃO CAIA NESSA!

A banca explora a sensibilidade a maiúsculas: "Eu" permanece porque a stopword "eu" está em caixa baixa. Muitos assumem que o NLTK converte automaticamente os tokens para minúsculo, mas não é o caso. Além disso, a pontuação "!" não é considerada stopword, sendo mantida.

Link permanente: /questoes/fg077333