def calculateScore(self): results = defaultdict(list) #get all MatchBoxes from DB and put in a list matchBoxes = self.db.getMatchBoxes() emptyMatchBoxes = set() #for all matchBoxes in matchBoxes for mb in matchBoxes: matches = mb.getMatches() #for each match in each matchbox results[mb.getJob().getContentId()] = list() for curMatch in matches: score = curMatch.getCount() results[mb.getJob().getContentId()].append( (curMatch.getResume().getContentId(), score)) results[mb.getJob().getContentId()].sort(key=lambda x: x[1], reverse=True) emptyBox = MatchBox(mb.getJob()) emptyMatchBoxes.add(emptyBox) self.db.storeMatchBoxes(emptyMatchBoxes) self.db.storeResults(results) if not results: print('empty') else: print(results) '''
def matchAll(self, mode = 0): #Both new resumes and new jobs are uploaded if mode == 0: resume_list = self.db.getNewResumes() job_list = self.db.getNewJobs() boxes = set() assert len(job_list) > 0 assert len(resume_list) > 0 for job in job_list: box = MatchBox(job) for resume in resume_list: new_match = self.match(resume, job) box.addMatch(new_match) boxes.add(box) self.db.addMatchBoxes(boxes) #Only new resumes are uploaded elif mode == 1: resume_list = self.db.getNewResumes() boxes = self.db.getMatchBoxes() assert len(resume_list) > 0 assert len(boxes) > 0 for b in boxes: box = b for resume in resume_list: job = box.getJob() new_match = self.match(resume, job) box.addMatch(new_match) self.db.storeMatchBoxes(boxes) #Only new jobs are uploaded elif mode == 2: resume_list = self.db.getAllResumes() job_list = self.db.getNewJobs() boxes = set() assert len(job_list) > 0 assert len(resume_list) > 0 for job in job_list: box = MatchBox(job) for resume in resume_list: new_match = self.match(resume, job) box.addMatch(new_match) boxes.add(box) self.db.addMatchBoxes(boxes) else: return False
def main(): resume = openFile('data/DesmondLim2.json') print(resume) resumeNode = ResumeNode("desmond", '97859875', '*****@*****.**', '456', resume) ##uncomment for job desc content = openFile('data/sampleJob2.json') print(content) print('1') keywords = openFile('data/keywords.json') # print(resume) # jobNode = JobDescNode("545646", content, keywords) arbitrary_number= 666 match = Match(resumeNode, jobNode, arbitrary_number) box = MatchBox(jobNode) box.addMatch(match); boxes = set(); boxes.add(box); calculateScore(boxes)
def matchAll(self, mode=0): #Both new resumes and new jobs are uploaded if mode == 0: resume_list = self.db.getNewResumes() job_list = self.db.getNewJobs() boxes = set() assert len(job_list) > 0 assert len(resume_list) > 0 for job in job_list: box = MatchBox(job) for resume in resume_list: new_match = self.match(resume, job) box.addMatch(new_match) boxes.add(box) self.db.addMatchBoxes(boxes) #Only new resumes are uploaded elif mode == 1: resume_list = self.db.getNewResumes() boxes = self.db.getMatchBoxes() assert len(resume_list) > 0 assert len(boxes) > 0 for b in boxes: box = b for resume in resume_list: job = box.getJob() new_match = self.match(resume, job) box.addMatch(new_match) self.db.storeMatchBoxes(boxes) #Only new jobs are uploaded elif mode == 2: resume_list = self.db.getAllResumes() job_list = self.db.getNewJobs() boxes = set() assert len(job_list) > 0 assert len(resume_list) > 0 for job in job_list: box = MatchBox(job) for resume in resume_list: new_match = self.match(resume, job) box.addMatch(new_match) boxes.add(box) self.db.addMatchBoxes(boxes) else: return False