在我工作的地方,我们会对候选人进行简历审查。我希望在评审时尽可能做到公正,但我不禁觉得,我只是将每一份简历与我头脑中任意一份简历进行排序,看看摆在我面前的那份简历离我的理想有多近。
为了解决这个问题,我正在尝试编写一段代码,
1)向用户显示两份简历
2)用户选择哪个更好
3)程序说,“这份简历在排名中总是高于其他简历”
4)重复步骤1-3
5)最终,每份简历都被排序到大致正确的位置(不一定要100%完美),然后继续审查。
希望这可以消除系统中的偏见,使简历审查更加公平。我相信这是我们都想要的。
我的问题是,我只是不确定从哪里开始。我可能没有使用正确的搜索词,但是每当我查找“如何使用python手动排序”或“选择一个元素并在python中排序”时,实际上什么也没有出现。
我现在并不担心界面部分:我只想在后端开始运行,这样我就可以在以后添加UI。
至于我的Python背景,我已经掌握了基础知识,我可以学习任何我需要学习的东西(我做过套利编码、硒的东西、抓取和各种生物信息学的东西)。我们称它为中间编码器的开始阶段。
感谢您的帮助!
发布于 2019-12-09 12:45:36
你有一大堆关于如何实现它的选择,但我认为基本上你会想要实现一个排序算法,让用户在项目之间进行比较。
这里有一个冒泡排序的例子,它很容易实现,但并不是最优的。选择合并排序将最小化用户必须执行的比较次数。
def bubble_sort_resumes(resume_list):
n = len(resume_list)
for i in range(n):
for j in range(n-i-1):
if user_decides_if_the_first_resume_is_better(resume_list[j], resume_list[j+1]):
resume_list[j], resume_list[j+1] = resume_list[j+1], resume_list[j]
def user_decides_if_the_first_resume_is_better(resume1, resume2):
# todo: implement me
# return True if resume1 is better, False if resume2 is better我并不特别推荐你选择冒泡排序而不是其他排序算法,它很简单。
这里还有一个基本的假设,即简历可以被评估为一个变量,但这可能不是真的--人们可能在某些领域有优势,在其他领域有劣势。但为了简单起见,听起来你很乐意做这样的假设。
你可能会遇到的一个问题是,如果用户说(或会说):简历1比2更好,简历2比3更好,简历3比1更好,那么就不清楚该如何处理这种情况。
发布于 2019-12-09 13:13:41
我认为你需要这个软件有一个投票系统,这样它就可以计算出你选择简历的次数。Dictionaries是最好的工具。
假设我在一个文件夹里有3份简历。简历的标题从1.pdf到3.pdf
1-使用os.listdir("PATH/TO/FOLDER/)这将在列表中列出你简历的所有标题。
2-将列表转换为字典。字典键将是简历标题,它们的值在开始时将为0。最终,这些值将重新选择每份简历收到的投票数量。
3-创建一个嵌套的for循环来相互比较简历。
4-每当用户选择一个简历而不是另一个简历时,简历的值将增加1。
#resumes = os.list(Path/To/Folder)
resumes = ["1.pdf","2.pdf", "3.pdf"]
resumeDictionary = { i : 0 for i in resumes } #Convert list to dictionary and give all keys a value 0
resumeRecord=[] #List to keep a record of resume comparison combinations
for resume in resumes:
for Anotherresume in resumes:
if Anotherresume is resume or [resume,Anotherresume] in resumeRecord or [Anotherresume,resume] in resumeRecord: #Prevent duplicate/repeated resume comparisons
continue
userInput = input("Which resume do you prefer? Press 1 or 2\n[1] " + resume + "\n" + "[2] " + Anotherresume + "\n")
if int(userInput) == 1:
resumeDictionary[resume] += 1
elif int(userInput) == 2:
resumeDictionary[Anotherresume] += 1
resumeRecord.append([resume,Anotherresume]) #Record combination
print(resumeDictionary)如果我运行上面的代码并选择resume "1.pdf“3次,我最终得到一个如下所示的字典
{'1.pdf': 3, '2.pdf': 1, '3.pdf': 2}https://stackoverflow.com/questions/59242507
复制相似问题