Atenção: Esta tarefa não será corrigida manualmente, mas você deve tentar respondê-la genuinamente. Se tiver alguma dúvida se ela está ou não correta, procure os monitores. Tentativas de passar no teste automático sem responder as questões serão consideradas fraude.
Frequência de palavras
Descobrir informações sobre um texto pode ser importante quando se está tentando obter conhecimento sobre o seu conteúdo de forma automática. Uma análise que podemos fazer é descobrir a frequência de símbolos e palavras. As palavras mais frequentes provavelmente são os artigos, proposições e conectivos, então não vamos nos atentar apenas a elas. Essas palavras são chamadas de stop words e não a incluiremos na nossa contagem.
Neste exercício, você deve fazer um programa frequencia.py
que, dado
um arquivo de texto, conte a frequência com que elas aparecem no texto
e descobra algumas palavras-chaves do texto. As palavras mais
frequentes provavelmente dão uma boa ideia sobre o tópico principal do
texto. No entanto, se o texto tratar de mais de um assunto, então
palavras-chaves sobre o tópico secundário provavelmente não aparecerão
tantas vezes.
Entrada
Uma linha contendo o caminho de um arquivo de texto e uma linha contendo stop words.
testes/texto3.in a à ainda ao aos aqui as às assim cada clara claro com como da das de demais desta destes deve do dois dos e é em entanto entre estas existem geral já longo mais maneira melhor mesmo na não nas neste no nos nossa novas novo nunca o os ou outras outro para pela pelo pelos por qual quanto que se sempre seu sobre sua suas talvez todas todavia todo todos tudo um uma
Saída
Seu programa deve mostrar algumas informações sobre o texto:
-
A primeira linha deve conter as três palavras mais frequentes, da mais à menos frequente.
-
A segunda linha deve conter o número de palavras cuja frequência é maior ou igual à da última palavra do primeiro quartil, quando consideramos as palavra da mais à menos frequente. Para determinar o quartil, desconsidere palavras que se repetem 5 vezes ou menos.
-
A terceira linha deve conter até três palavras mais frequentes entre aquelas que não foram incluídas na contagem da linha anterior.
Quando necessário, use a ordem lexicográfica das palavras para resolver empates.
queimadas fumaça amazônia 6 incêndio brasil focos
Sugestão de palavras
Imagine que você deve criar um sistema que, dadas duas palavras, sugere ao usuário qual será a próxima palavra. Essa escolha é baseada na probabilidade de que essas três palavras apareçam nessa ordem em um determinado texto.
Você deve fazer um programa sugestao.py
que leia um arquivo contendo
esse texto e guarde os dados necessários para realizar as sugestões de
palavras. Depois, seu programa deve sugerir uma palavra para cada par
que receber.
Entrada
- A primeira linha contém o caminho do arquivo de texto.
- Em seguida há a sequência de pares de palavras, um por linha.
testes/texto0.in buraco negro buracos negros campo gravitacional velocidade da do buraco deformações no no centro velocidade de
Saída
Para cada par de palavras da entrada, a frase sugerida com as três palavras, uma trio por linha.
buraco negro é buracos negros não campo gravitacional pode velocidade da luz do buraco negro deformações no espaço-tempo no centro da velocidade de escape
Dicas
-
Faça programas para testar as funções de seu programa. Se achar conveniente, você criar um módulo separado para funções comuns. Sempre utilize o Git corretamente! A cada parte pequena função implementada e testada, faça um registro das alterações (commit). Isso ajuda você a se organizar além de registrar o histórico de seu desenvolvimento.
-
Faz parte da tarefa entender e resolver omissões do enunciado. Leia, interprete e entenda o que pede cada questão. Não tente adivinhar o que ela pede e nunca tente programar antes de entender o problema. Pode ser útil olhar para vários exemplos de entrada e saída para confirmar seu entendimento.
-
Neste exercício você deve utilizar, entre as estruturas de dados que já vimos, aquelas que forem mais adequadas ao problema. Se necessário, você pode utilizar funções prontas de Python para ordenação — mas não para outras subtarefas.
-
Caso você esteja tendo problemas com encoding no Windows é importante seguir esses passos para resolvê-los:
-
Ao abrir um arquivo pelo código, coloque o enconding utf-8 como parâmetro:
open(filename, 'r', encoding='utf-8')
. -
Caso você esteja usando o git Bash, ao abri-lo, digite
export PYTHONIOENCODING=utf-8
. Caso esteja usando o cmd, ao abri-lo, digite SET PYTHONIOENCODING=utf-8. Se tiver qualquer dúvida, chame um monitor.
-