class Cuadro: clasificador = None def __init__(self): self.clasificador = Clasificador() def mostrar(self, imagen): postura, vector = self.clasificador.posturaPersona(imagen) return postura, vector def ToClase(self, post): Posturas = [\ 'Mano Izquierda Apuntando', 'Mano derecha Apuntando' 'Brazos cruzados' 'Mano alzada' 'Mano Cabeza' 'Manos costado' 'Expositiva' 'Manos cadera' 'Mano Mentón' 'Mano derecha Abierta' 'Mano Izquierda Abierta' 'Manos Juntas'] return Posturas[post]
def clasificar(test_path, train_path, clasificador): ''' Recoge las imagenes del directorio train, entrena el algoritmo, y luego hace un predict con las imagenes del directorio test. Por último te muestra los resultados. :param test_path: directorio de las imagenes de test :param train_path: directorio de las imagenes de train :param clasificador: tipo de clasificador :return: Devuelve por pantalla el porcentaje de aciertos del clasificador ''' imagenes, y = recorrerDirectorios(train_path) clasif = Clasificador(clasificador=clasificador) clasif.fit(imagenes, y) imagenes2, nombre_imagenes = cogerImagenes(test_path) resultados = clasif.predict(imagenes2) # Cogemos los dos primeros digitos del nombre de la imagen (etiqueta) o uno # en caso de estar entre el cero y el 9 array_resultados = np.array([ int(nombre[1:2]) if nombre[0] == '0' else int(nombre[:2]) for nombre in nombre_imagenes ]) porcentaje = clasif.comprobar_resultados(array_resultados) print(f'Porcentaje de aciertos: {porcentaje}')
#AQUI VA IR EL SERVIDOR :) from flask import Flask, request from flask_restful import Resource, Api, reqparse from flask_cors import CORS import info from flask.json import jsonify import ast from util import get_top_n_uid, inicializar_algoritmo from users import save_user_ratings from clasificador import Clasificador clasificador = Clasificador() app = Flask(__name__) CORS(app) api = Api(app) parser = reqparse.RequestParser() parser.add_argument('ratings', action='append') class Peliculas(Resource): def get(self): user_id = int(request.args.get('user_id')) user_testset = list( filter(lambda row: row[0] == user_id, clasificador.testset)) predictions = clasificador.algo.test(user_testset) movies_id = get_top_n_uid(predictions, user_id) imdb_ids = info.get_movies_imdb_id(movies_id) ret = [] for imdb_id in imdb_ids:
import random import sys from clasificador import Clasificador from general_functions import * ham_training_messages = convert_to_list('train_ham.txt') spam_training_messages = convert_to_list('train_spam.txt') ham_cross_validation_messages = convert_to_list('cv_ham.txt') spam_cross_validation_messages = convert_to_list('cv_spam.txt') clasificador = Clasificador(ham_training_messages, spam_training_messages) # clasificador = Clasificador( # ['play sports today', 'went play sports', 'secret sports event', 'sports is today', 'sports cost money'], # ['offer is secret', 'click secret link', 'secret sports link'] # ) test_messages_dict = [(message, clasificador.SPAM_MESSAGE) for message in spam_cross_validation_messages] for message in ham_cross_validation_messages: test_messages_dict.append((message, clasificador.HAM_MESSAGE)) #print(clasificador.get_performance(test_messages_dict, 2)) optimizations = [] k = 0.001 for i in range(0, 1000): optimizations.append((clasificador.get_performance(test_messages_dict, k), k))
import cv2 as cv from camara import Camara from extractorCaracteristicas import ExtractorCaracteristicas from clasificador import Clasificador camara = Camara(0) imagenOriginal, imagenCorregida, imagenEscalaGrises = camara.getImagenes() cv.imshow('Imagen', imagenOriginal) caracteristicas = ExtractorCaracteristicas(imagenEscalaGrises) caracteristicasObjetos = caracteristicas.extraerCaracteristicas() clasificador = Clasificador() imagenConObjetosClasficados = clasificador.colocarEtiqueta( imagenCorregida, caracteristicasObjetos) cv.imshow('Imagen', imagenConObjetosClasficados) cv.waitKey(0)
#data_train = all_data[:int(len(all_data)*porcentaje)] #data_test = all_data[int(len(all_data)*porcentaje):] X_train = ok_data_x[:int(len(ok_data_x) * porcentaje )] + df_data_x[:int(len(df_data_x) * porcentaje)] Y_train_num = ok_data_y[:int(len(ok_data_y) * porcentaje)] + df_data_y[:int( len(df_data_y) * porcentaje)] X_test = ok_data_x[int(len(ok_data_x) * porcentaje ):] + df_data_x[int(len(df_data_x) * porcentaje):] Y_test_num = ok_data_y[int(len(ok_data_y) * porcentaje):] + df_data_y[ int(len(df_data_y) * porcentaje):] aciertos = [] aciertos.append(str(int(porcentaje * 100)) + " %") clasificador = Clasificador(X_train, Y_train_num, X_test, Y_test_num) clasificador.clasificadorArbol() aciertos.append(clasificador.porcentaje_acierto) clasificador.clasificadorKVecinos() aciertos.append(clasificador.porcentaje_acierto) clasificador.clasificadorRandomForest() aciertos.append(clasificador.porcentaje_acierto) clasificador.clasificadorPerceptron() p = clasificador.porcentaje_acierto aciertos.append(clasificador.porcentaje_acierto) clasificador.SVC() aciertos.append(clasificador.porcentaje_acierto) csv_values.append(aciertos) porcentaje = porcentaje + 0.02
def migrar(collection, numero_de_tuits, path='app2/Requerimientos/clasificador/tuits_todos/', guardar_hash_clouds=True): migrados = 0 polaridad_count = {} sexismo_count = {} matoneo_count = {} cla = Clasificador() start_time = time.time() print_count = 0 print_every = 100 while (migrados < numero_de_tuits): files = listdir(path) random.shuffle(files) for file in files: if ('.DS_Store' != file): with open(path + file, 'r') as f: print('') print('Started ' + str(file)) print('') for line in f.readlines(): print_count += 1 item = json.loads(line) item['polaridad'] = cla.dar_polaridad( item['full_text']) item['sexismo'] = cla.dar_sexismo(item['full_text']) item['matoneo'] = cla.dar_matoneo(item['full_text']) if (guardar_hash_clouds): polaridad_count, sexismo_count, matoneo_count = actualizar_hash_clouds( item['full_text'], polaridad_count, sexismo_count, matoneo_count, cla) migrados += 1 collection.insert_one(item) if (print_count == print_every): print_count = 0 print( str(migrados) + ' of ' + str(numero_de_tuits)) if (migrados == numero_de_tuits): delta = time.time() - start_time print('') print('FINISHED') if (delta < 60): final_delta = delta print('Total time: ' + str(np.round(final_delta, 2)) + ' Seconds') elif (delta >= 60 and delta < 3600): final_delta = delta / 60 print('Total time: ' + str(np.round(final_delta, 2)) + ' Minutes') else: final_delta = delta / 3600 print('Total time: ' + str(np.round(final_delta, 2)) + ' Hours') print('Time per Tweet: ' + str(np.round(delta / numero_de_tuits, 4)) + ' Seconds') print('') if (guardar_hash_clouds): exportar_hash_clouds(polaridad_count, sexismo_count, matoneo_count) return (True)
import random import sys from clasificador import Clasificador from general_functions import * ham_training_messages = convert_to_list('train_ham.txt') spam_training_messages = convert_to_list('train_spam.txt') input_file = 'test_sms.txt' k = 0.48100000000000026 original_messages = convert_to_list(input_file) messages_to_classify = sanitize_classified_messages(original_messages) original_messages = convert_to_list(input_file) print(original_messages[-1]) print(messages_to_classify[-1]) clasificador = Clasificador(ham_training_messages, spam_training_messages) results = [] for i in range(len(messages_to_classify)): probability = clasificador.classify_message(messages_to_classify[i], clasificador.SPAM_MESSAGE, k) print(i) if probability >= 0.7: results.append('spam\t{}'.format(original_messages[i])) else: results.append('ham\t{}'.format(original_messages[i])) write_message(results, "results.txt")
from flask import Flask, escape, request, jsonify, json from flask_request_params import bind_request_params from flask_cors import CORS from clasificador import Clasificador clasificadorI = Clasificador() app = Flask(__name__) CORS(app) @app.route("/") def init(): return "status ok" @app.route("/clasificador", methods=['GET', 'POST']) def mostrar(): clasificadorI.leerData() clasificadorI.generarMatriz() return clasificadorI.recomendacionDiscotecas() @app.route("/populares", methods=['GET', 'POST']) def mostrarPopulares(): clasificadorI.leerData() clasificadorI.generarMatriz() return clasificadorI.recomendarPopulares()
def __init__(self): self.clasificador = Clasificador()