示例#1
0
def main():   
    kat = 'wyniki'
    dbm = DBmanager()
    _plp.plp_init()
    p1 = re.compile('[.,;?!\-\'\"]+')       
  
    lista_zdan_z_bazy = dbm.get_both_sentences()
    ilosc_zdan = len(lista_zdan_z_bazy)
    print "Przetwarzanie %d zdan" % (ilosc_zdan) 
     
    frazy_wynik = open(kat+'/dopasowanie.txt','w')
    for (zdanie_pol,zdanie_ang) in lista_zdan_z_bazy:
        zdanie_pol = p1.sub('',zdanie_pol)
        slowa_pol = re.compile("[ \t\n]+",re.L).split(zdanie_pol)
        zdanie_ang = p1.sub('',zdanie_ang)
        slowa_ang = re.compile("[ \t\n]+",re.L).split(zdanie_ang)

        frazy_wynik.write(zdanie_pol + "\n")    
        for slowo_pol in slowa_pol:
            bform_list_pol = analiza_slowa_pl(frazy_wynik,slowo_pol)
            frazy_wynik.write("lista form podstawowych dla %s: %s\n" % (slowo_pol,str(bform_list_pol)))
            frazy_wynik.write("tlumaczenia:\n")
            for bform in bform_list_pol:
                records = dbm.get_translation_pol2ang(bform)
                for record in records:
                    frazy_wynik.write("\t%s\n" % str(record))    

        frazy_wynik.write(zdanie_ang + "\n")    
        for slowo_ang in slowa_ang:
            bform_list_ang = analiza_slowa_ang(frazy_wynik,slowo_ang)
            frazy_wynik.write("lista form podstawowych dla %s: %s\n" % (slowo_ang,str(bform_list_ang)))


    frazy_wynik.close()
示例#2
0
文件: test2.py 项目: figield/NLP
def main(): 
    kat = 'wyniki'
    wyniki = open(kat+'/wynik.txt','w')
    lista_plikow= os.listdir(sys.argv[1])
    print "init..."
    _plp.plp_init()
    print "after init"
    print _plp.plp_ver()


    wstep = "Poczatki identyfikujace czesc mowy i rodzaj: \n AA - rzeczownik meski osobowy\n AB - rzeczownik meski zywotny\n AC - rzeczownik meski niezywotny\n AD - rzeczownik zenski\n AE - rzeczownik nijaki\n AF - rzeczownik plurale tantum osobowy\n AG - rzeczownik plurale tantum nieosobowy\n B - czasownik\n C - przymiotnik\n D - liczebnik\n E - zaimek\n G - nieodmienny\n"


    for arg in lista_plikow: 
        lista_slow = wydziel_slowa(sys.argv[1]+"/"+arg)
        wyniki.write(arg + "\n")
        wyniki.write("------------------------\n")
        wyniki.write(wstep)
        wyniki.write("------------------------\n")
        for s in lista_slow:
            wyniki.write(s + ", ")
        for slowo in lista_slow:
            wyniki.write("\n------------------------\n")
            wyniki.write("oryginalnie: " + slowo + "\n")
            wyniki.write(analiza_slowa(slowo))  
	    
    wyniki.close()    
示例#3
0
def main(): 
    kat = 'wyniki'
    wyniki = open(kat+'/wynik.txt','w')
    lista_plikow= os.listdir(sys.argv[1])
    print "init..."
    _plp.plp_init()
    print "after init"
    print _plp.plp_ver()

    for arg in lista_plikow: 
        print "Tekst: " + sys.argv[1]+"/"+arg
        lista_slow = wydziel_slowa(sys.argv[1]+"/"+arg)
        wyniki.write(arg + "\n")
        wyniki.write("------------------------\n")
        doFromyPodstawowej(lista_slow,wyniki)  
	    
    wyniki.close()    
示例#4
0
文件: pol2ang.py 项目: figield/NLP
def main(): 
    kat = 'wyniki'
    wyniki = open(kat+'/wynik.txt','w')
    lista_plikow= os.listdir(sys.argv[1])
    dbm = DBmanager()
    print "init..."
    _plp.plp_init()
    print "after init"
    print _plp.plp_ver()

    for arg in lista_plikow: 
        print "Tłumaczony tekst: " + sys.argv[1]+"/"+arg
        lista_slow = wydziel_slowa(sys.argv[1]+"/"+arg)
        print "Ilość słów oryginalnych: "+str(len(lista_slow))
        wyniki.write("\nPlik: " + arg + "\n")
        wyniki.write("--------------------------\n")
        tlumacz_slowa(dbm,lista_slow,wyniki)  
	    
    wyniki.close()    
