def macroRyth(midfile): ps = [] levs = [] for i in midfile.measures(0, 1000).parts[0]: ps.append(measureToPhrase(i)) for i in range(len(ps)): for j in range(i+1,len(ps)): levs.append(lv.levd(ps[i].n, ps[j].n) + lv.levd(ps[i].t, ps[j].t)) # print # print levs # print j = 0 for i in levs: j += i return 1.0 * j / len(levs)
def onTrans(self, event): self.list.DeleteAllItems() varList = [] varList.append(self.srcmel) print type(varList[random.randrange(len(varList))]) for i in range(100): varList.append(lv.supermorph(varList[random.randrange(len(varList))], 10)) print "done making vars" pickle.dump(varList, open("pick", "w+")) arffhead = open("arff.txt").read() arffList = [] arffList.append(arffhead) for i in range(len(varList)): if i % 100 == 0: print i feat = features.vect(features.phraseToScore(varList[i])) for j in feat: arffList.append(str(j) + ", ") arffList.append("neg \n") print "enough things in arfflist", len(arffList) == 7*len(varList)+1 arffString = "".join(arffList) print "done calculating features" print arffString arffFile = open(self.concept + "/" + "test.arff", "w+") arffFile.write(arffString) arffFile.close() print "done making testfile" # return # varList = pickle.load(open("pick")) subprocess.call(["java","-classpath", ".:weka.jar", "Trainer", self.concept], stdout=open(self.concept+"/res.txt", "w+")) res = open(self.concept + "/res.txt").read().split("\n") resvals = [float(i) for i in res[0:len(res)-1]] if resvals[len(resvals)-1] == "": resvals.pop() dists = [lv.levd(self.srcmel.n, i.n)+lv.levd(self.srcmel.t, i.t) for i in varList] sortpair = [(resvals[i], dists[i], varList[i]) for i in range(len(varList))] print "optlist made" def classComp0(x, y): if x[0]-y[0] > 0: return 1 if x[0]-y[0] < 0: return -1 if x[0]-y[0] == 0: return 0 def classComp1(x, y): return x[1]-y[1] sortpair.sort(classComp0) percentage = ((float(self.cbox2.GetValue().split("%")[0]) / 2) + 50) / 100 maxv = percentage + .025 minv = percentage - .025 mini = -1 maxi = -1 for i in range(len(sortpair)): if mini < 0 and sortpair[i][0] > minv: mini = i if maxi < 0 and sortpair[i][0] > maxv: maxi = i print mini, maxi , "mini maxi", sortpair[i][0], minv, maxv print mini, maxi , "mini maxi final" crange = sortpair[mini:maxi] if len(crange) == 0: crange = sortpair[int(minv*100):int(maxv*100)] crange.sort(classComp1) numchoice = int(self.cbox3.GetValue()) print len(crange), 'crange' print numchoice, "numchoice" self.finalvars = crange[0:numchoice] print "best choices selected" print len(self.finalvars), "finvars" for i in range(len(self.finalvars)): print i, "blagahba" self.list.InsertStringItem(i, self.concept+self.cbox2.GetValue()+str(i))