# -*- coding: utf-8 -*-
"""niveis_de_texto.ipynb

Automatically generated by Colaboratory.

Original file is located at
    https://colab.research.google.com/drive/1-KZuSnFwMSd8QkOynuOGvDLIom3zQuMY
"""


"""Analisando a dificuldade de um texto:
- contar quantidade de sentenças
- contar quantidade de palavras
- contar quantidade de silabas
  - Contar as vogais dentro de cada palavra
    - descontar as vogais repetidas
    - excluir as vogais de palavras terminadas com e
  - palavras com menos de 3 letras contar como 1 silaba
  - palavras terminadas em y contabilizamos o 'y' como vogal



importar texto


"""

import ch1text

def contar_sentencas(texto):
  contar = 0
  
  pontuacoes = '.;?!'

  for letra in texto: 
    if letra in pontuacoes:
    #if letra == '.'  or letra == ';' or letra == '?' or letra == '!':
      contar = contar + 1
    
  return contar

def contar_silabas_na_palavra(palavra):
  contar = 0 

  # eliminando pontuação em palavras
  terminadas_em = '.;?!,:'
  ultima_letra = palavra[-1]

  if ultima_letra in terminadas_em:
    nova_palavra = palavra[0:-1]
  else:
    nova_palavra = palavra

  # para palavras monosilabas
  if len(nova_palavra) <= 3:
    return 1

  # eliminando a vogal "e" em finais de palavras
  if nova_palavra[-1] in 'eE':
    nova_palavra = nova_palavra[0:-1]


  # associando vogais a quantidade de silabas
  # verificando existencia de vogal anterior
  vogais = "aeiouAEIOU"
  letra_anterior_vogal = False

  for letra in nova_palavra:
    if letra in vogais:
      if not letra_anterior_vogal:
        contar = contar + 1
      letra_anterior_vogal = True
    else:
      letra_anterior_vogal = False

  # acrescentando silabas em vogais terminadas em "y"
  if nova_palavra[-1] in 'yY':
    contar = contar + 1
  
  return contar

def contar_silabas(palavras):
  contar = 0

  for palavra in palavras: 
    contar_palavra = contar_silabas_na_palavra(palavra)
    contar = contar + contar_palavra

  return contar

def resultado_final(score):
  if score >= 90.0:
    print('Texto com nível de leitura de 5 série')
  elif score >= 80.0:
    print('Texto com nível de leitura de 6 série')
  elif score >= 70.0:
    print('Texto com nível de leitura de 7 série')
  elif score >= 60.0:  
    print('Texto com nível de leitura de 8-9 série')
  elif score >= 50.0:  
    print('Texto com nível de leitura de 10-12 série')
  elif score >= 30.0:  
    print('Texto com nível de leitura universitário')
  else:  
    print('Texto com nível de leitura acadêmica')

def legibilidade_do_texto(texto):
  total_palavras = 0
  total_sentencas = 0
  total_silabas = 0
  score = 0

# contando palavras
  palavras = texto.split()
  total_palavras = len(palavras)
  total_sentencas = contar_sentencas(texto)
  total_silabas = contar_silabas(palavras)

  score = (206.835 - 1.015 * (total_palavras / total_sentencas)
                    -84.6 * (total_silabas / total_palavras))

  # print(total_sentencas, 'Sentenças')
  # print(total_palavras, 'Palavras')
  # print(total_silabas, 'Silabas')
  print(score, 'Nível de dificuldade do texto')
  
  resultado_final(score)
  
legibilidade_do_texto(ch1text.texto)