示例#5
0
def main():   
    kat = 'wyniki'
    dbm = DBmanager()
    _plp.plp_init()      
    zbior_fraz = {}   
    p1 = re.compile('[.,;?!\-\'\"]+')        
    dopasowania_wynik = open(kat+'/dopasowanie_wynik.txt','w')
    rezultat = open(kat+'/rezultat.txt','w')
    lista_zdan_z_bazy = dbm.get_both_sentences()
    ilosc_zdan = len(lista_zdan_z_bazy)
    rezultat.write("Pobrano %d zdan" % (ilosc_zdan)) 
    m = 2
    k = 4
    h = 1
    for (zdanie_pol,zdanie_ang,) in lista_zdan_z_bazy:
        print str(h)
        h += 1         
        lista_znalezionych_krotek_pol = []
        lista_znalezionych_krotek_ang = []
        rezultat.write("\n\n-----------------------------------------------------")
        rezultat.write("\nZ. pol: %s\nZ. ang: %s" % (zdanie_pol,zdanie_ang))            

        for pol_or_ang in ['pol','ang']:
            if pol_or_ang == 'pol':          
                zdanie = p1.sub('',zdanie_pol)
            else:
                zdanie = p1.sub('',zdanie_ang)  
            slowa1 = re.compile("[ \t\n]+",re.L).split(zdanie)
            slowa = []
            if pol_or_ang == 'pol':          
                for slowo in slowa1:
                    rezultat.write("\n\nOrg: %s\nPodst: " % slowo)
                    zb_slow_postawowych = set(formy_podstawowe_slowa_pl(_plp,slowo))
                    for sp in zb_slow_postawowych:
                        rezultat.write("%s, " % sp)
                    zb_slow_przetl_na_ang = (slowo, tlumacz_slowa_pol(dbm,zb_slow_postawowych))
                    rezultat.write("\nAng: ")
                    s,angs = zb_slow_przetl_na_ang
                    for spa in angs:
                        rezultat.write("%s, " % spa)
                    slowa.append(zb_slow_przetl_na_ang)
            else:
                slowa = slowa1 

            n = m
            while n <= k:
                pary = []
                if n == 2:
                    pary = zip(slowa[:-1], slowa[1:])
                    for para in pary:
                        if pol_or_ang == 'pol':
                            lista_znalezionych_krotek_pol.append(para) 
                        else:
                            lista_znalezionych_krotek_ang.append(para)  
                elif n == 3:          
                    pary = zip(slowa[:-1], slowa[1:], slowa[2:])
                    for para in pary:
                        if pol_or_ang == 'pol':
                            lista_znalezionych_krotek_pol.append(para)
                        else:
                            lista_znalezionych_krotek_ang.append(para)  
                elif n == 4:          
                    pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:])
                    for para in pary:
                        if pol_or_ang == 'pol':
                            lista_znalezionych_krotek_pol.append(para)
                        else:
                            lista_znalezionych_krotek_ang.append(para)  
                n+=1
        
        for krotka_pl in lista_znalezionych_krotek_pol:
            for krotka_ang in lista_znalezionych_krotek_ang:
                dopasuj_krotki(dbm,krotka_pl,krotka_ang,zbior_fraz)               
    
    rezultat.write("\n\nZnalezionych fraz: %d " % len(zbior_fraz)) 
    drukuj_dopasowane(dopasowania_wynik,zbior_fraz)        
    dopasowania_wynik.close()
    rezultat.close()
示例#6
0
文件: pol2ang.py 项目: figield/NLP
def tlumacz_slowa_clp(dbm,lista_slow):
    _plp.plp_init()
    lista_slow_podst = do_fromy_podstawowej(dbm,_plp,lista_slow)
    return slowa_do_listy(lista_slow_podst)
示例#7
0
文件: test.py 项目: figield/NLP
#!/usr/bin/python
# -*- coding: latin2 -*-
import _plp, os, sys, re 
from string import *

print "init..."
_plp.plp_init()
print "after init"
print _plp.plp_ver()
print "Aby zakonczyc wpisz: q, exit lub quit"

while 1:
    print "\npodaj wyraz:" 
    slowo = sys.stdin.readline()
    slowo = slowo.strip()
    if slowo == 'q' or slowo =='exit' or slowo=='quit':
        break
    string = _plp.plp_rec(slowo)
    numery = string.split(':')
    ile = int(numery[0])
    ids = numery[1:]

    for nr in ids:
        i = int(nr)
        label = _plp.plp_label(i)
        bform = _plp.plp_bform(i)	
        forms = _plp.plp_forms(i)
        vec_id = _plp.plp_vec(i,slowo)
        
        print "\nid: "+ str(i)
        if len(label) >= 1:
示例#8
0
def main():
    print "init..."
    _plp.plp_init()
    zasieg()
示例#9
0
def main():
    kat = 'wyniki'
    lista_zdan_pol = []
    lista_zdan_ang = []
    lista_zdan_pol_synch = []
    lista_zdan_ang_synch = []

    print "init data base connector"
    dbm = DBmanager()
    print "init CLP"
    _plp.plp_init()
    print _plp.plp_ver()

    if sys.argv[1] == '-pol':
        lista_zdan_pol = wydziel_zdania('pol', sys.argv[2])
        lista_zdan_ang = wydziel_zdania('ang', sys.argv[4])

    if sys.argv[1] == '-ang':
        lista_zdan_ang = wydziel_zdania('ang', sys.argv[2])
        lista_zdan_pol = wydziel_zdania('pol', sys.argv[4])

    #---synchronizacja przy uzyciu slownika pol-ang ---#

    nr_p = 0
    nr_a = 0
    koniec_listy_ang = False
    koniec_listy_pol = False

    while True:
        tlumaczenia_str = "\nTRANSLATE: "
        lista_recordow_tlumaczen = tlumacz_slowa_na_ang(
            dbm, wydziel_slowa_pol(lista_zdan_pol[nr_p]))
        #szukaj_slow_w_zdaniu_ang(lista_recordow_tlumaczen,lista_zdan_ang[nr_a])
        print "\nANG: " + lista_zdan_ang[nr_a]

        for records in lista_recordow_tlumaczen:
            for r in records:
                tlumaczenia_str = tlumaczenia_str + ", " + r[1]

        print tlumaczenia_str

        nr_p = nr_p + 1
        nr_a = nr_a + 1

        if nr_p == len(lista_zdan_pol):
            koniec_listy_pol = True

        if nr_a == len(lista_zdan_ang):
            koniec_listy_ang = True

        if koniec_listy_pol:
            while nr_a < len(lista_zdan_ang):
                #lista_zdan_ang_synch.append(lista_zdan_ang[nr_a])
                nr_a = nr_a + 1
            break

        if koniec_listy_ang:
            while nr_p < len(lista_zdan_pol):
                #lista_zdan_pol_synch.append(lista_zdan_pol[nr_p])
                nr_p = nr_p + 1
            break

    if False:
        print "Ilosc zdan polskich:" + str(len(lista_zdan_pol))
        print "Ilosc zdan angielskich:" + str(len(lista_zdan_ang))
        print "Ilosc zdan polskich po synchronizacji:" + str(
            len(lista_zdan_pol_synch))
        print "Ilosc zdan angielskich po synchronizacji:" + str(
            len(lista_zdan_ang_synch))

        zdania_pol_ang = open(kat + '/zdania_pol_ang.txt', 'w')
        if len(lista_zdan_pol_synch) > len(lista_zdan_ang_synch):
            nr = 0
            while nr < len(lista_zdan_ang_synch):
                zdania_pol_ang.write(lista_zdan_pol_synch[nr] + "\n")
                zdania_pol_ang.write(lista_zdan_ang_synch[nr] + "\n\n")
                nr = nr + 1
            while nr < len(lista_zdan_pol_synch):
                zdania_pol_ang.write(lista_zdan_pol_synch[nr] + "\n")
                nr = nr + 1
        else:
            nr = 0
            while nr < len(lista_zdan_pol_synch):
                zdania_pol_ang.write(lista_zdan_pol_synch[nr] + "\n")
                zdania_pol_ang.write(lista_zdan_ang_synch[nr] + "\n\n")
                nr = nr + 1
            while nr < len(lista_zdan_ang_synch):
                zdania_pol_ang.write(lista_zdan_ang_synch[nr] + "\n")
                nr = nr + 1

        zdania_pol_ang.close()
        print "koniec"
示例#10
0
文件: test.py 项目: figield/NLP
import _plp, os, sys, re 
from string import *

_plp.plp_init()
print _plp.plp_ver()
print "Aby zakonczyc wpisz: q, exit lub quit"

while 1:
    print "\npodaj wyraz:" 
    slowo = sys.stdin.readline()
    slowo = slowo.strip()
    if slowo == 'q' or slowo =='exit' or slowo=='quit':
        break
    string = _plp.plp_rec(slowo)
    numery = string.split(':')
    ile = int(numery[0])
    ids = numery[1:]

    for nr in ids:
        i = int(nr)
        label = _plp.plp_label(i)
        bform = _plp.plp_bform(i)	
        forms = _plp.plp_forms(i)
        vec_id = _plp.plp_vec(i,slowo)
        
        print "\nid: "+ str(i)
        if len(label) >= 1:
	    print "1)label: " + label
	
        if len(bform) >= 1:
	    print "2)bform: " + bform
