tpc3 2 corrigido e 3 concluido
This commit is contained in:
parent
4fa4a07e5c
commit
c9179c9823
1 changed files with 53 additions and 32 deletions
85
TPC3/tpc3.py
85
TPC3/tpc3.py
|
@ -34,32 +34,48 @@ def freq_ano():
|
|||
|
||||
|
||||
def top5_nome_apelido():
|
||||
freq_nome: dict[str,int] = dict()
|
||||
freq_apelido : dict[str,int] = dict()
|
||||
freq_nome: dict[str,dict[str,int]] = dict()
|
||||
freq_apelido : dict[str,dict[str,int]] = dict()
|
||||
na_regex = re.compile(r"(\w+) (\w+ )*(\w+)")
|
||||
for folder in data.values():
|
||||
for proc in folder:
|
||||
na_pessoa = na_regex.match(proc.pessoa.nome)
|
||||
na_pai = na_regex.match(proc.pessoa.pai)
|
||||
na_mae = na_regex.match(proc.pessoa.mae)
|
||||
if na_pessoa:
|
||||
freq_nome.setdefault(na_pessoa.group(1), 0)
|
||||
freq_nome[na_pessoa.group(1)] += 1
|
||||
freq_apelido.setdefault(na_pessoa.group(2), 0)
|
||||
freq_apelido[na_pessoa.group(2)] += 1
|
||||
if na_pai:
|
||||
freq_nome.setdefault(na_pai.group(1), 0)
|
||||
freq_nome[na_pai.group(1)] += 1
|
||||
freq_apelido.setdefault(na_pai.group(2), 0)
|
||||
freq_apelido[na_pai.group(2)] += 1
|
||||
if na_mae:
|
||||
freq_nome.setdefault(na_mae.group(1), 0)
|
||||
freq_nome[na_mae.group(1)] += 1
|
||||
freq_apelido.setdefault(na_mae.group(2), 0)
|
||||
freq_apelido[na_mae.group(2)] += 1
|
||||
top_nome = sorted(freq_nome.items(), key=lambda x: -x[1])[:5]
|
||||
top_apelido = sorted(freq_apelido.items(), key=lambda x: -x[1])[:5]
|
||||
return (top_nome, top_apelido)
|
||||
na = na_regex.match(proc.pessoa.nome)
|
||||
if na:
|
||||
ano = proc.ano
|
||||
seculo = str((ano // 100) + 1)
|
||||
nome = na.group(1)
|
||||
apelido = na.group(3)
|
||||
freq_nome.setdefault(seculo,{})
|
||||
freq_nome[seculo].setdefault(nome,0)
|
||||
freq_nome[seculo][nome] += 1
|
||||
freq_apelido.setdefault(seculo, {})
|
||||
freq_apelido[seculo].setdefault(apelido,0)
|
||||
freq_apelido[seculo][apelido] += 1
|
||||
top5_nome_seculo = {}
|
||||
for seculo,nomes in freq_nome.items():
|
||||
top_nome = sorted(nomes.items(), key=lambda x: -x[1])[:5]
|
||||
top5_nome_seculo.__setitem__(seculo,top_nome)
|
||||
|
||||
top5_apelido_seculo = {}
|
||||
for seculo,apelidos in freq_apelido.items():
|
||||
top_apelido = sorted(apelidos.items(), key=lambda x: -x[1])[:5]
|
||||
top5_apelido_seculo.__setitem__(seculo,top_apelido)
|
||||
print(top5_nome_seculo)
|
||||
return (top5_nome_seculo, top5_apelido_seculo)
|
||||
|
||||
def freq_relacoes():
|
||||
|
||||
relationship = dict()
|
||||
exp = re.compile(r"[a-zA-Z ]*,([a-zA-Z\s]*)\.[ ]*Proc\.\d+\.")
|
||||
for folder in data.values():
|
||||
for proc in folder:
|
||||
obs = proc.pessoa.obs
|
||||
matches = exp.finditer(obs)
|
||||
for match in matches:
|
||||
relationship.setdefault(match.group(1),0)
|
||||
relationship[match.group(1)] += 1
|
||||
return relationship
|
||||
|
||||
|
||||
|
||||
def print_freq_ano(freq_ano: dict[int, int]):
|
||||
|
@ -69,15 +85,19 @@ def print_freq_ano(freq_ano: dict[int, int]):
|
|||
|
||||
|
||||
def print_top5_nome_apelido(freqs: tuple):
|
||||
print("Top 5 nomes")
|
||||
for k, v in freqs[0]:
|
||||
print(f"{k} : {v}")
|
||||
for seculo in sorted(freqs[0].keys()):
|
||||
print(f"Seculo {seculo}")
|
||||
print("\tTop 5 nomes")
|
||||
for k, v in freqs[0][seculo]:
|
||||
print(f"\t\t{k} : {v}")
|
||||
print("\n\tTop 5 apelidos")
|
||||
for k, v in freqs[1][seculo]:
|
||||
print(f"\t\t{k} : {v}")
|
||||
|
||||
print("\nTop 5 apelidos")
|
||||
for k, v in freqs[1]:
|
||||
def print_freq_relacoes(freqs:dict[str,int]):
|
||||
for k,v in freqs.items():
|
||||
print(f"{k} : {v}")
|
||||
|
||||
|
||||
def parseFile(filename):
|
||||
casos_erro = 0
|
||||
f = open(filename, "r")
|
||||
|
@ -112,8 +132,9 @@ def main():
|
|||
print(f"Casos de erro : {casos_erro}")
|
||||
#frequencia_ano = freq_ano()
|
||||
#print_freq_ano(frequencia_ano)
|
||||
top5 = top5_nome_apelido()
|
||||
print_top5_nome_apelido(top5)
|
||||
|
||||
#top5 = top5_nome_apelido()
|
||||
#print_top5_nome_apelido(top5)
|
||||
frequencia_relacoes = freq_relacoes()
|
||||
print_freq_relacoes(frequencia_relacoes)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
Loading…
Reference in a new issue