Example #1
0
def score_article(sid):
    """
    main evaluation 
    ranking function
    """
    rank = 1  # initial rank
    r = redis.Redis()
    corpus_pref = get_preferences()
    corpus_filter = get_filtrations()
    corpus_story = story_words(sid)
    # need a tokenize here TK
    # need lemma_builder
    pref_lemma = lemma_builder(corpus_pref)
    filter_lemma = lemma_builder(corpus_filter)
    story_lemma = lemma_builder(corpus_story)
    intersect_pref = intersect1d(array(corpus_pref), array(corpus_story))
    intersect_filter = intersect1d(array(corpus_filter), array(corpus_story))
    intersect_lemma_pref = intersect1d(array(pref_lemma), array(story_lemma))
    intersect_lemma_filter = intersect1d(array(filter_lemma), array(story_lemma))
    # These may be adjusted with additional factors
    filter_score = 2 * len(intersect_pref) + len(intersect_lemma_pref)
    prefer_score = -(2 * len(intersect_filter) + len(intersect_lemma_pref))
    rank = filter_score + prefer_score
    r.zincrby("site:storyroll", "story:%s" % sid, rank)  # RANK IT
    return rank
Example #2
0
def dict_diff(dict1, dict2):
    """Return the difference between two dictionaries as a dictionary of key: [val1, val2] pairs.
    Keys unique to either dictionary are included as key: [val1, '-'] or key: ['-', val2]."""
    diff_keys = []
    common_keys = pylab.intersect1d(dict1.keys(), dict2.keys())
    for key in common_keys:
        if pylab.iterable(dict1[key]):
            if pylab.any(dict1[key] != dict2[key]):
                diff_keys.append(key)
        else:
            if dict1[key] != dict2[key]:
                diff_keys.append(key)

    dict1_unique = [key for key in dict1.keys() if key not in common_keys]
    dict2_unique = [key for key in dict2.keys() if key not in common_keys]

    diff = {}
    for key in diff_keys:
        diff[key] = [dict1[key], dict2[key]]

    for key in dict1_unique:
        diff[key] = [dict1[key], '-']

    for key in dict2_unique:
        diff[key] = ['-', dict2[key]]

    return diff
Example #3
0
  def solve(self):
    """
    """
    s    = "::: solving density :::"
    text = colored(s, 'cyan')
    print text
    
    firn   = self.firn
    config = self.config

    # newton's iterative method :
    solve(self.delta == 0, firn.rho, firn.rhoBc, J=self.J, 
          solver_parameters=config['enthalpy']['solver_params'])
    
    rhop = firn.rho.vector().array()

    # update kc term in drhodt :
    # if rho >  550, kc = kcHigh
    # if rho <= 550, kc = kcLow
    # with parameterizations given by ligtenberg et all 2011
    A                   = firn.rhoi/firn.rhow * 1e3 * firn.adot
    rhoCoefNew          = ones(firn.n)
    rhoHigh             = where(rhop >  550)[0]
    rhoLow              = where(rhop <= 550)[0]
    rhoCoefNew[rhoHigh] = firn.kcHh * (2.366 - 0.293*ln(A))
    rhoCoefNew[rhoLow]  = firn.kcLw * (1.435 - 0.151*ln(A))
    firn.assign_variable(firn.rhoCoef, rhoCoefNew)
    
    rhow   = firn.rhow
    rhoi   = firn.rhoi
    domega = firn.domega

    # update density for water content :
    domPos       = where(domega > 0)[0]                # water content inc.
    domNeg       = where(domega < 0)[0]                # water content dec.
    rhoNotLiq    = where(rhop < rhow)[0]               # density < water
    rhoInc       = intersect1d(domPos, rhoNotLiq)      # where rho can inc.
    rhop[rhoInc] = rhop[rhoInc] + domega[rhoInc]*rhow 
    rhop[domNeg] = rhop[domNeg] + domega[domNeg]*(rhow - rhoi)

    #firn.assign_variable(firn.rho, rhop)
    firn.print_min_max(firn.rho, 'rho')
Example #4
0
def astausgleich(ab2org, mn2org, rhoaorg):
    """shifts the branches of a dc sounding to generate a matching curve."""
    ab2 = P.asarray(ab2org)
    mn2 = P.asarray(mn2org)
    rhoa = P.asarray(rhoaorg)
    um = P.unique(mn2)
    for i in range(len(um) - 1):
        r0, r1 = [], []
        ac = P.intersect1d(ab2[mn2 == um[i]], ab2[mn2 == um[i + 1]])
        for a in ac:
            r0.append(rhoa[(ab2 == a) * (mn2 == um[i])][0])
            r1.append(rhoa[(ab2 == a) * (mn2 == um[i + 1])][0])

        if len(r0) > 0:
            fak = P.mean(P.array(r0) / P.array(r1))
            print(fak)
            if P.isfinite(fak) and fak > 0.:
                rhoa[mn2 == um[i + 1]] *= fak

    return rhoa  # formerly pg as vector
Example #5
0
def astausgleich(ab2org, mn2org, rhoaorg):
    """shifts the branches of a dc sounding to generate a matching curve."""
    ab2 = P.asarray(ab2org)
    mn2 = P.asarray(mn2org)
    rhoa = P.asarray(rhoaorg)
    um = P.unique(mn2)
    for i in range(len(um) - 1):
        r0, r1 = [], []
        ac = P.intersect1d(ab2[mn2 == um[i]], ab2[mn2 == um[i + 1]])
        for a in ac:
            r0.append(rhoa[(ab2 == a) * (mn2 == um[i])][0])
            r1.append(rhoa[(ab2 == a) * (mn2 == um[i + 1])][0])

        if len(r0) > 0:
            fak = P.mean(P.array(r0) / P.array(r1))
            print(fak)
            if P.isfinite(fak) and fak > 0.:
                rhoa[mn2 == um[i + 1]] *= fak

    return rhoa  # formerly pg as vector