Пример #1
0
def initialize():
    anotacoes = parser.parseAnnotation()
    dominios = parser.parseMapas()
    participantes = anotacoes[1]
    targets = {"1":["rest3"],"2":["cafe1"],"3":["drug3"],"4":["chur3"],"5":["pub1"],"6":["chur2","chur3"],"7":["rest1","rest2"],"8":["drug2","drug3"],"9":["drug3","drug4"],"10":["rest4","rest5"],"11":["rest3"],"12":["cafe1"],"13":["rest4","rest5"],"14":["chur3"],"15":["pub1"],"16":["chur2","chur3"],"17":["rest1","rest2"],"18":["drug2","drug3"],"19":["drug3","drug4"],"20":["rest4","rest5"]}
    atributos = ["type","in","name","next-to","in-front-of","other","right-to","left-to","behind"]
    return dominios, targets, anotacoes[0], atributos, participantes
Пример #2
0
def crossValidation(fold = int, anotacoes = {}):
    if len(anotacoes) == 0: 
        anotacoes = parser.parseAnnotation()
    folds = {}
    
    nroParticipantes = contabilizaParticipantes(anotacoes)
    nroAnotacoes = len(anotacoes)
    
    expressoesParticipantePorFold = (nroAnotacoes / nroParticipantes) / fold
    
    nroExpressoes = {}
    for i in range(1,fold+1):
        folds[str(i)] = {}
        nroExpressoes[str(i)] = {}
    
    for anotacao in anotacoes:
        contexto = anotacao["caracteristicas"]["context"]
        participante = anotacao["caracteristicas"]["trial"]
        
        achou = False
        for i in range(1,fold+1):
            if participante not in folds[str(i)]:
                folds[str(i)][participante] = []
                nroExpressoes[str(i)][participante] = expressoesParticipantePorFold
            if nroExpressoes[str(i)][participante] > 0:
                folds[str(i)][participante].append(anotacao)
                nroExpressoes[str(i)][participante] = nroExpressoes[str(i)][participante] -1
                achou = True
                break
        
        if achou == False:
            for i in range(1,fold+1):
                if nroExpressoes[str(i)][participante] == 0:
                    folds[str(i)][participante].append(anotacao)
                    nroExpressoes[str(i)][participante] = nroExpressoes[str(i)][participante] -1
                    break
        
    newFolds = {}
    for fold in folds:
        if fold not in newFolds.keys():
            newFolds[fold] = []
        for participante in folds[fold].keys():
            for anotacao in folds[fold][participante]:
                newFolds[fold].append(anotacao)
    return newFolds
