Ejemplo n.º 1
0
def partial_slda_m_step(var):
    ### M-step: ###
    print 'updating betas..'
    # update betaD for documents first
    topiclib.lda_recalculate_beta(var.documents, var.beta, var.phi)

    print 'eta sigma...'
    # update response variable gaussian global parameters
    var.sigma_squared = topiclib.partial_slda_recalculate_eta_sigma(var.eta, var.y, var.phi)
Ejemplo n.º 2
0
def tlc_m_step(var):
    ### M-step: ###
    print 'updating betas..'
    Ku, Ks, Kb = var.Ku, var.Ks, var.Kb
    
    print 'update unlabeled document topics..'
    dc = var.documents + var.comments
    #phi_dc = var.phiD + [p[:,:Ku] for p in var.phiC]
    phi_dc = [d*var.document_multiplier for d in var.phiD] + [var.comment_multiplier*p[:,:Ku] for p in var.phiC]
    topiclib.lda_recalculate_beta(dc, var.beta[:Ku], phi_dc)

    print 'update sentiment topics...'
    cl = var.comments + var.labeled
    phi_cl = [var.comment_multiplier*p[:,-Ks:] for p in var.phiC] + [var.labeled_multiplier*p[:,:Ks] for p in var.phiL]
    topiclib.lda_recalculate_beta(cl, var.beta[Ku:Ku+Ks], phi_cl)

    print 'update background topics...'
    lb = var.labeled + var.background
    phi_lb = [var.labeled_multiplier*p[:,-Kb:] for p in var.phiL] + [var.background_multiplier*b for b in var.phiB]
    topiclib.lda_recalculate_beta(lb, var.beta[-Kb:], phi_lb)

    print 'eta sigma...'
    # update response variable gaussian global parameters
    var.sigma_squared = topiclib.partial_slda_recalculate_eta_sigma(var.eta, var.y, var.phiL)