Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- """
- OBS:
- "C:/PythonXx/Lib/site-packages/enchant/share/enchant/myspell"
- NÃO UTILIZE A PALAVRA ARGUMENTO
- IMPROVEMENTS:
- Added Shift_LEFT to calculate your score.
- Removed the speech of your score. (was very slow, i'm sorry)
- Graph with base in your score and characters. (can be removed or no, you that know)
- """
- import ftplib
- import multiprocessing
- from tkinter import *
- from tkinter import messagebox
- from os import system
- from sys import platform, argv, exit
- # Inicialização do dicionário português Brasileiro
- dicionario = enchant.Dict("main")
- version = '0.0.9A'
- if len(sys.argv) > 1:
- if sys.argv[1] == '-v':
- print("\n--------------- VERSÃO ---------------")
- print("|\t Versão: %s |" % (version))
- print("| Desenvolvida em: 23/12/2016 |")
- print("| Desenvolvedor: Reni A. Dantas |")
- print("--------------- VERSÃO ---------------")
- exit(0)
- elif sys.argv[1] == '-h':
- print("\nPara conseguir obter uma classificação e a lista dos pronomes e mais, você só precisa colar o texto\
- e apertar o botão \"Encontrar\". Bem simples e intuitivo.")
- exit(0)
- elif sys.argv[1] == '-vh':
- print("\n--------------- VERSÃO ---------------")
- print("|\t Versão: %s |" % (version))
- print("| Desenvolvida em: 23/12/2016 |")
- print("| Desenvolvedor: Reni A. Dantas |")
- print("--------------- VERSÃO ---------------")
- print("\nPara conseguir obter uma classificação e a lista dos pronomes e mais, você só precisa colar o texto\
- e apertar o botão \"Encontrar\". Bem simples e intuitivo.")
- exit(0)
- else:
- print("Argumento inválido!\n")
- exit(0)
- class FalaNota(object):
- def __init__(self, pontos):
- self.__pontos = pontos
- def falar(self):
- self.__pontos *= 10
- if self.__pontos > 10:
- self.__pontos = 10
- # Serviço de fala serve tanto para o Windows quanto pra Linux e Mac. ;D
- if platform.startswith('win32'):
- system('nircmd speak text \"Sua nota é %d\"' % (self.__pontos))
- elif platform.startswith('darwin'):
- system("say \"Sua nota é %d\"" % (self.__pontos))
- else:
- system("espeak -vpt+m1 \"Sua nota é %d\"" % (self.__pontos))
- class Janela(object):
- janela = False
- def __init__(self, master, pontos=0):
- # DEFINIÇÃO DE FRAMES
- self.pontos = pontos
- self.frame_one = Frame()
- self.frame_one.pack()
- self.frame_one.configure(bg="gray92")
- self.frame_two = Frame()
- self.frame_two.pack()
- self.frame_two.configure(bg="gray92")
- self.frame_three = Frame()
- self.frame_three.pack(fill=X)
- self.frame_three.configure(bg="gray92")
- self.frame_four = Frame()
- self.frame_four.pack()
- self.frame_four.configure(bg="gray92")
- # MODELANDO O CONTAINER COM WIDGETS
- # Texto //usuário
- scroll_texto = Scrollbar(self.frame_one)
- scroll_texto.pack(side=RIGHT, fill=Y, pady=5)
- Label(self.frame_one, text="Seu texto: ", fg="black", bg="gray92").pack(side=TOP)
- self.texto = Text(self.frame_one, height=10, width=45, yscrollcommand=scroll_texto.set, wrap=WORD)
- self.texto.bind("<Shift_L>", self.analisar_tudo)
- self.texto.bind("<KeyPress>", self.contar_palavras)
- self.texto.pack(side=RIGHT, pady=10, padx=10)
- scroll_texto.config(command=self.texto.yview)
- # Itens //pronomes, subs, adj e etc...
- scroll_texto_2 = Scrollbar(self.frame_two)
- scroll_texto_2.pack(side=RIGHT, fill=Y, pady=5)
- Label(self.frame_two, text="Itens: ", fg="black", bg="gray92").pack(side=TOP)
- self.itens = Text(self.frame_two, height=10, width=45, yscrollcommand=scroll_texto_2.set, wrap=WORD)
- self.itens.pack(side=RIGHT, pady=10, padx=10)
- scroll_texto_2.config(command=self.texto.yview)
- encontrar = Button(self.frame_three, text="Encontrar", fg="black", bg="gray92", command=self.analisar_tudo)
- encontrar.bind("<Button>", self.avaliar)
- encontrar.pack(pady=4, side=TOP)
- self.indice_classificatorio = Label(self.frame_four, text="Seu índice classificatorio é F")
- self.indice_classificatorio.pack(side=RIGHT)
- self.palavras = Label(self.frame_four, text="Palavras: 0", bg='black', fg='white')
- self.palavras.pack(side=RIGHT, padx=20)
- def contar_palavras(self, event):
- texto = self.texto.get(1.0, END)
- texto = texto.split()
- if len(texto) >= 1:
- self.palavras['text'] = "Palavras: %d" % (len(texto))
- def exibir_janela(self, event):
- j2 = JAcima()
- j2.title("Cadastro")
- j2.geometry("%dx%d+%d+%d" % (230, 110, ws / 2, hs / 5))
- j2.resizable(False, False)
- def destroy():
- j2.destroy()
- if not self.janela:
- self.janela = True
- else:
- destroy()
- self.janela = False
- def avaliar(self):
- self.pontos = 0
- palavras_contidas = {}
- acessed = []
- print("Checando índice...\n")
- texto = self.texto.get(1.0, END)
- texto = texto.split()
- self.tam_texto = len(texto)
- for palavra in texto: # CONTAGEM DE PALAVRAS
- if palavra is acessed:
- pass
- else:
- quant = texto.count(palavra)
- palavras_contidas[palavra] = quant
- acessed.append(palavra)
- for palavra in texto: # CLASSIFICAÇÃO
- if dicionario.check(palavra):
- if palavras_contidas[palavra] > 2:
- print("aumentando...")
- self.pontos += (len(palavra) / 10 ** 2.7) + 0.0000000000167
- else:
- self.pontos += (len(palavra) / 10 ** 2.435) + 0.0000000000167
- else:
- print("diminuindo...")
- self.pontos -= (len(palavra) / 10 ** 2.435) + 0.0000000000167
- if self.pontos < 0:
- self.pontos = 0
- print("Pontos: ", self.pontos)
- print("Palavras e quantidade de vezes utilizadas:\n{}".format(palavras_contidas.items()))
- if self.pontos >= 1:
- self.indice_classificatorio['text'] = "Seu indice classificatório é A"
- elif self.pontos > 0.8:
- self.indice_classificatorio['text'] = "Seu indice classificatorio é B"
- elif self.pontos > 0.6:
- self.indice_classificatorio['text'] = "Seu índice classificatorio é C"
- elif self.pontos > 0.4:
- self.indice_classificatorio['text'] = "Seu indice classificatório é D"
- elif self.pontos > 0.2:
- self.indice_classificatorio['text'] = "Seu índice classificatório é E"
- else:
- self.indice_classificatorio['text'] = "Seu índice classificatorio é F"
- # Instaciamento da classe
- # bot = FalaNota(self.pontos)
- # # Contagem de cores (núcleos)
- # n_cpus = multiprocessing.cpu_count()
- # # Instaciando um worker com processos embasado na quantidade de cores
- # c_cores = lambda n_cpus: 2 if n_cpus <= 3 else n_cpus - 2
- # n_cpus = c_cores(n_cpus)
- # # Aplicando worker
- # process_fala = multiprocessing.Process(target=bot.falar())
- # process_fala.daemon = True
- # process_fala.start()
- def analisar_pronomes(self, texto):
- texto = texto.replace(',', '')
- texto = texto.split()
- pronomes = ['meu', 'teu', 'seu', 'nosso', 'vosso',
- 'meus', 'teus', 'seus', 'nossos', 'vossos', 'seus',
- 'minha', 'tua', 'sua', 'nossa', 'vossa', 'sua', 'minhas',
- 'tuas', 'suas', 'nossas', 'vossas', 'suas', 'eu', 'tu', 'ele', 'ela',
- 'nós', 'vós', 'eles', 'elas', 'me', 'te', 'se', 'o', 'a', 'lhe', 'nos',
- 'vos', 'se', 'os', 'as', 'lhes', 'mim', 'comigo', 'ti', 'contigo', 'si', 'ele',
- 'consigo', 'nós', 'conosco', 'vós', 'convosco', 'si', 'eles', 'consigo',
- 'este', 'esse', 'qualquer', 'algo', 'cada', 'algum', 'que?', 'quem?', 'qual?', 'onde', 'cujo'
- 'cuja',
- 'qual']
- pronomes_contidos = []
- for pronome in pronomes:
- if pronome in texto:
- pronomes_contidos.append(pronome)
- else:
- if len(pronomes_contidos) < 1:
- return ["não há pronomes"]
- else:
- for pronome in pronomes_contidos:
- pass
- else:
- return pronomes_contidos
- def analisar_substantivos(self, texto):
- texto = texto.replace(',', '')
- texto = texto.replace('.', '')
- texto = texto.split()
- substantivos = ['bode', 'boi', 'cão', 'carneiro', 'cavaleiro', 'cavalheiro',
- 'cavalo', 'compadre', 'frade', 'frei', 'genro', 'homem', 'padrasto', 'padre',
- 'pai', 'veado', 'zangado', 'cabra', 'vaca', 'cadela', 'ovelha', 'amazona',
- 'dama', 'égua', 'comadre', 'freira', 'sóror', 'nora', 'mulher', 'madrasta',
- 'madre', 'mãe', 'cerva', 'abelha', 'amigo', 'amiga', 'chapéu', 'forno',
- 'fogo', 'mão', 'mala', 'nariz', 'navio', 'pedra', 'povo', 'rapaz', 'voz',
- 'amigaço', 'amigalhaço', 'amigão', 'animalaço', 'animalão', 'bocarra',
- 'boqueirão', 'bocaça', 'cabeçorra', 'cabeção', 'canzarrão', 'canaz',
- 'chapelão', 'chapeirão', 'copázio', 'coparrão', 'bola', 'madeira'
- 'criançona', 'cruzeiro', 'dentão',
- 'dentilhão', 'fogáreu', 'fornalha',
- 'colo', 'cruz', 'dente', 'livro', 'jornal', 'homem', 'mulher', 'gato',
- 'gata', 'criança', 'corja', 'alcateia', 'arquipélago', 'banca', 'bando',
- 'cáfila', 'cancioneiro', 'cardume', 'chusma', 'elenco', 'feixe', 'girândola',
- 'manada', 'junta', 'molho', 'ninhada', 'quadrilha', 'ramalhete', 'recua', 'vara',
- 'armento', 'atilho', 'banda', 'cacho', 'caravana', 'choldra', 'constelação',
- 'coro', 'falange', 'fato', 'erota', 'legião', 'matilha', 'multidão', 'plêiade',
- 'romanceiro', 'rebanho', 'réstia', 'súcia', 'iconoteca', 'panapaná',
- 'balão', 'balões', 'canção', 'canções', 'confissão', 'confissões', 'coração',
- 'corações', 'eleição', 'eleições', 'estação', 'estações', 'fração', 'frações',
- 'gavião', 'gaviões', 'limão', 'limões', 'mamão', 'mamões', 'nação', 'nações',
- 'operação', 'operações', 'questão', 'questões', 'tubarão', 'tubarões', 'leão',
- 'leões', 'varão', 'varões', 'guaraná', 'gambá', 'laringe', 'pernoite', 'sabiá',
- 'diabete', 'fênix', 'língua', 'pessoa', 'luz', 'matéria', 'escola', 'chicletes',
- 'chiclete', 'perna', 'homens', 'mulheres', 'baiano', 'Jorge', 'trupe', 'acrobáta',
- 'cidade', 'crianças', 'asfalto', 'ponte', 'rua', 'caminho', 'viaduto', 'Leblon',
- 'testa', 'escola', 'caneta', 'papel', 'casa', 'flor', 'guarda-roupa', 'girassol',
- 'passatempo', 'pombo-correio', 'folha', 'árvore', 'fruta', 'terra', 'terreiro', 'pedregulho',
- 'folhagem', 'florista', 'saci', 'sereia', 'fada', 'fogo', 'honestidade', 'tristeza',
- 'amor', 'beijo', 'felicidade', 'abraço', 'animal', 'país', 'praça', 'mulher', 'biblioteca',
- 'fauna', 'matilha', 'penca', 'batalhão', 'menino', 'menina', 'sampa', 'ianomânis', 'benjor',
- 'garoto', 'garotos', 'garota', 'garotas', 'meninos', 'meninas', 'batata', 'serviçal',
- 'alegria', 'floresta', 'esgoto', 'cocar', 'pluma', 'plumas', 'forte', 'pistola', 'cano',
- 'pé', 'trabalho', 'lugar', 'local', 'mundo', "puta", "prostituta", "nenhum", "nenhuma",
- "outro", "outra", "outrem", "vagabunda", "vagabundo", "galinha", "cadela", "algemas", "algema",
- "imagem", "vídeos", "vídeo", "foto", "fotos", "imagens", "hd", "harddisk", "hds", "harddisks",
- "freezer", "congelador", "geladeira", "baseado", "pano", "tecido", "tela", "monitor",
- "computador", "notebook", "macbook", "steve", "jobs", "bill", "gates", "windows", "apple",
- "microsoft", "mac", "linux", "gnu", "unix", "ubuntu", "debian", "redhat", "suse",
- "sistema operacional", "operating system", "processador", "memória",
- "cérebro", "jogo", "cliente", "executável", "olho", "púpila", "púpilas", "olhos",
- "cabelo", "cabelos", "tornozelo", "tornozelos", "dedos", "unhas", "boné", "bonés",
- "roupa", "roupas", "casaco", "casacos", "camisa", "camisas", "calça", "calças", "meia",
- "meias", "hora", "ponteiro", "número", "ps4", "xbox one", "playstation 4", "playstation",
- "sony", "mmo", "rpg", "fps", "tower", "defense", "macaco", "monkey", "baloons", "merda",
- "bosta", "cooler", "gabinete", "new", "york", "city", "document", "documento", "planta",
- "plantas", "pasta", "pastas", "monte", "quarto", "sala", "cozinha", "banheiro", "gcc",
- "codeblocks", "audacity", "photoshop", "adobe", "gimp", "kdenlive", "python", "c++", "c#",
- "java", "script", "html5", "html", "css", "steam", "origin", "godot", "darwin", "unix",
- "perl", "c#", "lua", "sol", "minix", "bsd", "kernel", "ibm", "dell", "acer", "apollo",
- "os", "ubuntu", "beos", "morphos", "elementary", "mint", "amigaos", "hp", "cpu",
- "memory", "devices", "applications", "application", "driver", "drivers", "disk", "disco",
- "memoria", "memória", "network", "networking", "rede", "cia", "fbi", "nsa", "reactos",
- "react", "android", "gentoo", "funtoo", "ios", "blackberry", "posix", "tron", "oberon",
- "mainframe", "symbian", "hurd", "realtime", "cisco", "petros", "superdos", "freedos",
- "solaris", "sinclair", "netware", "skynet", "historia", "history", "people", "pessoas",
- "pessoa", "caminho", "arte", "art", "way", "mundo", "world", "terra", "earth", "information",
- "informação", "map", "mapa", "family", "família", "government", "governo", "health", "vida",
- "saúde", "system", "sistema", "computer", "carne", "meat", "ano", "year", "music", "música",
- "thanks", "person", "pessoa", "reading", "leitura", "method", "método", "data", "dados",
- "conhecimento", "teoria", "theory", "understanding", "law", "lei", "bird", "pássaro",
- "passaro", "literatura", "literature", "problem", "problema", "software", "programa",
- "control", "controle", "knowledge", "força", "poder", "habilidade", "power", "ability",
- "economics", "economia", "love", "amor", "internet", "television", "televisão", "science",
- "ciência", "library", "biblioteca", "fact", "fato", "product", "produto", "idea", "ideia",
- "temperature", "temperatura", "investment", "investimento", "area", "área", "activity",
- "atividade", "story", "industry", "indústria", "industria", "media", "thing", "mídia",
- "média", "thing", "coisa", "oven", "forno", "community", "comunidade", "definition",
- "definição", "safety", "segurança", "quality", "qualidade", "development", "desenvolvimento",
- "language", "linguagem", "management", "gerenciamento", "player", "jogador", "variety",
- "variedade", "video", "vídeo", "week", "semana", "semanas", "weeks", "years", "security",
- "country", "país", "exam", "exame", "movie", "filme", "organization", "organização",
- "equipment", "equipamento", "physics", "analysis", "análise", "analise", "policy",
- "política", "series", "séries", "thought", "basis", "base", "namorado", "namorada",
- "direction", "direção", "direçao", "direcao", "strategy", "estratégia", "estrategia",
- "technology", "tecnologia", "tecnológico", "army", "exército", "exercito", "camera",
- "câmera", "freedom", "liberdade", "paper", "papel", "environment", "ambiente", "child",
- "criança", "crianca", "instance", "instância", "instancia", "month", "months", "mês",
- "mes", "meses", "truth", "verdade", "marketing", "market", "university", "loja", "lojas",
- "markets", "universidade", "universidades", "writing", "article", "artigo", "department",
- "departamento", "difference", "diferença", "goal", "ponto", "gol", "meta", "objetivo",
- "news", "notícias", "notícia", "noticias", "noticia", "audience", "audiência", "audiencia",
- "fishing", "pesca", "growth", "crescimento", "income", "renda", "receita", "salario", "salário",
- "casamento", "união", "uniao", "matrimônio", "matrimonio", "user", "usuário", "usuario",
- "combination",
- "combinação", "combinacao", "combinaçao", "failure", "fracasso", "falha", "meaning",
- "significado",
- "medicine", "medicina", "philosophy", "teacher", "professor", "aluno", "communication",
- "comunicação",
- "comunicaçao", "comunicacao", "night", "noite", "day", "days", "nights", "dias", "dia",
- "noites",
- "energy", "energia", "disease", "doença", "chemistry", "nation", "nação", "naçao", "road",
- "estrada",
- "rodovia", "role", "soup", "sopa", "adsvertising", "anúncio", "anuncio", "location", "locação",
- "sucess",
- "sucesso", "addition", "adição", "soma", "apartment", "apartamento", "education", "educação",
- "educaçao",
- "educacao", "moment", "momento", "painting", "pintura", "politics", "politica", "políticas",
- "politicas",
- "político", "politico", "attention", "atenção", "atençao", "atencao", "decision", "decisão",
- "decisao",
- "event", "evento", "property", "propiedade", "shopping", "student", "estudante", "secundarista",
- "wood",
- "madeira", "competition", "competição", "competiçao", "competicao", "entertainment",
- "entreterimento",
- "office", "distribution", "distribuição", "distribuiçao", "distribuicao", "population",
- "população",
- "president", "presidente", "unit", "unidade", "métrica", "metrica", "category", "categoria",
- "cigarette",
- "context", "contexto", "introduction", "introdução", "introduçao", "introducao", "opportunity",
- "oportunidade",
- "perfomance", "desempenho", "driver", "motorista", "ônibus", "carro", "onibus", "van", "flight",
- "vôo",
- "voo", "comprimento", "lenght", "magazine", "revista", "newspaper", "jornal", "relationship",
- "relacionamento",
- "teaching", "ensino", "cell", "celular", "smartphone", "phone", "tellphone", "telphone",
- "dealer", "traficante",
- "negociante", "vendedor", "comprador", "comerciante", "member", "membro", "finding", "lake",
- "lago", "message",
- "mensagem", "appearance", "aparência", "aparencia", "association", "associação", "assoaciacao",
- "associaçao",
- "concept", "conceito", "customer", "cliente", "consumidor", "death", "morte", "discussion",
- "discussão", "discussao",
- "housing", "habitação", "habitacao", "habitaçao", "inflation", "inflação", "inflaçao",
- "inflacao", "insurance", "seguro",
- "mood", "humor", "woman", "mulher", "feminino", "feminismo", "feminista", "feminazi", "advice",
- "conselho", "conselhos",
- "aconselhamento", "acessoria", "blood", "sangue", "effort", "esforço", "expression",
- "expressão", "importance", "expressao",
- "importância", "importancia", "opinion", "opinião", "payment", "pagamento", "reality",
- "realidade", "responsability",
- "realidade", "situation", "situação", "situacao", "situaçao", "skill", "skills", "statement",
- "condição", "condicao",
- "condiçao", "wealth", "riqueza", "aplicação", "aplicações", "depth", "profundidade", "estate",
- "patrimônio",
- "patrimonio", "imobiliário", "imobiliario", "foundation", "fundação", "fundacao", "fundaçao",
- "grandmother", "avó",
- "avo", "heart", "coração", "coracao", "coraçao", "perspective", "perspectiva", "photo", "foto",
- "recipe", "recipiente",
- "studio", "estúdio", "estudio", "topic", "tópico", "topico", "collection", "coleção", "colecao",
- "coleçao", "depression",
- "depressão", "depressao", "imagination", "imaginação", "imaginacao", "imaginaçao", "passion",
- "paixão", "paixao", "percentage",
- "porcentagem", "resource", "recursos", "fonte", "recurso", "setting", "definições", "ajustes",
- "ajuste", "ad", "ads",
- "agency", "agência", "agencia", "college", "colégio", "colegio", "debt", "débito", "debito",
- "criticism", "criticismo",
- "connection", "conexão", "conexao", "description", "descrição", "descriçao", "descricao", "ram",
- "patience", "paciência",
- "paciencia", "mineswepper", "secretary", "secretária", "secretaria", "solution", "solução",
- "solucao", "soluçao", "administration",
- "administrations", "administração", "administrações", "apsect", "aspecto", "altitude",
- "longitude", "director", "diretor",
- "personality", "personalidade", "psicologia", "psicoanálise", "usp", "ufp", "urj", "mackenzie",
- "fam", "reforma"
- ]
- substantivos_pos = 'Chinelos, vaso, descarga. Pia, sabonete. Escova, creme dental, espuma, creme de barbear, pincel, espuma, gilete, cortina, sabonete, água fria, toalha. Creme para cabelo; pente. Cueca, camisa, abotoaduras, calça, meias, sapatos, gravata, paletó. Carteira, níqueis, documentos, caneta, chaves, lenço, relógio, maços de cigarros, caixa de fósforos. Jornal. Mesa, cadeiras, xícara e pires, prato, bule, talheres, guardanapos. Quadros. Pasta, carro. Cigarro, fósforo. Mesa e poltrona, cadeira, cinzeiro, papéis, telefone, agenda, copo com lápis, canetas, blocos de notas, espátula, pastas, caixas de entrada, de saída, vaso com plantas, quadros, papéis, cigarro, fósforo. Bandeja, xícara pequena. Cigarro e fósforo. Papéis, telefone, relatórios, cartas, notas, vales, cheques, memorandos, bilhetes, telefone, papéis. Relógio. Mesa, cavalete, cinzeiros, cadeiras, esboços de anúncios, fotos, cigarro, fósforo, bloco de papel, caneta, projetos de filmes, xícara, cartaz, lápis, cigarro, fósforo, quadro-negro, giz, papel. Mictório, pia, Táxi. Mesa, toalha, cadeiras, copos, pratos, talheres, garrafa, guardanapo, xícara. Maço de cigarros, caixa de fósforos'
- substantivos_pos = substantivos_pos.lower()
- substantivos_pos = substantivos_pos.split()
- for substantivo in substantivos_pos:
- if substantivo == 'de':
- substantivos_pos.remove('de')
- elif substantivo == 'com':
- substantivos_pos.remove('com')
- elif substantivo == 'e':
- substantivos_pos.remove('e')
- elif substantivo == 'para':
- substantivos_pos.remove('para')
- elif substantivo == 'os':
- substantivos_pos.remove('os')
- else:
- pass
- substantivos_post = [" acre", "alagoas", "amapá", "amazonas", "bahia", "ceará",
- "distrito federal", "espírito santo", "goiás", "maranhão", "mato grosso",
- "mato grosso do sul",
- "minas gerais", "pará", "paraíba", "paraná", "pernambuco", "piauí", "roraima", "rondônia",
- "rio de janeiro", "rio grande do norte", "rio grande do sul", "santa catarina",
- "são paulo",
- "sergipe", "tocantis", "manaus", "salvador", "fortaleza", "brasília", "vitória", "goiânia",
- "são luís", "são luis", "luiz", "luíz", "luís", "cuiabá", "campo grande", "belo horizonte",
- "belém", "joão pessoa", "curitiba", "recife", "teresina", "boa vista", "porto velho",
- "rio de janeiro",
- "natal", "porto alegre", "florianópolis", "floripá", "floripa", "aracaju", "palmas",
- "josé", "reni",
- "vinicius", "lídia", "carolina", "caroline", "carol", "vitor", "lucas", "higor", "junior",
- "daniel", "bruno", "bruna", "elisa", "lívia", "ana", "vitória", "milena", "ketlyn",
- "louise",
- "alisson", "alison", "wanda", "nascimento", "souza", "sousa", "konig", "alves", "gaione",
- "janoski", "paiva", "luiza", "luíza", "carvalho", "vitória", "santos", "lira", "bonato",
- "marchioro", "guimarães", "pavan", "alkimim", "alckimim", "alckimin", "dantas", "cruz",
- "santana", "tafarel", "rafael", "usain", "bolt", "clarice", "natália", "nathaly", "sofia",
- "sophia", "daniel", "biel", "gabriel", "kellin", "gianluca", "hilton", "joão", "joao",
- "dalila", "domingos", "silveira", "felipe", "ferreira", "lopes", "martins", "sena",
- "marcony", "jairo", "guilherme", "munhoz", "conceição", "arthur", "enzo",
- "karine", "juliana", "katia", "karine", "karinne", "ribeiro", "leandro", "kevin",
- "lopes", "lopez", "leonardo", "marcos", "matheus", "mateus", "mariane", "marianne",
- "mariana", "marianna", "anna", "anne", "annie", "frank", "luciana", "menezes",
- "margo", "mayck", "maycom", "rafael", "portugal", "bernardino", "bernardo",
- "carboni", "lobato", "soares", "nayane", "naynne", "nayana", "nayanne",
- "roni", "stefani", "stephanny", "stephanie", "stephani", "stephany", "stefanie",
- "krombauer", "rosiane", "louvart", "mozart", "thiago", "tiago", "uriel", "silva",
- "ricardo", "antonio", "yuri", "iuri", "sullivan", "coutinho", "murilo", "danilo",
- "gentilli", "léo", "leo", "lins", "linz", "ballmer", "fernanda", "nanda", "ruth",
- "bertoli",
- "thamiris", "viick", "vick", "curry", "marinho", "machado", "pedro", "paulo", "juan",
- "marcelo", "marcello", "marcelinho", "marcellinho", "elaine", "zephyrot", "luciane",
- "medina", "rezende", "percival", "chill", "nation", "pewdiepie", "felix", "félix",
- "zayn", "one direction", "justin bieber", "50 cent", "snoop dog", "lil wayne",
- "the chainsmokers", "blackbear", "jailson", "mendes", "bianca", "larissa", "maria",
- "davi", "joaquim", "emanuel", "catarina", "lavínia", "beatriz", "rebeca", "emanuelly",
- "amanda", "alice", "agatha", "gabrielly", "otávio", "rodrigo", "fábio", "ian",
- "murdock", "emanuel", "francisco", "miguel", "bryan", "henrique", "caio", "benjamin",
- "lucca", "isaac", "cauã", "reymond", "raymond", "samuel", "sam", "winchester", "dean",
- "winchester", "nicolas", "heitor", "laura", "valentina", "julia", "rafaela", "heloísa",
- "andrade", "ana clara", "maria clara", "lorena", "isadora", "gabriela", "isabelly",
- "sarah", "eduarda", "giovana", "giovanna", "letícia", "marina", "joyce", "maju",
- "trindade", "edson", "cecília", "rebeca", "melissa", "agata", "kewelin", "sérgio",
- "will", "ludmilla", "ludmila", "ludmylla", "siqueira", "suffi", "cavalaro",
- "lemos", "flauzino", "alan", "allan", "drake", "chris", "brown", "akon", "britney",
- "spears", "rihanna", "tupac", "2pac", "marechal", "costa gold", "haikaiss", "ramos",
- "tony", "senhorita", "senhora", "senhor", "senhorio", "majestade", "princesa",
- "princípe", "demônio", "demon", "damon", "deus", "jesus", "ser maior", "física",
- "português", "geografia", "química", "matemática", "biologia", "engenharia",
- "fisica", "computação", "inglês", "filosofia", "sociologia", "história",
- "arquitetura", "centripeta", "encéfalo", "desintegrações"
- "desintegração", "maravilhosa", "maravilhosas",
- "maravilhoso",
- "maravilhosos"]
- substantivos += substantivos_pos
- substantivos += substantivos_post
- substantivos_contidos = []
- for substantivo in substantivos:
- if substantivo in texto:
- substantivos_contidos.append(substantivo)
- else:
- if len(substantivos_contidos) < 1:
- return ["não há substantivos"]
- else:
- for substantivo in substantivos_contidos:
- pass
- else:
- if 'os' in substantivos_contidos:
- substantivos_contidos.remove('os')
- return substantivos_contidos
- def analisar_artigos(self, texto):
- texto = texto.replace(',', '')
- texto = texto.replace('.', '')
- texto = texto.split()
- artigos = ['o', 'ao', 'do', 'no', 'pelo', 'a', 'à', 'da', 'na', 'pela'
- 'os', 'aos', 'dos', 'nos', 'pelos', 'as', 'às',
- 'das', 'nas', 'pelas',
- 'um', 'uma', 'uns', 'umas']
- artigos_contidos = []
- for artigo in artigos:
- if artigo in texto:
- artigos_contidos.append(artigo)
- else:
- if len(artigos_contidos) < 1:
- return ["não há artigos"]
- else:
- for artigo in artigos_contidos:
- pass
- else:
- return artigos_contidos
- def analisar_preposicoes(self, texto):
- texto = texto.replace(',', '')
- texto = texto.replace('.', '')
- texto = texto.split()
- preposicoes = ['a', 'de', 'em', 'por', 'per']
- preposicoes_contidas = []
- for preposicao in preposicoes:
- if preposicao in texto:
- preposicoes_contidas.append(preposicao)
- else:
- if len(preposicoes_contidas) < 1:
- return ["não há preposições"]
- else:
- for preposicao in preposicoes_contidas:
- pass
- else:
- return preposicoes_contidas
- def analisar_conjuncoes(self, texto):
- texto = texto.replace(',', '')
- texto = texto.replace('.', '')
- texto = texto.split()
- conjuncoes = ["e", "nem", "mas também", "como também", "bem", "como", "mas",
- "porém", "todavia", "contudo", "entretanto", "no entanto", "ou", "ora;",
- "quer", "já", "logo", "portanto", "por isso", "assim", "por conseguinte",
- "que", "porque", "portanto", "pois", "logo", "mesmo quem",
- "porque", "uma vez que", "sendo que", "visto que", "como", "tamanho que",
- "tanto que", "tão que", "tal que", "tal", "qual", "do que", "assim como",
- "mais... que", "menos... que", "conforme", "segundo", "consoante", "ainda que",
- "se caso", "contanto que", "a menos que", "emora", "se bem que", "embora", "por mais que",
- "se que", "salvo se", "à medida que", "à proporção que", "quanto mais", "quanto menos",
- "a fim de que", "para que", "enquanto", "quando", "sempre que", "logo que", "depois que"
- ]
- conjuncoes_contidas = []
- for conjuncao in conjuncoes:
- if conjuncao in texto:
- conjuncoes_contidas.append(conjuncao)
- else:
- if len(conjuncoes_contidas) < 1:
- return ["não há conjunções"]
- else:
- for conjuncao in conjuncoes_contidas:
- pass
- else:
- return conjuncoes_contidas
- def analisar_adverbios(self, texto):
- texto = texto.replace(',', '')
- texto = texto.replace('.', '')
- texto = texto.split()
- adverbios = ["ainda", "agora", "amanhã", "anteontem", "à tarde", "à noite",
- "de repente", "de súbito", "em breve", "de vez em quando", "depois", "hoje", "anteontem",
- "bastante", "muito", "pouco", "menos", "mais", "demasiadamente", "por completo", "apenas",
- "todo", "em demasia", "em excesso", "abaixo", "acima", "por dentro", "por fora", "por aqui",
- "por ali", "atrás", "aqui", "lá", "à direita", "à esquerda", "acolá", "adiante", "aí...",
- "bem", "mal", "depressa", "devagar", "melhor", "pior", "às pressas", "com calma", "lado a lado",
- "às ocultas", "às claras", "frente a frente", "assim debalde", "sim", "certamente",
- "efetivamente", "realmente", "de fato", "por certo", "sem dúvida", "possívelmente",
- "provavelmente",
- "quiçá", "talvez", "porventura", "acaso", "não", "de jeito nenhum", "de forma alguma",
- "de modo algum",
- "deveras", "demais", "de malgrado"]
- adverbios_contidos = []
- for adverbio in adverbios:
- if adverbio in texto:
- adverbios_contidos.append(adverbio)
- else:
- if len(adverbios_contidos) < 1:
- return ["não há advérbios"]
- else:
- for adverbio in adverbios_contidos:
- pass
- else:
- return adverbios_contidos
- def analisar_tudo(self, event="<Return>"):
- self.avaliar()
- texto = self.texto.get(1.0, END)
- texto = str(texto)
- texto = texto.lower()
- tam_texto = len(texto)
- label_line = texto[:10:].title()
- if len(texto) <= 1:
- messagebox.showinfo("Info", "Escreva um texto")
- else:
- pronomes = self.analisar_pronomes(texto)
- substantivos = self.analisar_substantivos(texto)
- artigos = self.analisar_artigos(texto)
- preposicoes = self.analisar_preposicoes(texto)
- conjuncoes = self.analisar_conjuncoes(texto)
- adverbios = self.analisar_adverbios(texto)
- self.itens.delete(1.0, END)
- self.itens.insert(END, "Pronomes: " + ", ".join(pronomes) + "." + "\n")
- self.itens.insert(END, "Substantivos: " + ", ".join(substantivos) + "." + "\n")
- self.itens.insert(END, "Artigos: " + ", ".join(artigos) + "." + "\n")
- self.itens.insert(END, "Preposicoes: " + ", ".join(preposicoes) + "." + "\n")
- self.itens.insert(END, "Conjuncoes: " + ", ".join(conjuncoes) + "." + "\n")
- self.itens.insert(END, "Advérbios: " + ", ".join(adverbios) + "." + "\n")
- self.exibir_janela(event="<Button>")
- fig_size = plt.rcParams["figure.figsize"]
- fig_size[0] = 5
- fig_size[1] = 5
- pontos = self.pontos
- pontos *= 10
- d = lambda pontos: pontos if pontos <= 10 else 10.0
- pontos = d(pontos)
- plt.plot([0, tam_texto], [0, pontos], label=label_line, ) # x e y [] e []
- plt.legend(bbox_to_anchor=(1.05, 0.5))
- plt.ylabel('Pontuação')
- plt.xlabel('Caracteres')
- plt.show()
- raiz = Tk()
- j1 = Janela(raiz)
- class JAcima(Toplevel):
- def __init__(self):
- Toplevel.__init__(self)
- self.frame = Frame(self, pady=5)
- self.frame.pack()
- self.frame_t = Frame(self, pady=5)
- self.frame_t.pack()
- self.frame_tw = Frame(self)
- self.frame_tw.pack()
- Label(self.frame, text="Nome: ").pack(side=TOP)
- self.nome = Entry(self.frame)
- self.nome.pack()
- btn = Button(self.frame_t, text="Salvar registro", command=self.cadastrar)
- btn.pack(side=LEFT)
- btn_baixar = Button(self.frame_t, text="Baixar registro", command=self.receber_arquivo)
- btn_baixar.pack(side=LEFT, padx=5)
- btn_cad_anon = Button(self.frame_tw, text="Salvar anonimamente", command=self.cadastrar_anonimamente)
- btn_cad_anon.pack(side=LEFT)
- def enviar_arquivo(self, nome):
- filename = 'log%s.txt' % (nome)
- session = ftplib.FTP('ftp.xpg.com.br', 'renix1', 'reni1234')
- file = open(filename, 'rb')
- session.storbinary('STOR ' + filename, file)
- file.close()
- session.quit()
- def receber_arquivo(self):
- nome = self.nome.get().title().replace(' ', '')
- if len(nome) < 1:
- messagebox.showwarning("Aviso",
- "Se quiser baixar, coloque o nome!\nSe estiver baixando o padrão, descarte essa mensagem.")
- filename = 'log%s.txt' % (nome.replace(' ', ''))
- session = ftplib.FTP("ftp.xpg.com.br")
- session.login("renix1", "reni1234")
- session.retrbinary("RETR " + filename, open(filename, 'wb').write)
- import os, sys
- path = r"%s" % (os.getcwd())
- if os.path.isfile(filename):
- messagebox.showinfo("Info", "Arquivo %s baixado com sucesso!\n" % (filename.replace('.txt', '')))
- os.startfile(path) # Creio eu que funcione em todos os sistemas operacionais, ;D
- if sys.platform.startswith('win32'):
- os.system("notepad %s" % (filename))
- elif sys.platform.startswith('linux') or sys.platform.startswith('linux2'):
- os.system("nano %s" % (filename)) # Abrir com nano é quase certeza que irá abrir. :D
- elif sys.platform.startswith('darwin'):
- os.system("open -a TextEdit \"%s\"" % (filename)) # Não sei se funciona ou não. Não tenho Mac.
- else:
- messagebox.showwarning("Aviso", "Arquivo não foi baixado com suceesso!\n")
- session.quit()
- def cadastrar(self):
- nome = self.nome.get()
- nome = nome.title()
- pontos = j1.pontos
- texto = j1.texto.get(1.0, END)
- filename = 'log%s.txt' % (nome.replace(' ', ''))
- pontos *= 10
- if pontos > 10:
- pontos = 10
- if len(nome) > 0:
- if pontos > 0:
- messagebox.showinfo("Sucesso", "Cadastro feito com sucesso! Nome: %s, nota: %.2f\n" % (nome, pontos))
- messagebox.showinfo("Info",
- "Faremos o envio deste log para um servidor para melhorarmos nossos serviços futuramente!\n Agradecemos a compreensão.")
- with open(filename, "a+") as log:
- log.write("Nome: " + nome + ", nota: " + str(pontos) + "\n")
- log.write("Texto: " + str(texto) + "\n")
- self.enviar_arquivo(nome.replace(' ', ''))
- else:
- messagebox.showinfo("Sem nota", "Você não tem nota suficiente para isso")
- else:
- messagebox.showwarning("Aviso", "Se quiser cadastrar, coloque o nome!")
- def cadastrar_anonimamente(self):
- texto = j1.texto.get(1.0, END)
- pontos = j1.pontos
- pontos *= 10
- if pontos > 10:
- pontos = 10
- else:
- if pontos > 0:
- messagebox.showinfo("Sucesso", "Cadastro anônimo feito com sucesso!\n")
- self.enviar_arquivo(nome="")
- else:
- messagebox.showwarning("Sem nota", "Você não tem nota suficiente para isso")
- try:
- if __name__ == "__main__":
- ws = raiz.winfo_screenwidth()
- hs = raiz.winfo_screenheight()
- raiz.geometry("%dx%d" % (400, 470))
- raiz.resizable(False, False)
- raiz.title("Pesquisa contextual")
- raiz.mainloop()
- except KeyboardInterrupt:
- print("Saindo do script...\n")
- quit()
Advertisement
Add Comment
Please, Sign In to add comment