Example #1
0
 parser = PreProcess()
 parsed_trainning_documents = {}
 print('processing...')
 for k, v in reader.train.items():
   parsed_trainning_documents[k] = parser.process(v)
 
 # Entrada para o tf-idf, devemos anotar os documentos com suas classes.
 # Receberá como entrada um array de tuplas: ([tokens], classe)
 parsed_trainning_documents_with_classes = []
 for k in parsed_trainning_documents.keys():
   parsed_trainning_documents_with_classes += [(v, k) for v in parsed_trainning_documents[k]]
 
 # Execução tf-idf
 print('generating tf.idf...')
 tf_idf_calculator = TfIdf(parsed_trainning_documents_with_classes)
 tf_idf_calculator.run()
 
 # testa os parâmetros do knn: métrica de distância e valor de K
 for metric in ['cosine', 'euclid']:
   for k in range(5, 11, 2):
     knn = KNN(tf_idf_calculator.results, k, metric)
   
     # confusion_matrix[A][B] = quantas vezes um documento da classe A foi atribuído à classe B
     topics = ['baseball', 'christian', 'guns']
     confusion_matrix = {topic:{t:0 for t in topics} for topic in topics}
     
     print_log = False
     i = 0
     ytrue = []
     ypred = []
     for topic in topics: