def obdelavaDrugegaBesedila(): trenutniSeznamOznak = [] # Seznam dokumentov drzi imena vseh dokumentov, ki jih mora kasneje BowClassify obdelati... # Ko sm tolk butast resno :/ sam se eno dodatno txt datoteko ustvarjej za info shranjevat, pol pa po sami informaciji skač global seznamDokumentov seznamDokumentov = [] oznake = [] print("Obdelava dokumenta v postopku....\nLahko traja nekaj sekund...") ucnoBesedilo = open(zbirkaBesedilPreverjanja,"r") for vrsta in iter(ucnoBesedilo): info, clanek = knjiznica.izlusciPosameznaDela(vrsta) trenutniSeznamOznak, stevilkaClanka = knjiznica.infoObdelava(info) seznamDokumentov.append(stevilkaClanka) # Prehod skozi oznake, še vedno ista vrstica for oz in trenutniSeznamOznak: tmp = oznaka(oz,stevilkaClanka) # Zacnem polniti ali pa preverjam ali je ze notri nek element in inkrementiram njegovo vrednost oznake = knjiznica.dodajOznakoVBazo(oznake,tmp) # hashtag:PonosnNaIdejo :P knjiznica.shraniPosamezenClanek(stevilkaClanka,clanek,razbitiClanki,0) knjiznica.shraniPosamezenClanek(stevilkaClanka,info,kcah,1) ucnoBesedilo.close() oznake = knjiznica.sortiranje(oznake) knjiznica.shraniStatistiko(oznake, statistikaMapa,"Statistika_Oznak_2") global seznamKategorijDrugegaBesedila seznamKategorijDrugegaBesedila = oznake knjiznica.izpis(N) ''' seznamKategorijDrugegaBesedila je seznam vseh objektov, ki so sestavljeni iz imena, pogostosti pojavitve in seznamu dokumentov v katerem se nahajajo. To uporabiš kasneje pri preverjanju ali nek dokument res je označen pod neko kategorijo ali ne... ''' uporabaKlasifikatorjev()
def zunanjiClanek(): vpr = 1 knjiznica.izpis(N) print( "'Za vsako od uporabljenih štirih kategorij poiščite na internetu po eno besedilo, ki ga klasifikator za tisto kategorijo napove kot pozitiven primer.'" ) print( "Pregled zunanjih clankov. Ustvarite datoteko[format .txt], ki vsebuje besedilo clanka." ) print("Nato sledite navodilom...") knjiznica.izpis(N) while (vpr == 1): lokacijaZunanjiClanek = knjiznica.lokacijaDatoteke("Lokacija clanka: ") imeClanka = input("Poimenovanje clanka: ") kategorija = input("Kategorija: ") kategorija = kategorija.upper() jedro = input("Jedro [L... linerna P... polinomska]: ") jedro = jedro.upper() lokacijaUcenja = statistikaMapa + kategorija + "_" + jedro + "/prvo.bowmd" if (os.path.isfile(lokacijaUcenja)): print( "Klasifikator in vrsta jedra sta bila izvedena... BowClassify se lahko zazene" ) bowClassifyUporabaNadClankom(lokacijaUcenja, kategorija, jedro, imeClanka, lokacijaZunanjiClanek) else: print("Specificna klasifikacija ni bila izvedena!") odg = input("Zelis ponoviti ukaz? \n0 == Ne\n1 == Da\nIzbira:") if (odg != "1"): break
def obdelavaDrugegaBesedila(): trenutniSeznamOznak = [] oznake = [] print("Obdelava dokumenta v postopku....\nLahko traja nekaj sekund...") ucnoBesedilo = open(zbirkaBesedilPreverjanja,"r") for vrsta in iter(ucnoBesedilo): info, clanek = knjiznica.izlusciPosameznaDela(vrsta) trenutniSeznamOznak, stevilkaClanka = knjiznica.infoObdelava(info) # Prehod skozi oznake, še vedno ista vrstica for oz in trenutniSeznamOznak: tmp = oznaka(oz,stevilkaClanka) # Zacnem polniti ali pa preverjam ali je ze notri nek element in inkrementiram njegovo vrednost oznake = knjiznica.dodajOznakoVBazo(oznake,tmp) knjiznica.shraniPosamezenClanek(stevilkaClanka,clanek,razbitiClanki) ucnoBesedilo.close() oznake = knjiznica.sortiranje(oznake) knjiznica.shraniStatistiko(oznake, statistikaMapa,"Statistika_Oznak_2") global seznamKategorijDrugegaBesedila seznamKategorijDrugegaBesedila = oznake knjiznica.izpis(N) ''' seznamKategorijDrugegaBesedila je seznam vseh objektov, ki so sestavljeni iz imena, pogostosti pojavitve in seznamu dokumentov v katerem se nahajajo. To uporabiš kasneje pri preverjanju ali nek dokument res je označen pod neko kategorijo ali ne... ''' uporabaKlasifikatorjev()
def obdelavaPrvegaBesedila(): trenutniSeznamOznak = [] oznake = [] print("Obdelava dokumenta v postopku....\nLahko traja nekaj sekund...") ucnoBesedilo = open(ucnaZbirkaBesedil, "r") for vrsta in iter(ucnoBesedilo): # Bedarija da posebej shranjujem oba dela... zna pridit kasneje prav info, clanek = knjiznica.izlusciPosameznaDela(vrsta) trenutniSeznamOznak, stevilkaClanka = knjiznica.infoObdelava(info) # Prehod skozi oznake, še vedno ista vrstica for oz in trenutniSeznamOznak: tmp = oznaka(oz, stevilkaClanka) # Zacnem polniti ali pa preverjam ali je ze notri nek element in inkrementiram njegovo vrednost oznake = knjiznica.dodajOznakoVBazo(oznake, tmp) ucnoBesedilo.close() oznake = knjiznica.sortiranje(oznake) knjiznica.shraniStatistiko(oznake, statistikaMapa, "Statistika_Oznak_1") knjiznica.izpis(N)
def obdelavaPrvegaBesedila(): trenutniSeznamOznak = [] oznake = [] print("Obdelava dokumenta v postopku....\nLahko traja nekaj sekund...") ucnoBesedilo = open(ucnaZbirkaBesedil,"r") for vrsta in iter(ucnoBesedilo): # Bedarija da posebej shranjujem oba dela... zna pridit kasneje prav info, clanek = knjiznica.izlusciPosameznaDela(vrsta) trenutniSeznamOznak, stevilkaClanka = knjiznica.infoObdelava(info) # Prehod skozi oznake, še vedno ista vrstica for oz in trenutniSeznamOznak: tmp = oznaka(oz,stevilkaClanka) # Zacnem polniti ali pa preverjam ali je ze notri nek element in inkrementiram njegovo vrednost oznake = knjiznica.dodajOznakoVBazo(oznake,tmp) ucnoBesedilo.close() oznake = knjiznica.sortiranje(oznake) knjiznica.shraniStatistiko(oznake, statistikaMapa,"Statistika_Oznak_1") knjiznica.izpis(N)
def drugiDel(): vpr = 1 print() while (vpr == 1): clust = input("Na koliko clustrov zelis razdeliti dokument: ") # Ustvari datoteko za vsako število... try: tmpLokacija = statistikaMapa+clust+"_clustrov/" os.mkdir(tmpLokacija) os.chdir(tmpLokacija) ukaz = BowKMeans + " -i:"+statistikaMapa+"prvo.bow -clusts:"+clust os.system(ukaz) except: print("Na toliko clustrov se je ze razdelilo...") odg = int(input("Zelis ponoviti razdelitev? \n0 == Ne\n1 == Da\nIzbira:")) if (odg != 1): break knjiznica.izpis(N) print("Clustriranje koncano...")
def drugiDel(): vpr = 1 print() while (vpr == 1): clust = input("Na koliko clustrov zelis razdeliti dokument: ") # Ustvari datoteko za vsako število... try: tmpLokacija = statistikaMapa + clust + "_clustrov/" os.mkdir(tmpLokacija) os.chdir(tmpLokacija) ukaz = BowKMeans + " -i:" + statistikaMapa + "prvo.bow -clusts:" + clust os.system(ukaz) except: print("Na toliko clustrov se je ze razdelilo...") odg = int( input("Zelis ponoviti razdelitev? \n0 == Ne\n1 == Da\nIzbira:")) if (odg != 1): break knjiznica.izpis(N) print("Clustriranje koncano...")
def obdelavaDrugegaBesedila(): trenutniSeznamOznak = [] # Seznam dokumentov drzi imena vseh dokumentov, ki jih mora kasneje BowClassify obdelati... # Ko sm tolk butast resno :/ sam se eno dodatno txt datoteko ustvarjej za info shranjevat, pol pa po sami informaciji skač global seznamDokumentov seznamDokumentov = [] oznake = [] print("Obdelava dokumenta v postopku....\nLahko traja nekaj sekund...") ucnoBesedilo = open(zbirkaBesedilPreverjanja, "r") for vrsta in iter(ucnoBesedilo): info, clanek = knjiznica.izlusciPosameznaDela(vrsta) trenutniSeznamOznak, stevilkaClanka = knjiznica.infoObdelava(info) seznamDokumentov.append(stevilkaClanka) # Prehod skozi oznake, še vedno ista vrstica for oz in trenutniSeznamOznak: tmp = oznaka(oz, stevilkaClanka) # Zacnem polniti ali pa preverjam ali je ze notri nek element in inkrementiram njegovo vrednost oznake = knjiznica.dodajOznakoVBazo(oznake, tmp) # hashtag:PonosnNaIdejo :P knjiznica.shraniPosamezenClanek(stevilkaClanka, clanek, razbitiClanki, 0) knjiznica.shraniPosamezenClanek(stevilkaClanka, info, kcah, 1) ucnoBesedilo.close() oznake = knjiznica.sortiranje(oznake) knjiznica.shraniStatistiko(oznake, statistikaMapa, "Statistika_Oznak_2") global seznamKategorijDrugegaBesedila seznamKategorijDrugegaBesedila = oznake knjiznica.izpis(N) ''' seznamKategorijDrugegaBesedila je seznam vseh objektov, ki so sestavljeni iz imena, pogostosti pojavitve in seznamu dokumentov v katerem se nahajajo. To uporabiš kasneje pri preverjanju ali nek dokument res je označen pod neko kategorijo ali ne... ''' uporabaKlasifikatorjev()
def zunanjiClanek(): vpr = 1 knjiznica.izpis(N) print("'Za vsako od uporabljenih štirih kategorij poiščite na internetu po eno besedilo, ki ga klasifikator za tisto kategorijo napove kot pozitiven primer.'") print("Pregled zunanjih clankov. Ustvarite datoteko[format .txt], ki vsebuje besedilo clanka.") print("Nato sledite navodilom...") knjiznica.izpis(N) while(vpr == 1): lokacijaZunanjiClanek = knjiznica.lokacijaDatoteke("Lokacija clanka: ") imeClanka = input("Poimenovanje clanka: ") kategorija = input("Kategorija: ") kategorija = kategorija.upper() jedro = input("Jedro [L... linerna P... polinomska]: ") jedro = jedro.upper() lokacijaUcenja = statistikaMapa +kategorija+"_"+jedro+"/prvo.bowmd" if(os.path.isfile(lokacijaUcenja)): print("Klasifikator in vrsta jedra sta bila izvedena... BowClassify se lahko zazene") bowClassifyUporabaNadClankom(lokacijaUcenja, kategorija, jedro, imeClanka, lokacijaZunanjiClanek) else: print("Specificna klasifikacija ni bila izvedena!") odg =input("Zelis ponoviti ukaz? \n0 == Ne\n1 == Da\nIzbira:") if (odg != "1"): break
def uvod(): knjiznica.izpis(N) knjiznica.uvod() knjiznica.datum() knjiznica.izpis(N)