Пример #3
0
def run():
    expressoes, dadosParticipantes = parser.parseAnnotation()
    
    participantes = {}
    participantesRelacionaiss = {}
    
    expressoesSimples = 0
    expressoesConjunto = 0
    
    expressoesSubespecificadas = 0
    expressoesSubespecificadasMulheres = 0
    expressoesSubespecificadasHomens = 0
    expressoesSuperespecificadas = 0
    expressoesSuperespecificadasMulheres = 0
    expressoesSuperespecificadasHomens = 0
    
    expressoesRelacionais = 0
    expressoesRelacionaisConjunto = 0
    
    participantesHomens = 0
    participantesMulheres = 0
    
    participantesRelacionais = 0
    participantesMistos = 0
    participantesNaoRelacionais = 0
    
    participantesHomensRelacionais = 0
    participantesHomensNaoRelacionais = 0
    participantesHomensSuperespecificadas = {}
    participantesHomensSubespecificadas = {}
    
    participantesMulheresRelacionais = 0
    participantesMulheresNaoRelacionais = 0
    participantesMulheresSuperespecificadas = {}
    participantesMulheresSubespecificadas = {}
    
    participantesSuperespecificadosHomens = 0
    participantesSuperespecificadosMulheres = 0
    participantesSubespecificadosHomens = 0
    participantesSubespecificadosMulheres = 0
    
    frequencias = {}
    frequencias["tg"] = {}
    frequencias["lm"] = {}
    
    for expressao in expressoes:
        if expressao["caracteristicas"]["trial"] not in participantesHomensSuperespecificadas.keys():
            participantesHomensSuperespecificadas[expressao["caracteristicas"]["trial"]] = True
            participantesHomensSubespecificadas[expressao["caracteristicas"]["trial"]] = True
            participantesMulheresSuperespecificadas[expressao["caracteristicas"]["trial"]] = True
            participantesMulheresSubespecificadas[expressao["caracteristicas"]["trial"]] = True
        
        if isUnderspecified(expressao) == True:
            expressoesSubespecificadas = expressoesSubespecificadas + 1
            
            if dadosParticipantes[expressao["caracteristicas"]["trial"]]["GENDER"] == "m":
                expressoesSubespecificadasHomens = expressoesSubespecificadasHomens + 1
                participantesHomensSuperespecificadas[expressao["caracteristicas"]["trial"]] = False
            else:
                expressoesSubespecificadasMulheres = expressoesSubespecificadasMulheres + 1
                participantesMulheresSuperespecificadas[expressao["caracteristicas"]["trial"]] = False
        
        if isOverspecified(expressao) == True:
            expressoesSuperespecificadas = expressoesSuperespecificadas + 1
            
            if dadosParticipantes[expressao["caracteristicas"]["trial"]]["GENDER"] == "m":
                expressoesSuperespecificadasHomens = expressoesSuperespecificadasHomens + 1
                participantesHomensSubespecificadas[expressao["caracteristicas"]["trial"]] = False
            else:
                expressoesSuperespecificadasMulheres = expressoesSuperespecificadasMulheres + 1
                participantesMulheresSubespecificadas[expressao["caracteristicas"]["trial"]] = False
        
        for descricao in expressao["anotacoes"].keys():
            for objeto in expressao["anotacoes"][descricao].keys():
                for atributo in expressao["anotacoes"][descricao][objeto].keys():
                    if objeto == "tg":
                        if atributo not in frequencias["tg"].keys():
                            frequencias["tg"][atributo] = 1
                        else:
                            frequencias["tg"][atributo] = frequencias["tg"][atributo] + 1
                    else:
                        if atributo not in frequencias["lm"].keys():
                            frequencias["lm"][atributo] = 1
                        else:
                            frequencias["lm"][atributo] = frequencias["lm"][atributo] + 1
        
        if expressao["caracteristicas"]["trial"] not in participantes.keys():
            participantes[expressao["caracteristicas"]["trial"]] = False
            participantesRelacionaiss[expressao["caracteristicas"]["trial"]] = True
        #print expressao["anotacoes"]
    
        if len(expressao["anotacoes"].keys()) == 2:
            expressoesConjunto = expressoesConjunto + 1
            
            if checkRelation(expressao["anotacoes"]) == True:
                expressoesRelacionaisConjunto = expressoesRelacionaisConjunto + 1  
                
                if participantes[expressao["caracteristicas"]["trial"]] == False:
                    participantes[expressao["caracteristicas"]["trial"]] = True
            else:
                if participantesRelacionaiss[expressao["caracteristicas"]["trial"]] == True:
                    participantesRelacionaiss[expressao["caracteristicas"]["trial"]] = False
        else:
            expressoesSimples = expressoesSimples + 1
            
            if checkRelation(expressao["anotacoes"]) == True:
                expressoesRelacionais = expressoesRelacionais + 1  
                
                if participantes[expressao["caracteristicas"]["trial"]] == False:
                    participantes[expressao["caracteristicas"]["trial"]] = True
            else:
                if participantesRelacionaiss[expressao["caracteristicas"]["trial"]] == True:
                    participantesRelacionaiss[expressao["caracteristicas"]["trial"]] = False
    
    for participante in participantes.keys():
        if dadosParticipantes[participante]["GENDER"] == "m":
            participantesHomens = participantesHomens + 1
            
            if participantesHomensSuperespecificadas[participante] == True:
                participantesSuperespecificadosHomens = participantesSuperespecificadosHomens + 1
            elif participantesHomensSubespecificadas[participante] == True:
                participantesSubespecificadosHomens = participantesSubespecificadosHomens + 1
        else:
            participantesMulheres = participantesMulheres + 1
            
            if participantesMulheresSuperespecificadas[participante] == True:
                participantesSuperespecificadosMulheres = participantesSuperespecificadosMulheres + 1
            elif participantesMulheresSubespecificadas[participante] == True:
                participantesSubespecificadosMulheres = participantesSubespecificadosMulheres + 1
        
        if participantes[participante] == False:        
            participantesNaoRelacionais = participantesNaoRelacionais + 1
            if dadosParticipantes[participante]["GENDER"] == "m":
                participantesHomensNaoRelacionais = participantesHomensNaoRelacionais + 1
            else:
                participantesMulheresNaoRelacionais = participantesMulheresNaoRelacionais + 1
            
        else:
            participantesMistos = participantesMistos + 1
        
        if participantesRelacionaiss[participante] == True:
            participantesRelacionais = participantesRelacionais + 1
            
            if dadosParticipantes[participante]["GENDER"] == "m":
                participantesHomensRelacionais = participantesHomensRelacionais + 1
            else:
                participantesMulheresRelacionais = participantesMulheresRelacionais + 1
                   
    
    print "Numero de Expressoes do Corpus: " +  str(len(expressoes))
    print "Expressoes Simples: " + str(expressoesSimples)
    print "Expressoes a Conjuntos: " + str(expressoesConjunto)
    print 20 * "*"
    print "Expressoes Subespecificadas: " + str(expressoesSubespecificadas)
    print "Expressoes Subespecificadas Homens: " + str(expressoesSubespecificadasHomens)
    print "Expressoes Subespecificadas Mulheres: " + str(expressoesSubespecificadasMulheres)
    print 20 * "*"
    print "Expressoes Superespecificadas: " + str(expressoesSuperespecificadas)
    print "Expressoes Superespecificadas Homens: " + str(expressoesSuperespecificadasHomens)
    print "Expressoes Superespecificadas Mulheres: " + str(expressoesSuperespecificadasMulheres)
    print 20 * "-"
    print "Numero de Expressoes Relacionais: " + str(expressoesRelacionais + expressoesRelacionaisConjunto)
    print "Expressoes Simples Relacionais: " + str(expressoesRelacionais)
    print "Expressoes a Conjuntos Relacionais: " + str(expressoesRelacionaisConjunto)
    print 20 * "-"
    print "Numero de Participantes: " + str(len(participantes))
    print 20 * "*"
    print "Numero de Participantes Homens: " + str(participantesHomens)
    print "Numero de Participantes Homens Superespecificados: " + str(participantesSuperespecificadosHomens)
    print "Numero de Participantes Homens Subespecificados: " + str(participantesSubespecificadosHomens)
    print 20 * "*"
    print "Numero de Participantes Mulheres: " + str(participantesMulheres)
    print "Numero de Participantes Mulheres Superespecificados: " + str(participantesSuperespecificadosMulheres)
    print "Numero de Participantes Mulheres Subespecificados: " + str(participantesSubespecificadosMulheres)
    print 20 * "*"
    print "Participantes Nao Relacionais: " + str(participantesNaoRelacionais)
    print "Participantes Nao Relacionais Homens: " + str(participantesHomensNaoRelacionais)
    print "Participantes Nao Relacionais Mulheres: " + str(participantesMulheresNaoRelacionais)
    print 20 * "*"
    print "Participantes Relacionais: " + str(participantesRelacionais)
    print "Participantes Relacionais Homens: " + str(participantesHomensRelacionais)
    print "Participantes Relacionais Mulheres: " + str(participantesMulheresRelacionais)
    print 20 * "-"
    print "Frequencias Target:"
    for atributo in frequencias["tg"].keys():
        print atributo, ": ", str(frequencias["tg"][atributo])
    print 20 * "-"  
    print "Frequencias Landmark:"
    for atributo in frequencias["lm"].keys():
        print atributo, ": ", str(frequencias["lm"][atributo])