Python中文
首页
教程
问答
标签
搜索
登录
注册
Python中一种模糊匹配算法的改进
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p><strong>任务</strong>:取两个文本文件,输出100%匹配和75%匹配。在</p> <p><strong>解决方案</strong>:</p> <pre><code>import difflib import csv # Imports and parses the files fileA = open("H:/comm.names.txt", 'r') try: setA = fileA.readlines() finally: fileA.close() fileB = open("H:/acad.names.txt", 'r') try: setB = fileB.readlines() finally: fileB.close() # 100% Match setMatch100 = set(setA).intersection(setB) Match100 = open("H:\Match100.txt", 'w') try: for item in setMatch100: Match100.write(item) finally: Match100.close() # Remove 100% matches from the two lists setA_LeftOver = set(setA).difference(setMatch100) setB_LeftOver = set(setB).difference(setMatch100) #Return the best match for setA_LeftOver[i] in setB_LeftOver that is at least 75% matching. fMatch75 = open("H:\Match75.csv", 'w') Match75 = csv.writer(fMatch75) try: Match75.writerow(['File A', 'File B']) for item in setA_LeftOver: match = difflib.get_close_matches(item, setB_LeftOver, 1, 0.75) if len(match) > 0: row = [item.rstrip(), match[0].rstrip()] Match75.writerow(row) finally: fMatch75.close() </code></pre> <p><strong>问题</strong>:这是可行的,但是效果不是很好。下面是一个匹配的例子:</p>^{pr2}$ 我不能把最小的百分比提高太多,因为我需要能够使大学与大学匹配。另外,我不能只确保第一个单词匹配,因为有些字符串以“the”开头,需要与排除“the”的字符串匹配。有人能给我指出一个方向,让我把技术上75%相似,但对人类来说根本不相似的匹配?
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我会尝试用<a href="http://code.google.com/p/pylevenshtein/" rel="nofollow">pylevenshtein</a>之类的工具比较字符串。它允许模糊字符串比较。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
2 回答
无法使用Django\u mssql\u后端迁移到外部hos
8 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
6 回答
无法使用Django1.6导入名称模式
9 回答
无法使用Django1.7和mongodb登录管理站点
10 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
8 回答
无法使用Djangocketditor上载图像(错误400)
9 回答
无法使用Djangocron进行函数调用
2 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
2 回答
无法使用Djangomssql provid
8 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
1 回答
无法使用Djangomssq迁移Django数据库
10 回答
无法使用Djangonox创建用户
4 回答
无法使用Djangopyodb从Django查询SQL Server
5 回答
无法使用Djangopython3ldap连接到ldap
1 回答
无法使用Djangoredis连接到redis
5 回答
无法使用Django中的FK创建新表
2 回答