【发布时间】:2016-12-14 00:32:19
【问题描述】:
在python中什么应该是最佳匹配的最佳实现。
我有一个 txt 文件,其中包含一些国家/地区代码映射,例如
代码名称
123 ABC
1234 防御
1235 GHI
124 JKL
1241 移动网络运营商
这个 txt 文件很大(13500 条记录)我只是放一些样本。
此外,我还有一些 CDR 文件,我在每条记录(行)中获取国家代码(数字),我想将其转换为国家名称。
现在我所说的最佳匹配是,假设 CDR 记录包含国家代码“1234”,那么国家名称将是“DEF”,如果是“1235”,则国家名称将是“GHI”,但如果国家代码是“1236”,那么完美匹配失败,它应该回退到“ABC”,因为“123”可用。
我不知道这种搜索是否有标准名称。 就像正则表达式中的贪婪搜索一样。
这种搜索的最佳实现是什么,因为 CDR 文件非常大(高达 25GB)。
【问题讨论】:
-
近似匹配有很多方法。什么对你来说是“最好的”取决于你的标准,你没有透露。投票结束过于广泛;也可能不清楚,或主要基于意见。详情请见help center。
-
在此处粘贴您尝试的代码。
-
@Trimax -- 好吧,我还没有编写相同的代码。我只是在想办法。到目前为止我想到的是,将 txt 文件内容(按国家代码)排序到元组列表中。然后在列表中搜索完整的国家代码,如果匹配失败,则再次搜索列表,删除最后一个数字,依此类推。有没有更好的办法?
-
@triplee -- 我还不明白我没有在这里透露哪些信息。我把问题简短化了,以便以最好的方式解决问题。
-
嗯,我明白了,你需要处理两个文件:一个,国家代码的映射;二、源数据。将映射文件放入字典,然后迭代源数据,匹配字典中的国家conde。