Example #1
0
        public void extractWorkExperience()
        {
            string       seg_name = "work_experience";
            WorkAnalyzer analyzer = new WorkAnalyzer(resumeContentList, sectionInfoList);

            if (segmentMap.ContainsKey(seg_name))
            {
                SectionInfo sectionInfo = segmentMap[seg_name];
                List <WorkExperienceData> workExperienceDataList = analyzer.extractWorkExperience(sectionInfo.Start,
                                                                                                  sectionInfo.End);
                resumedata.WorkExperience = workExperienceDataList;
            }
            else
            {
                // 从个人基本信息召回
                if (segmentMap.ContainsKey("basic_info"))
                {
                    SectionInfo sectionInfo = segmentMap["basic_info"];
                    List <WorkExperienceData> workExperienceDataList = analyzer.searchWorkExperience(sectionInfo.Start,
                                                                                                     sectionInfo.End);
                    // 判断单位是否与学校重复
                    if (this.resumedata.LatestSchool != null && workExperienceDataList.Count >= 1 && (this.resumedata
                                                                                                      .LatestSchool.Trim() != workExperienceDataList[0].CompanyName.Trim()))
                    {
                        resumedata.WorkExperience = workExperienceDataList;
                    }
                }
            }
        }
Example #2
0
        public ResumeData Parse()
        {
            try
            {
                // pre-process
                preProcess();
                // building education info
                extractEducationExperience();
                // building basic info
                extractBasicInfo();

                // add highest edu-info into basic info
                if (resumedata.LatestSchool == null || resumedata.LatestSchool.Trim() == "")
                {
                    if (resumedata.EducationExperience.Count > 0)
                    {
                        EducationExperienceData edu_item = EduAnalyzer
                                                           .getHighestEduExperience(resumedata.EducationExperience);
                        resumedata.LatestSchool = edu_item.School;
                        resumedata.LatestDegree = edu_item.Degree;
                        resumedata.LatestMajor  = edu_item.Major;
                    }
                }

                // build work info
                extractWorkExperience();

                WorkExperienceData workData = WorkAnalyzer.getearliestWorkExperience(resumedata.WorkExperience);
                if (workData != null && workData.StartTime != "")
                {
                    int workYears = 0;
                    if (workData.StartTime != "")
                    {
                        int workStartYear = Convert.ToInt32(workData.StartTime.Trim().Split(new char[] { '-' })[0]);

                        workYears            = DateTime.Now.Year - workStartYear;
                        resumedata.WorkYears = workYears;
                    }
                }

                // build except job info
                extractJobTarget();
                // build self-evaluation info
                extractSelfEvaluation();
                // building language-skill info
                extractLanguageSkill();
            }
            catch (Exception ex)
            {
                LoggerWrapper.Logger.Error("简历解析错误", ex);
            }
            return(resumedata);
        }