Пример #1
0
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]
Пример #2
0
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}')
Пример #3
0
#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:
Пример #4
0
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))
Пример #5
0
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)
Пример #6
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
Пример #7
0
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)
Пример #8
0
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")
Пример #9
0
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()

Пример #10
0
 def __init__(self):
     self.clasificador = Clasificador()