Ejemplo n.º 1
0
    def updateLabels():
        """This functions is to be run after a new wordnet is uploaded
        so that concept labels for that language are created and visible
        as concept names.
        """

        sfreq=dd(int)
        f = query_omw("""SELECT id FROM smt WHERE tag='freq'""")
        if f:
            for r in query_omw("""SELECT s_id, sml_id FROM sm WHERE smt_id=?""",
                               str(f[0]['id'])):
                sfreq[r['s_id']]=r['sml_id']


        senses =dd(lambda: dd(list))
        #senses[ss_id][lang_id]=[(ls_id, lemma, freq), ...]
        forms = dd(lambda: dd(int))
        #forms[lang][word] = freq
        langs=set()
        eng_id=1 ### we know this :-)


        for r in query_omw("""SELECT s_id, ss_id, lemma, lang_id
                              FROM (SELECT w_id, canon, ss_id, s_id
                              FROM (SELECT id as s_id, ss_id, w_id FROM s)
                              JOIN w ON w_id = w.id )
                              JOIN f ON canon = f.id"""):


            senses[r['ss_id']][r['lang_id']].append((r['s_id'], r['lemma'], sfreq[r['s_id']]))
            forms[r['lang_id']][r['lemma']] += 1
            langs.add(r['lang_id'])


        for ss in senses:
            for l in senses[ss]:
                senses[ss][l].sort(key=lambda x: (-x[2],  ### sense freq (freq is good)
                                          forms[l][x[1]], ### uniqueness (freq is bad)
                                          len(x[1]),  ### length (short is good)
                                          x[1]))      ### lemma (so it is the same)

        # make the labels
        label = dd(lambda: dd(str))
        lgs=sorted(langs)
        values=list()

        for ss in senses:
            for l in lgs:
                if senses[ss][l]:
                    label[ss][l]=senses[ss][l][0][1]
                else:
                    for lx in lgs:  ### start with eng and go through till you find one
                        if senses[ss][lx]:
                            label[ss][l]=senses[ss][lx][0][1]
                            break
                    else:
                        label[ss][l]="?????"
                values.append((ss, l,  label[ss][l]))


        # write the labels (delete old ones first)
        write_omw("""DELETE FROM label""")
        blk_write_omw("""INSERT INTO label(ss_id, lang_id, label, u)
                         VALUES (?,?,?,"omw")""", values)

        return True
Ejemplo n.º 2
0
 def blk_insert_omw_sm(tuple_list):
     return blk_write_omw("""INSERT INTO sm (id, s_id, smt_id, sml_id, u)
                             VALUES (?,?,?,?,?)""", tuple_list)
Ejemplo n.º 3
0
 def blk_insert_omw_sm_src(tuple_list):
     return blk_write_omw("""INSERT INTO sm_src (sm_id, src_id, conf, u)
                             VALUES (?,?,?,?)""", tuple_list)
Ejemplo n.º 4
0
 def blk_insert_omw_wf_link(tuple_list):
     return blk_write_omw("""INSERT INTO  wf_link (w_id, f_id, src_id, conf, u)
                         VALUES (?,?,?,?,?)""", tuple_list)
Ejemplo n.º 5
0
 def blk_insert_omw_s(tuple_list):
     return blk_write_omw("""INSERT INTO s (id, ss_id, w_id, u)
                             VALUES (?,?,?,?)""", tuple_list)
Ejemplo n.º 6
0
 def blk_insert_omw_f(tuple_list):
     return blk_write_omw("""INSERT INTO f (id, lang_id, pos_id, lemma, u)
                             VALUES (?,?,?,?,?)""", tuple_list)
Ejemplo n.º 7
0
 def blk_insert_omw_w(tuple_list):
     return blk_write_omw("""INSERT INTO w (id, canon, u)
                             VALUES (?,?,?)""", tuple_list)
Ejemplo n.º 8
0
 def blk_insert_omw_ssslink(tuple_list):
     return blk_write_omw("""INSERT INTO ssslink (id, s_id, srel_id, ss_id, u)
                             VALUES (?,?,?,?,?)""", tuple_list)
Ejemplo n.º 9
0
 def blk_insert_omw_ssslink_src(tuple_list):
     return blk_write_omw("""INSERT INTO ssslink_src (ssslink_id, src_id, conf, lang_id, u)
                             VALUES (?,?,?,?,?)""", tuple_list)
Ejemplo n.º 10
0
 def blk_insert_omw_ssexe(tuple_list):
     return blk_write_omw("""INSERT INTO ssexe (id, ss_id, lang_id, ssexe, u)
                             VALUES (?,?,?,?,?)""", tuple_list)
Ejemplo n.º 11
0
 def blk_insert_omw_def(tuple_list):
     return blk_write_omw("""INSERT INTO def (id, ss_id, lang_id, def, u)
                             VALUES (?, ?,?,?,?)""", tuple_list)
Ejemplo n.º 12
0
 def blk_insert_omw_ss(tuple_list):
     """ tuple_list = [(id, ili_id, pos_id, u), ...]"""
     return blk_write_omw("""INSERT INTO ss (id, ili_id, pos_id, u)
                             VALUES (?,?,?,?)""", tuple_list)
Ejemplo n.º 13
0
 def blk_insert_into_ili(tuple_list):
     return blk_write_omw("""INSERT INTO ili
                             (id, kind_id, def, status_id, origin_src_id, src_key, u)
                             VALUES (?,?,?,?,?,?,?)""", tuple_list)
Ejemplo n.º 14
0
 def blk_insert_src_meta(tuple_list):
     """ tupple_list must of of format [(src_id, attr, val, u), ...] """
     return blk_write_omw("""INSERT INTO src_meta (src_id, attr, val, u)
                             VALUES (?,?,?,?)""", tuple_list)