示例#11
0
文件: gen_frazy.py 项目: figield/NLP
def main():   
    kat = 'wyniki'
    pol_or_ang = sys.argv[1]
    dbm = DBmanager()
    _plp.plp_init()
    p1 = re.compile('[.,;?!\-\'\"]+')       
  
    lista_zdan_z_bazy = dbm.get_sentence(pol_or_ang)
    ilosc_zdan = len(lista_zdan_z_bazy)
    print "Przetwarzanie %d zdan" % (ilosc_zdan) 
    
    n=2
    while n<4:
        print "Pobranie wzorcow statystyk %d wyrazowych z pliku" % (n)   
        frazy_stat_clp_pic  = open('frazy_clp_'+str(n)+'.pic','r')
        set_of_tuples = load(frazy_stat_clp_pic)
        print "Pobrano %d wzorcow\n" % (len(set_of_tuples))                  
        Znalezione = 0
        Nie_znalezione = 0
        frazy_wynik = open(kat+'/frazy_'+pol_or_ang+"_"+str(n)+'.txt','w')
        for (zdanie,) in lista_zdan_z_bazy:
            zdanie=p1.sub('',zdanie)
            slowa = re.compile("[ \t\n]+",re.L).split(zdanie)
            pary = []
            if n == 2:
                pary = zip(slowa[:-1], slowa[1:])
            elif n == 3:          
                pary = zip(slowa[:-1], slowa[1:], slowa[2:])
            elif n == 4:          
                pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:])
            elif n == 5:          
                pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:], slowa[4:])
            elif n == 6:          
                pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:], slowa[4:], slowa[5:])

            frazy_wynik.write(zdanie + "\n")
            for para in pary:
                wynik = ""
                tuples =()
                if n == 2:
                    w1, w2 = para
                    tuples = (label_set(w1), label_set(w2))
                    #print "%s,%s: %s" % (w1,w2,str(tuples))
                elif n == 3:
                    w1, w2, w3 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3))
                elif n == 4:
                    w1, w2, w3, w4 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3), label_set(w4))
                elif n == 5:
                    w1, w2, w3, w4, w5 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3), label_set(w4), label_set(w5))
                elif n == 6:
                    w1, w2, w3, w4, w5, w6 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3), label_set(w4), label_set(w5), label_set(w6))

                if tuples in set_of_tuples:
                    wynik = '\t+ '
                    Znalezione+=1                
                else:
                    wynik = '\t- '
                    Nie_znalezione+=1

                for p in para:
                    wynik+= '%s ' % (p)
                wynik+="\n"
                frazy_wynik.write('%s' % (wynik))
        n+=1
        frazy_wynik.write('Znalezione:%d\nNie znalezione:%d' % (Znalezione,Nie_znalezione))
        frazy_wynik.close()
示例#12
0
文件: pol2ang.py 项目: figield/NLP
def tlumacz_slowa_phrase(dbm, lista_fraz, sub_method):
    _plp.plp_init()
    lista_fraz = tlumacz_frazy(dbm, _plp, lista_fraz, sub_method)
    return frazy_do_listy(lista_fraz)
