예제 #1
0
    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)
        '''
예제 #2
0
파일: Matcher.py 프로젝트: Dauth/CV-Parser
    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
예제 #3
0
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)
예제 #4
0
파일: Matcher.py 프로젝트: Dauth/CV-Parser
    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