如何在Python中匹配最接近的字符串
■ 背景
手边有79个学校参加 智能车深度学习组别 提交的技术报告,但是在等级的EXCEL表格中对应的学校的名称与报告名称有些区别。那么如何能够比较自动对这些名称进行匹配呢?
这里使用了PYTHON库中的difflib的 get_cose_matches函数,来寻找在一个string列表中与被匹配的string最接近的字符串,其中参数 cutoff来定义匹配的相似程度。 n参数定义匹配的字符数量。
为了能够始终找到可以匹配上的字符串, 对于cutoff采用了调整的方式,直道找到一个可以匹配的字符串。
for cf in range(20):match = difflib.get_close_matches(l, filelist, cutoff = 1.0 - cf/20.0, n=20)if len(match) > 0:matchlist.append(match[0])flag = 1break
Say we have a list of strings: _list = […,] and user input _input = ‘…’, how do we find the items in _list that most closely resemble _input?
Python has a built-in package called difflib with the function get_close_matches() that can help us.
get_close_matches(word, possibilities, n, cutoff) accepts four parameters:
word - the word to find close matches for in our list
possibilities - the list in which to search for close matches of word
n (optional) - the maximum number of close matches to return. Must be > 0. Default is 3.
cutoff (optional) - a float in the range [0, 1] that a possibility must score in order to be considered similar to word. 0 is very lenient, 1 is very strict. Default is 0.6.
相关应用:
- 2020年创意组论文评曰
01匹配结果
EXCEL | 文件名 |
---|---|
安徽财经大学-安财AI零队 | 安徽财经大学-技术报告.pdf |
安徽工程大学-ahpu队 | 安徽工程大学-ahpu队-人工智能创意赛技术报告.pdf |
蚌埠学院 | 蚌埠学院技术报告.pdf |
北方工业大学-三只小白秃 | 北方工业大学-人工智能创意赛技术报告.pdf |
北华大学-北华翔龙2020 | 北华大学+北华翔龙2020.docx |
北京服装学院-乘风归队 | 北京服装学院 乘风归队 人工智能创意赛技术报告.pdf |
北京工业大学-BJUT | smart car 北京理工大学-技术报告.pdf |
北京科技大学-北京科技大学人工智能创意组 | 北京科技大学人工智能创意组技术报告.pdf |
北京理工大学-北湖鲤鱼王 | 北京理工大学-技术报告.pdf |
北京联合大学-Mr.郑先生 的团队 | 北京联合大学技术报告.docx |
北京邮电大学-ADC车队 | 北京邮电大学.pdf |
重庆大学-飞来一根葱队 | 重庆大学-人工智能创意赛技术报告(飞来一根葱队).pdf |
重庆邮电大学-Mindhand | 重庆邮电大学+Mindhand+技术报告.pdf |
大连海事大学-专业雷速登遥控车手队 | 大连海事大学-技术报告.pdf |
东北大学-青青草原催债团 | 东南大学-机器不学习.pdf |
东北大学秦皇岛分校-NEUQ人工智能一队 | 东北大学秦皇岛分校+NEUQ人工智能一队.pdf |
东莞理工学院-J中冲冲 | 东莞理工学院-技术报告.pdf |
东南大学-机器不学习 | 东南大学-机器不学习.pdf |
广东技术师范大学-冲冲冲队 | 广东技术师范大学-冲冲冲队-人工智能创意赛技术报告.pdf |
广西大学-sn团队 | 南京师范大学-赛腾七队.pdf |
国防科技大学-untitled | 国防科技大学 Untitled 作品报告.pdf |
哈尔滨工程大学-济海追风0队 | 哈尔滨工程大学-济海追风0队.pdf |
哈尔滨工业大学(深圳)-HITsz小队 | 哈尔滨工业大学(深圳)技术报告.pdf |
哈尔滨工业大学(威海)-传球啊坤坤 | 哈尔滨工业大学(威海)-传球啊坤坤.docx |
哈尔滨工业大学-紫丁香二队 | 哈尔滨工业大学紫丁香二队技术报告.pdf |
杭州电子科技大学-杭电百度创意一队 | 杭州电子科技大学+杭电百度创意一队.pdf |
合肥学院-围巾man | 合肥学院-人工智能创意赛技术报告.pdf |
黑龙江工程学院 | 黑龙江工程学院人工智能创意赛技术报告(1).docx |
黑龙江科技大学-让我与会员队 | 黑龙江科技大学-无人车技术报告.docx |
湖北汽车工业学院-武当山观光车队 | 湖北汽车工业学院-武当山观光车队-技术报告.pdf |
华北电力大学-CIENB | 华北电力大学.docx |
华南理工大学-华工奔雷队 | 华南理工大学-人工智能创意赛技术报告.docx |
华南师范大学深蓝色工程师-阿尔法猫 | 华南师范大学-深蓝色工程师阿尔法猫-技术报告.pdf |
华中科技大学-深度学习一队 | 华中科技大学深度学习一队报告.pdf |
火箭军工程大学-西安小钢炮 | 火箭军工程大学-人工智能创意赛技术报告.pdf |
集美大学-一起爬山队 | 南京师范大学-赛腾七队.pdf |
江苏大学-幽荧 | 江苏大学-人工智能创意赛技术报告.pdf |
江苏理工学院-江苏理工Smart | car 江苏理工学院-人工智能创意赛技术报告.pdf |
江西农业大学-南昌商学院创意组 | 江西农业大学南昌商学院 肉蛋葱鸡队创意组技术报告.pdf |
金陵科技学院-两天完赛队 | 金陵科技学院+两天完赛队.pdf |
空军预警学院 | 空军预警学院-人工智能创意赛技术报告(1).docx |
鲁东大学-WrightOcean | 鲁东大学-技术报告).docx |
闽江学院-MJU | 浙江科技学院-技术报告.pdf |
南京航空航天大学-冲冲冲队 | 南京航空航天大学+冲冲冲队技术报告.pdf |
南京理工大学泰州科技学院 | 南京理工大学泰州科技学院技术报告.docx |
南京师范大学-赛腾七队 | 南京师范大学-赛腾七队.pdf |
南京信息工程大学-B-DAT队 | 南京信息工程大学-技术报告.pdf |
南通大学-AIGO | 南通大学-人工智能创意赛技术报告.pdf |
齐鲁工业大学-咱们裸熊 | 齐鲁工业大学-人工智能创意赛技术报告-咱们裸熊.pdf |
青岛科技大学-无状态ZZM的团队 | 青岛科技大学 无状态ZZM的团队 人工智能创意赛 技术报告.pdf |
曲阜师范大学-流觞曲水 | 曲阜师范大学技术报告.pdf |
厦门大学-南强至央 | 厦门大学-第十五届全国大学生智能汽车竞赛.pdf |
山东大学(威海)-真彦灏 | 山东大学(威海)真彦灏-技术报告.docx |
上海工程技术大学-爱了爱了队 | 上海工程技术大学-人工智能创意赛技术报告.pdf |
上海海事大学 | 上海海事大学-人工智能创意赛技术报告.pdf |
上海交通大学-CyberAI | 上海交通大学-CyberA1-人工智能创意赛技术报告.pdf |
上海理工大学-一马当先 | 上海理工大学-技术报告.pdf |
四川大学-专业团队 | 南京师范大学-赛腾七队.pdf |
四川师范大学-DeepMan | 四川师范大学-DeepMan-技术手册.pdf |
太原工业学院-晋速-虹贯星 | 太原工业学院人工智能创意赛技术报告.docx |
太原理工大学 | 太原理工大学-人工智能创意赛技术报告.pdf |
天津大学-天津大学百度创意队 | 天津大学百度创意队技术报告.pdf |
同济大学-智信‘GRAPfruitE | 同济大学-技术报告.pdf |
武汉大学-格珈」ronhide | 武汉大学+珞珈-Ironhide.pdf |
武汉理工大学-桨道理队-技术报告 | 武汉理工大学-桨道理队-技术报告.pdf |
西安工业大学-三张飙车队 | 西安工业大学-技术报告.docx |
西安邮电大学-今晚打老虎 | 西安邮电大学今晚打老虎人工智能创意赛技术报告.pdf |
西北工业大学-翱翔之翼队 | 西北工业大学 翱翔之翼队 技术报告.pdf |
西南交通大学-逆行者 | 西南交通大学-人工智能创意赛技术报告.pdf |
盐城工学院-欠拟合队 | 盐城工学院-人工智能创意赛技术报告模板.pdf |
长春工业大学-长工大魔鼠一队 | 长工大魔鼠一队技术报告.pdf |
长沙师范学院+中南大学-长师中南比亚迪申猴2020 | 长师中南比亚迪申猴2020.pdf |
浙大城市学院-浙江人工智能队 | 浙大城市学院-人工智能创意赛技术报告.pdf |
浙江科技学院-浙科深度学习一队 | 华中科技大学深度学习一队报告.pdf |
中北大学-卓创车队 | 中北大学-人工智能创意赛技术报告.pdf |
中国海洋大学-Phoenix | 中国海洋大学Phoenix技术报告.docx |
中国计量大学-仰仪AI创意0队 | 中国计量大学仰仪AI创意0队.pdf |
中国矿业大学CUMTAI | 中国计量大学仰仪AI创意0队.pdf |
中南民族大学-东经114点39 | 中南民族大学-人工智能创意赛技术报告.pdf |
前面自动匹配的过程还存在着五个错误。经过修改之后如下为正式的匹配结果:
EXCEL | 文件名称 |
---|---|
安徽财经大学-安财AI零队 | 安徽财经大学-技术报告.pdf |
安徽工程大学-ahpu队 | 安徽工程大学-ahpu队-人工智能创意赛技术报告.pdf |
蚌埠学院 | 蚌埠学院技术报告.pdf |
北方工业大学-三只小白秃 | 北方工业大学-人工智能创意赛技术报告.pdf |
北华大学-北华翔龙2020 | 北华大学+北华翔龙2020.docx |
北京服装学院-乘风归队 | 北京服装学院 乘风归队 人工智能创意赛技术报告.pdf |
北京工业大学-BJUTsmart car | 北京理工大学-技术报告.pdf |
北京科技大学-北京科技大学人工智能创意组 | 北京科技大学人工智能创意组技术报告.pdf |
北京理工大学-北湖鲤鱼王 | 北京理工大学-技术报告.pdf |
北京联合大学-Mr.郑先生 的团队 | 北京联合大学技术报告.docx |
北京邮电大学-ADC车队 | 北京邮电大学.pdf |
重庆大学-飞来一根葱队 | 重庆大学-人工智能创意赛技术报告(飞来一根葱队).pdf |
重庆邮电大学-Mindhand | 重庆邮电大学+Mindhand+技术报告.pdf |
大连海事大学-专业雷速登遥控车手队 | 大连海事大学-技术报告.pdf |
东北大学-青青草原催债团 | 东南大学-机器不学习.pdf |
东北大学秦皇岛分校-NEUQ人工智能一队 | 东北大学秦皇岛分校+NEUQ人工智能一队.pdf |
东莞理工学院-J中冲冲 | 东莞理工学院-技术报告.pdf |
东南大学-机器不学习 | 东南大学-机器不学习.pdf |
广东技术师范大学-冲冲冲队 | 广东技术师范大学-冲冲冲队-人工智能创意赛技术报告.pdf |
广西大学-sn团队 | 广西大学人工智能创意赛技术报告.pdf |
国防科技大学-untitled | 国防科技大学 Untitled 作品报告.pdf |
哈尔滨工程大学-济海追风0队 | 哈尔滨工程大学-济海追风0队.pdf |
哈尔滨工业大学(深圳)-HITsz小队 | 哈尔滨工业大学(深圳)技术报告.pdf |
哈尔滨工业大学(威海)-传球啊坤坤 | 哈尔滨工业大学(威海)-传球啊坤坤.docx |
哈尔滨工业大学-紫丁香二队 | 哈尔滨工业大学紫丁香二队技术报告.pdf |
杭州电子科技大学-杭电百度创意一队 | 杭州电子科技大学+杭电百度创意一队.pdf |
合肥学院-围巾man | 合肥学院-人工智能创意赛技术报告.pdf |
黑龙江工程学院 | 黑龙江工程学院人工智能创意赛技术报告(1).docx |
黑龙江科技大学-让我与会员队 | 黑龙江科技大学-无人车技术报告.docx |
湖北汽车工业学院-武当山观光车队 | 湖北汽车工业学院-武当山观光车队-技术报告.pdf |
华北电力大学-CIENB | 华北电力大学.docx |
华南理工大学-华工奔雷队 | 华南理工大学-人工智能创意赛技术报告.docx |
华南师范大学深蓝色工程师-阿尔法猫 | 华南师范大学-深蓝色工程师阿尔法猫-技术报告.pdf |
华中科技大学-深度学习一队 | 华中科技大学深度学习一队报告.pdf |
火箭军工程大学-西安小钢炮 | 火箭军工程大学-人工智能创意赛技术报告.pdf |
集美大学-一起爬山队 | 集美大学人工智能创意组技术报告.pdf |
江苏大学-幽荧 | 江苏大学-人工智能创意赛技术报告.pdf |
江苏理工学院-江苏理工Smart | car 江苏理工学院-人工智能创意赛技术报告.pdf |
江西农业大学-南昌商学院创意组 | 江西农业大学南昌商学院 肉蛋葱鸡队创意组技术报告.pdf |
金陵科技学院-两天完赛队 | 金陵科技学院+两天完赛队.pdf |
空军预警学院 | 空军预警学院-人工智能创意赛技术报告(1).docx |
鲁东大学-WrightOcean | 鲁东大学-技术报告).docx |
闽江学院-MJU | 闽江学院mju人工智能创意赛技术报告.docx |
南京航空航天大学-冲冲冲队 | 南京航空航天大学+冲冲冲队技术报告.pdf |
南京理工大学泰州科技学院 | 南京理工大学泰州科技学院技术报告.docx |
南京师范大学-赛腾七队 | 南京师范大学-赛腾七队.pdf |
南京信息工程大学-B-DAT队 | 南京信息工程大学-技术报告.pdf |
南通大学-AIGO | 南通大学-人工智能创意赛技术报告.pdf |
齐鲁工业大学-咱们裸熊 | 齐鲁工业大学-人工智能创意赛技术报告-咱们裸熊.pdf |
青岛科技大学-无状态ZZM的团队 | 青岛科技大学 无状态ZZM的团队 人工智能创意赛 技术报告.pdf |
曲阜师范大学-流觞曲水 | 曲阜师范大学技术报告.pdf |
厦门大学-南强至央 | 厦门大学-第十五届全国大学生智能汽车竞赛.pdf |
山东大学(威海)-真彦灏 | 山东大学(威海)真彦灏-技术报告.docx |
上海工程技术大学-爱了爱了队 | 上海工程技术大学-人工智能创意赛技术报告.pdf |
上海海事大学 | 上海海事大学-人工智能创意赛技术报告.pdf |
上海交通大学-CyberAI | 上海交通大学-CyberA1-人工智能创意赛技术报告.pdf |
上海理工大学-一马当先 | 上海理工大学-技术报告.pdf |
四川大学-专业团队 | 四川大学 创意组技术报告.pdf |
四川师范大学-DeepMan | 四川师范大学-DeepMan-技术手册.pdf |
太原工业学院-晋速-虹贯星 | 太原工业学院人工智能创意赛技术报告.docx |
太原理工大学 | 太原理工大学-人工智能创意赛技术报告.pdf |
天津大学-天津大学百度创意队 | 天津大学百度创意队技术报告.pdf |
同济大学-智信‘GRAPfruitE | 同济大学-技术报告.pdf |
武汉大学-格珈」ronhide | 武汉大学+珞珈-Ironhide.pdf |
武汉理工大学-桨道理队-技术报告 | 武汉理工大学-桨道理队-技术报告.pdf |
西安工业大学-三张飙车队 | 西安工业大学-技术报告.docx |
西安邮电大学-今晚打老虎 | 西安邮电大学今晚打老虎人工智能创意赛技术报告.pdf |
西北工业大学-翱翔之翼队 | 西北工业大学 翱翔之翼队 技术报告.pdf |
西南交通大学-逆行者 | 西南交通大学-人工智能创意赛技术报告.pdf |
盐城工学院-欠拟合队 | 盐城工学院-人工智能创意赛技术报告模板.pdf |
长春工业大学-长工大魔鼠一队 | 长工大魔鼠一队技术报告.pdf |
长沙师范学院+中南大学-长师中南比亚迪申猴2020 | 长师中南比亚迪申猴2020.pdf |
浙大城市学院-浙江人工智能队 | 浙大城市学院-人工智能创意赛技术报告.pdf |
浙江科技学院-浙科深度学习一队 | 华中科技大学深度学习一队报告.pdf |
中北大学-卓创车队 | 中北大学-人工智能创意赛技术报告.pdf |
中国海洋大学-Phoenix | 中国海洋大学Phoenix技术报告.docx |
中国计量大学-仰仪AI创意0队 | 中国计量大学仰仪AI创意0队.pdf |
中国矿业大学CUMTAI | 中国矿业大学-人工智能创意赛技术报告.docx |
中南民族大学-东经114点39 | 中南民族大学-人工智能创意赛技术报告.pdf |
02Python程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# INFOR1.PY -- by Dr. ZhuoQing 2020-08-06
#
# Note:
#============================================================from headm import *
import pandas as pd
import difflib#------------------------------------------------------------inforexcel = tspstring2text('inforexcel').strip('\r\n')
paperdir = tspstring2text('paperdir').strip('\r\n')printf(inforexcel)
printf(paperdir)filedim = os.listdir(paperdir)
#printf(filedim)
filelist = filedim#------------------------------------------------------------
excelfile = pd.read_excel(inforexcel)
listdata = excelfile.values.tolist()excelname = []
for id,l in enumerate(listdata):excelname.append(l[0])#------------------------------------------------------------
excellist = []
matchlist = []error = 0for l in excelname:excellist.append(l)flag = 0for cf in range(20):match = difflib.get_close_matches(l, filelist, cutoff = 1.0 - cf/20.0)if len(match) > 0:matchlist.append(match[0])flag = 1breakif flag == 0:matchlist.append('*****')error = error + 1#for l in excelname:
# excellist.append(l)# flag = 0
# match = difflib.get_close_matches(l, filelist, cutoff = 0.3)
# if len(match) > 0:
# matchlist.append(match[0])
# flag = 1# if flag == 0:
# matchlist.append('*****')
# error = error + 1#------------------------------------------------------------
tspmsgclr()
printf("EXCEL 文件名")
for m,n in zip(excellist, matchlist):printff(m, n)#printf("No Match:%d"%error)
tspmsgcopy()printf("Error:%d"%error)#------------------------------------------------------------
# END OF FILE : INFOR1.PY
#============================================================
如何在Python中匹配最接近的字符串相关推荐
- python中用什么函数读取字符串_如何在Python中获得函数名作为字符串?
在Python中,如何在不调用函数的情况下以字符串的形式获得函数名? 1 2 3 4def my_function(): pass print get_function_name_as_string( ...
- python中的reg_如何在python中从注册表读取字符串格式的Reg_二进制类型值
这些注册表项中似乎还有更多的数据,但它们以最近使用的程序文件的名称开头.我找到了一种提取名字的方法,但是条目以更多的数据结尾,我不知道它是什么.在 字符由空字节(b'\x00)分隔.所以我们必须每秒钟 ...
- 大数据分析如何在Python中生成FiveThirtyEight图
大数据分析如何在Python中生成FiveThirtyEight图?如果你阅读大数据分析文章,则可能已经迷失了FiveThirtyEight的内容.自然,他们的出色可视化使你印象深刻.你想制作自己的出 ...
- 如何在Python中声明一个数组?
如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...
- python set 排序_python set 排序_如何在Python中使用sorted()和sort()
点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基 著 18财税3班 李潇潇 译 日期:2019年5月6日 一. 使用sorted() ...
- 如何在Python中建立和训练K最近邻和K-Means集群ML模型
One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...
- python字符串筛选输出_如何在Python中过滤字符串列表
Python使用列表数据类型在顺序索引中存储多个数据.它的工作方式类似于其他编程语言的数字数组.filter()方法是Python的一种非常有用的方法.可以使用filter()方法从Python中的任 ...
- python 线性回归模型_如何在Python中建立和训练线性和逻辑回归ML模型
python 线性回归模型 Linear regression and logistic regression are two of the most popular machine learning ...
- python移动文件中某个内容_如何在Python中移动文件
如何在Python中移动文件 我查看了Python $ mv ...接口,但无法找到移动文件的方法. 我如何在Python中执行相当于$ mv ...的操作? >>> source_ ...
最新文章
- spring使用JdbcTemplate和jdbcDaosupport及具名参数使用
- 2021年的Angular最佳实践
- 域名行业将带来高达98亿美元的巨大商机
- 树状数组--快捷的线段树
- 液晶显示器模糊的照片
- Netsparker
- TCP/IP详解 卷1:协议—概述
- 经典的java角色扮演,盘点2010年十大经典角色扮演类游戏合集
- java pdf转图片原理_pdf转图片程序(java实现)
- Python学习DAY5|数据分析简介与实战
- 在线编辑excel文件实现服务器后台存储,及页面还原
- 如何在Python中调用C++程序?(文中以Opencv为例,在Python中调用C++的Opencv)
- SpringBoot性能优化方案
- 装修小知识 杜绝厨房装修遗憾
- 80老翁谈人生(249):律师想干什么?
- 浮动带来的问题,以及清除浮动影响的方式
- 【历史】- UNIX发展史(BSD,GNU,linux)
- hdu 5107 线段树+离散化+归并排序+极角排序
- 如何给妹子优化 Windows ?
- 机器学习笔记1-“没有免费的午餐”定理(No Free Lunch Theorem)
热门文章
- Python基础知识学习_Day5
- linux/centos 解决Tomcat内存溢出,centostomcat
- win7 storm搭建
- 使用WINAPI获得磁盘空间信息
- Linux下Apache+Tomcat 负载均衡
- GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法
- Redis实战之限制操作频率
- 开源 java CMS - FreeCMS2.8 数据对象 guestbook
- 在线听音乐要收费,你愿意吗?
- [转]用 jQuery 实现页面滚动(Scroll)效果的完美方法