示例#13
0
def main():
    kat = 'wyniki'
    pol_or_ang = sys.argv[1]
    dbm = DBmanager()
    _plp.plp_init()
    n = int(sys.argv[3])

    hash_of_tuples = {}
    print "\nPobranie statystyk %d wyrazowych..." % n
    statystyki = dbm.get_all_phrases(n, pol_or_ang)
    print "Pobrano %d fraz" % len(statystyki)
    stat_set = set(wiersz[2:n + 2] for wiersz in statystyki)
    print "N = %d" % (n)

    if n == 2:
        for w1, w2 in stat_set:
            lw1 = label_set(w1)
            lw2 = label_set(w2)
            if not lw1 or not lw2:
                continue
            tuples = (lw1, lw2)
            if hash_of_tuples.get(tuples) == None:
                hash_of_tuples[tuples] = 1
            else:
                hash_of_tuples[tuples] += 1
        print len(hash_of_tuples)
        if 'totxt' in sys.argv:
            k = hash_of_tuples.keys()
            k.sort(lambda y, x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp = open(kat + '/frazy_clp_' + str(n) + '.txt', 'w')
            frazy_stat_clp_id = open(kat + '/frazy_clp_' + str(n) + '_id.txt',
                                     'w')
            nr = 1
            for x in k:
                if hash_of_tuples[x] > 2:
                    (s1, s2) = x
                    frazy_stat_clp.write(
                        str(hash_of_tuples[x]) + "\t" + str([y1
                                                             for y1 in s1]) +
                        ", " + str([y2 for y2 in s2]) + "\n")
                    frazy_stat_clp_id.write(
                        str(nr) + "\t" + str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    elif n == 3:
        for w1, w2, w3 in stat_set:
            lw1 = label_set(w1)
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            if not lw1 or not lw2 or not lw3:
                continue
            tuples = (lw1, lw2, lw3)
            #print "%s,%s,%s: %s" % (w1,w2,w3,str(tuples))
            if hash_of_tuples.get(tuples) == None:
                hash_of_tuples[tuples] = 1
            else:
                hash_of_tuples[tuples] += 1
        print len(hash_of_tuples)
        if 'totxt' in sys.argv:
            k = hash_of_tuples.keys()
            k.sort(lambda y, x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp = open(kat + '/frazy_clp_' + str(n) + '.txt', 'w')
            frazy_stat_clp_id = open(kat + '/frazy_clp_' + str(n) + '_id.txt',
                                     'w')
            nr = 1
            for x in k:
                if hash_of_tuples[x] > 2:
                    (s1, s2, s3) = x
                    frazy_stat_clp.write(
                        str(hash_of_tuples[x]) + "\t" + str([y1
                                                             for y1 in s1]) +
                        ", " + str([y2 for y2 in s2]) + ", " +
                        str([y3 for y3 in s3]) + "\n")
                    frazy_stat_clp_id.write(
                        str(nr) + "\t" + str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    elif n == 4:
        for w1, w2, w3, w4 in stat_set:
            lw1 = label_set(w1)
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            lw4 = label_set(w4)
            if not lw1 or not lw2 or not lw3 or not lw4:
                continue
            tuples = (lw1, lw2, lw3, lw4)
            if hash_of_tuples.get(tuples) == None:
                hash_of_tuples[tuples] = 1
            else:
                hash_of_tuples[tuples] += 1

        print len(hash_of_tuples)
        if 'totxt' in sys.argv:
            k = hash_of_tuples.keys()
            k.sort(lambda y, x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp = open(kat + '/frazy_clp_' + str(n) + '.txt', 'w')
            frazy_stat_clp_id = open(kat + '/frazy_clp_' + str(n) + '_id.txt',
                                     'w')
            nr = 1
            for x in k:
                if hash_of_tuples[x] > 2:
                    (s1, s2, s3, s4) = x
                    frazy_stat_clp.write(
                        str(hash_of_tuples[x]) + "\t" + str([y1
                                                             for y1 in s1]) +
                        ", " + str([y2 for y2 in s2]) + ", " +
                        str([y3 for y3 in s3]) + ", " +
                        str([y4 for y4 in s4]) + "\n")
                    frazy_stat_clp_id.write(
                        str(nr) + "\t" + str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    elif n == 5:
        for w1, w2, w3, w4, w5 in stat_set:
            lw1 = label_set(w1)
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            lw4 = label_set(w4)
            lw5 = label_set(w5)
            if not lw1 or not lw2 or not lw3 or not lw4 or not lw5:
                continue
            tuples = (lw1, lw2, lw3, lw4, lw5)
            if hash_of_tuples.get(tuples) == None:
                hash_of_tuples[tuples] = 1
            else:
                hash_of_tuples[tuples] += 1
        print len(hash_of_tuples)
        if 'totxt' in sys.argv:
            k = hash_of_tuples.keys()
            k.sort(lambda y, x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp = open(kat + '/frazy_clp_' + str(n) + '.txt', 'w')
            frazy_stat_clp_id = open(kat + '/frazy_clp_' + str(n) + '_id.txt',
                                     'w')
            nr = 1
            for x in k:
                if hash_of_tuples[x] > 2:
                    (s1, s2, s3, s4, s5) = x
                    frazy_stat_clp.write(
                        str(hash_of_tuples[x]) + "\t" + str([y1
                                                             for y1 in s1]) +
                        ", " + str([y2 for y2 in s2]) + ", " +
                        str([y3 for y3 in s3]) + ", " + str([y4
                                                             for y4 in s4]) +
                        ", " + str([y5 for y5 in s5]) + "\n")
                    frazy_stat_clp_id.write(
                        str(nr) + "\t" + str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    elif n == 6:
        for w1, w2, w3, w4, w5, w6 in stat_set:
            lw1 = label_set(w1)
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            lw4 = label_set(w4)
            lw5 = label_set(w5)
            lw6 = label_set(w6)
            if not lw1 or not lw2 or not lw3 or not lw4 or not lw5 or not lw6:
                continue
            tuples = (lw1, lw2, lw3, lw4, lw5, lw6)
            if hash_of_tuples.get(tuples) == None:
                hash_of_tuples[tuples] = 1
            else:
                hash_of_tuples[tuples] += 1
        print len(hash_of_tuples)
        if 'totxt' in sys.argv:
            k = hash_of_tuples.keys()
            k.sort(lambda y, x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp = open(kat + '/frazy_clp_' + str(n) + '.txt', 'w')
            frazy_stat_clp_id = open(kat + '/frazy_clp_' + str(n) + '_id.txt',
                                     'w')
            nr = 1
            for x in k:
                if hash_of_tuples[x] > 2:
                    (s1, s2, s3, s4, s5, s6) = x
                    frazy_stat_clp.write(
                        str(hash_of_tuples[x]) + "\t" + str([y1
                                                             for y1 in s1]) +
                        ", " + str([y2 for y2 in s2]) + ", " +
                        str([y3 for y3 in s3]) + ", " + str([y4
                                                             for y4 in s4]) +
                        ", " + str([y5 for y5 in s5]) + ", " +
                        str([y6 for y6 in s6]) + "\n")
                    frazy_stat_clp_id.write(
                        str(nr) + "\t" + str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    if 'pic' in sys.argv:
        k = hash_of_tuples.keys()
        print "Sortowanie,"
        k.sort(lambda y, x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
        set_of_tuples = set()
        print "Tworzenie zbioru,"
        cut = int(sys.argv[4])
        for x in k:
            if hash_of_tuples[x] >= cut:
                set_of_tuples.add(x)
        print "Wielkosc zbioru : %d" % len(set_of_tuples)
        frazy_stat_clp_pic = open('frazy_clp_' + str(n) + '.pic', 'w')
        print "Zapisywanie do pliku,"
        from cPickle import dump
        dump(set_of_tuples, frazy_stat_clp_pic, 2)
        frazy_stat_clp_pic.close()
示例#14
0
def main():
    kat = 'wyniki'
    pol_or_ang = sys.argv[1]
    dbm = DBmanager()
    _plp.plp_init()
    p1 = re.compile('[.,;?!\-\'\"]+')

    lista_zdan_z_bazy = dbm.get_sentence(pol_or_ang)
    ilosc_zdan = len(lista_zdan_z_bazy)
    print "Przetwarzanie %d zdan" % (ilosc_zdan)

    n = 2
    while n < 4:
        print "Pobranie wzorcow statystyk %d wyrazowych z pliku" % (n)
        frazy_stat_clp_pic = open('frazy_clp_' + str(n) + '.pic', 'r')
        set_of_tuples = load(frazy_stat_clp_pic)
        print "Pobrano %d wzorcow\n" % (len(set_of_tuples))
        Znalezione = 0
        Nie_znalezione = 0
        frazy_wynik = open(
            kat + '/frazy_' + pol_or_ang + "_" + str(n) + '.txt', 'w')
        for (zdanie, ) in lista_zdan_z_bazy:
            zdanie = p1.sub('', zdanie)
            slowa = re.compile("[ \t\n]+", re.L).split(zdanie)
            pary = []
            if n == 2:
                pary = zip(slowa[:-1], slowa[1:])
            elif n == 3:
                pary = zip(slowa[:-1], slowa[1:], slowa[2:])
            elif n == 4:
                pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:])
            elif n == 5:
                pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:],
                           slowa[4:])
            elif n == 6:
                pary = zip(slowa[:-1], slowa[1:], slowa[2:], slowa[3:],
                           slowa[4:], slowa[5:])

            frazy_wynik.write(zdanie + "\n")
            for para in pary:
                wynik = ""
                tuples = ()
                if n == 2:
                    w1, w2 = para
                    tuples = (label_set(w1), label_set(w2))
                    #print "%s,%s: %s" % (w1,w2,str(tuples))
                elif n == 3:
                    w1, w2, w3 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3))
                elif n == 4:
                    w1, w2, w3, w4 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3),
                              label_set(w4))
                elif n == 5:
                    w1, w2, w3, w4, w5 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3),
                              label_set(w4), label_set(w5))
                elif n == 6:
                    w1, w2, w3, w4, w5, w6 = para
                    tuples = (label_set(w1), label_set(w2), label_set(w3),
                              label_set(w4), label_set(w5), label_set(w6))

                if tuples in set_of_tuples:
                    wynik = '\t+ '
                    Znalezione += 1
                else:
                    wynik = '\t- '
                    Nie_znalezione += 1

                for p in para:
                    wynik += '%s ' % (p)
                wynik += "\n"
                frazy_wynik.write('%s' % (wynik))
        n += 1
        frazy_wynik.write('Znalezione:%d\nNie znalezione:%d' %
                          (Znalezione, Nie_znalezione))
        frazy_wynik.close()
示例#15
0
def main():
    kat = 'wyniki'
    lista_zdan_pol=[]
    lista_zdan_ang=[]
    lista_zdan_pol_synch=[]
    lista_zdan_ang_synch=[]
    
    print "init data base connector"
    dbm = DBmanager()
    print "init CLP"
    _plp.plp_init()
    print _plp.plp_ver()
    
    
    if sys.argv[1]=='-pol':
        lista_zdan_pol=wydziel_zdania('pol',sys.argv[2])
        lista_zdan_ang=wydziel_zdania('ang',sys.argv[4])
    
    if sys.argv[1]=='-ang':
        lista_zdan_ang=wydziel_zdania('ang',sys.argv[2]) 
        lista_zdan_pol=wydziel_zdania('pol',sys.argv[4])   
      
      
    #---synchronizacja przy uzyciu slownika pol-ang ---#
    
    nr_p = 0
    nr_a = 0
    koniec_listy_ang = False
    koniec_listy_pol = False
    
    
    while True:
        tlumaczenia_str = "\nTRANSLATE: "
        lista_recordow_tlumaczen=tlumacz_slowa_na_ang(dbm,wydziel_slowa_pol(lista_zdan_pol[nr_p]))
        #szukaj_slow_w_zdaniu_ang(lista_recordow_tlumaczen,lista_zdan_ang[nr_a]) 
        print "\nANG: " + lista_zdan_ang[nr_a]
        
        for records in lista_recordow_tlumaczen:
            for r in records:
                tlumaczenia_str = tlumaczenia_str + ", "+ r[1] 
        
          
        print tlumaczenia_str    
        
        
        nr_p = nr_p + 1
        nr_a = nr_a + 1
        
        if nr_p == len(lista_zdan_pol):
            koniec_listy_pol = True
        
        if nr_a == len(lista_zdan_ang):
           koniec_listy_ang = True
        
        if koniec_listy_pol:
            while nr_a < len(lista_zdan_ang):
                #lista_zdan_ang_synch.append(lista_zdan_ang[nr_a])
                nr_a = nr_a + 1
            break
            
        if koniec_listy_ang:
            while nr_p < len(lista_zdan_pol):
                #lista_zdan_pol_synch.append(lista_zdan_pol[nr_p])
                nr_p = nr_p + 1
            break
     
    
    
    if False:                    
        print "Ilosc zdan polskich:" + str(len(lista_zdan_pol))  
        print "Ilosc zdan angielskich:" + str(len(lista_zdan_ang))   
        print "Ilosc zdan polskich po synchronizacji:" + str(len(lista_zdan_pol_synch))  
        print "Ilosc zdan angielskich po synchronizacji:" + str(len(lista_zdan_ang_synch))      
     
          
        zdania_pol_ang = open(kat+'/zdania_pol_ang.txt','w')  
        if len(lista_zdan_pol_synch)> len(lista_zdan_ang_synch):
            nr = 0
            while nr < len(lista_zdan_ang_synch):
                zdania_pol_ang.write(lista_zdan_pol_synch[nr]+"\n")
                zdania_pol_ang.write(lista_zdan_ang_synch[nr]+"\n\n")
                nr = nr + 1
            while nr < len(lista_zdan_pol_synch):
                zdania_pol_ang.write(lista_zdan_pol_synch[nr]+"\n")
                nr = nr + 1
        else:
            nr = 0
            while nr < len(lista_zdan_pol_synch):
                zdania_pol_ang.write(lista_zdan_pol_synch[nr]+"\n")
                zdania_pol_ang.write(lista_zdan_ang_synch[nr]+"\n\n")
                nr = nr + 1
            while nr < len(lista_zdan_ang_synch):
                zdania_pol_ang.write(lista_zdan_ang_synch[nr]+"\n")
                nr = nr + 1
                         
        zdania_pol_ang.close()      
        print "koniec"        
示例#16
0
def main():
    kat = 'wyniki'
    pol_or_ang = sys.argv[1]
    dbm = DBmanager()       
    _plp.plp_init()
    n = int(sys.argv[3])

    hash_of_tuples = {}
    print "\nPobranie statystyk %d wyrazowych..." % n   
    statystyki = dbm.get_all_phrases(n, pol_or_ang)
    print "Pobrano %d fraz" % len(statystyki)
    stat_set = set(wiersz[2:n+2] for wiersz in statystyki)            
    print "N = %d" % (n)        

    if n ==2 :
        for w1, w2 in stat_set:
            lw1 = label_set(w1)    
            lw2 = label_set(w2)
            if not lw1 or not lw2:
                continue
            tuples = (lw1, lw2)
            if hash_of_tuples.get(tuples)==None:
                hash_of_tuples[tuples]=1
            else:
                hash_of_tuples[tuples]+=1
        print len(hash_of_tuples)
        if 'totxt'in sys.argv: 
            k=hash_of_tuples.keys()
            k.sort(lambda y,x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp  = open(kat+'/frazy_clp_'+str(n)+'.txt','w')
            frazy_stat_clp_id = open(kat+'/frazy_clp_'+str(n)+'_id.txt','w')
            nr = 1      
            for x in k:
                if hash_of_tuples[x] > 2 :
                    (s1,s2)=x
                    frazy_stat_clp.write(str(hash_of_tuples[x]) + "\t" + str([y1 for y1 in s1])+", "+str([y2 for y2 in s2]) + "\n")
                    frazy_stat_clp_id.write(str(nr)+"\t"+str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()    
            frazy_stat_clp_id.close()    
    elif n == 3:
        for w1, w2, w3 in stat_set:
            lw1 = label_set(w1)    
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            if not lw1 or not lw2 or not lw3:
                continue
            tuples = (lw1, lw2, lw3)
            #print "%s,%s,%s: %s" % (w1,w2,w3,str(tuples))
            if hash_of_tuples.get(tuples)==None:
                hash_of_tuples[tuples]=1
            else:
                hash_of_tuples[tuples]+=1
        print len(hash_of_tuples)
        if 'totxt'in sys.argv:    
            k=hash_of_tuples.keys()
            k.sort(lambda y,x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp  = open(kat+'/frazy_clp_'+str(n)+'.txt','w')
            frazy_stat_clp_id = open(kat+'/frazy_clp_'+str(n)+'_id.txt','w')
            nr = 1      
            for x in k:
                if hash_of_tuples[x] > 2 :
                    (s1,s2,s3)=x
                    frazy_stat_clp.write(str(hash_of_tuples[x]) + "\t" + str([y1 for y1 in s1])+", "+str([y2 for y2 in s2])+", "+str([y3 for y3 in s3]) + "\n")
                    frazy_stat_clp_id.write(str(nr)+"\t"+str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close() 
            frazy_stat_clp_id.close()
    elif n == 4:
        for w1, w2, w3, w4 in stat_set:
            lw1 = label_set(w1)    
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            lw4 = label_set(w4)
            if not lw1 or not lw2 or not lw3 or not lw4:
                continue
            tuples = (lw1, lw2, lw3, lw4)
            if hash_of_tuples.get(tuples)==None:
                hash_of_tuples[tuples]=1
            else:
                hash_of_tuples[tuples]+=1

        print len(hash_of_tuples)
        if 'totxt'in sys.argv:    
            k=hash_of_tuples.keys()
            k.sort(lambda y,x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
            print "Zapisywanie danych do plików"
            frazy_stat_clp  = open(kat+'/frazy_clp_'+str(n)+'.txt','w')
            frazy_stat_clp_id = open(kat+'/frazy_clp_'+str(n)+'_id.txt','w')
            nr = 1      
            for x in k:
                if hash_of_tuples[x] > 2 :
                    (s1,s2,s3,s4)=x
                    frazy_stat_clp.write(str(hash_of_tuples[x]) + "\t" + str([y1 for y1 in s1])+", "+str([y2 for y2 in s2])+", "+str([y3 for y3 in s3])+", "+str([y4 for y4 in s4]) + "\n")
                    frazy_stat_clp_id.write(str(nr)+"\t"+str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    elif n == 5:
        for w1, w2, w3, w4, w5 in stat_set:
            lw1 = label_set(w1)    
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            lw4 = label_set(w4)
            lw5 = label_set(w5)
            if not lw1 or not lw2 or not lw3 or not lw4 or not lw5:
                continue
            tuples = (lw1, lw2, lw3, lw4, lw5)
            if hash_of_tuples.get(tuples)==None:
                hash_of_tuples[tuples]=1
            else:
                hash_of_tuples[tuples]+=1
        print len(hash_of_tuples)
        if 'totxt'in sys.argv:  
            k=hash_of_tuples.keys()
            k.sort(lambda y,x: cmp(hash_of_tuples[x], hash_of_tuples[y])) 
            print "Zapisywanie danych do plików"
            frazy_stat_clp  = open(kat+'/frazy_clp_'+str(n)+'.txt','w')
            frazy_stat_clp_id = open(kat+'/frazy_clp_'+str(n)+'_id.txt','w')
            nr = 1      
            for x in k:
                if hash_of_tuples[x] > 2 :
                    (s1,s2,s3,s4,s5)=x
                    frazy_stat_clp.write(str(hash_of_tuples[x]) + "\t" + str([y1 for y1 in s1])+", "+str([y2 for y2 in s2])+", "+str([y3 for y3 in s3])+", "+str([y4 for y4 in s4])+", "+str([y5 for y5 in s5]) + "\n")
                    frazy_stat_clp_id.write(str(nr)+"\t"+str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    elif n == 6:
        for w1, w2, w3, w4, w5, w6 in stat_set:
            lw1 = label_set(w1)    
            lw2 = label_set(w2)
            lw3 = label_set(w3)
            lw4 = label_set(w4)
            lw5 = label_set(w5)
            lw6 = label_set(w6)
            if not lw1 or not lw2 or not lw3 or not lw4 or not lw5 or not lw6:
                continue
            tuples = (lw1, lw2, lw3, lw4, lw5, lw6)
            if hash_of_tuples.get(tuples)==None:
                hash_of_tuples[tuples]=1
            else:
                hash_of_tuples[tuples]+=1
        print len(hash_of_tuples)
        if 'totxt'in sys.argv:   
            k=hash_of_tuples.keys()
            k.sort(lambda y,x: cmp(hash_of_tuples[x], hash_of_tuples[y])) 
            print "Zapisywanie danych do plików"
            frazy_stat_clp  = open(kat+'/frazy_clp_'+str(n)+'.txt','w')
            frazy_stat_clp_id = open(kat+'/frazy_clp_'+str(n)+'_id.txt','w')
            nr = 1      
            for x in k:
                if hash_of_tuples[x] > 2 :
                    (s1,s2,s3,s4,s5,s6)=x
                    frazy_stat_clp.write(str(hash_of_tuples[x]) + "\t" + str([y1 for y1 in s1])+", "+str([y2 for y2 in s2])+", "+str([y3 for y3 in s3])+", "+str([y4 for y4 in s4])+", "+str([y5 for y5 in s5])+", "+str([y6 for y6 in s6]) + "\n")
                    frazy_stat_clp_id.write(str(nr)+"\t"+str(hash_of_tuples[x]) + "\n")
                    nr = nr + 1
            frazy_stat_clp.close()
            frazy_stat_clp_id.close()
    if 'pic' in sys.argv:
        k=hash_of_tuples.keys()
        print "Sortowanie,"
        k.sort(lambda y,x: cmp(hash_of_tuples[x], hash_of_tuples[y]))
        set_of_tuples = set()
        print "Tworzenie zbioru,"
        cut = int(sys.argv[4])
        for x in k:
            if hash_of_tuples[x] >= cut:
                set_of_tuples.add(x)
        print "Wielkosc zbioru : %d" % len(set_of_tuples)
        frazy_stat_clp_pic  = open('frazy_clp_'+str(n)+'.pic','w')
        print "Zapisywanie do pliku,"
        from cPickle import dump
        dump(set_of_tuples,frazy_stat_clp_pic,2)
        frazy_stat_clp_pic.close() 
示例#17
0
def tlumacz_slowa_clp(dbm, lista_slow):
    _plp.plp_init()
    lista_slow_podst = do_fromy_podstawowej(dbm, _plp, lista_slow)
    return slowa_do_listy(lista_slow_podst)
示例#18
0
文件: pol2ang.py 项目: figield/NLP
def tlumacz_slowa_phrase(dbm,lista_fraz,sub_method):
    _plp.plp_init()
    lista_fraz = tlumacz_frazy(dbm,_plp,lista_fraz,sub_method)
    return frazy_do_listy(lista_fraz)