问题标签 [fuzzy-comparison]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - (模糊)不仅通过像素的颜色值来比较屏幕截图
我想比较软件不同站点的屏幕截图(稳定版和发布版)(手动检查的太多了)。屏幕截图将在不同的自动化硒验收测试中创建。
现在我想以一种有用的方式比较(比较并创建差异图像)屏幕截图。目前,屏幕截图将逐个像素(像素的颜色)进行比较。对于模糊性,我计算了颜色的 Delta-E(实验室空间和欧几里得距离)。
计算距离的算法有 AE、FUZZ、MAE、MEPP、MSE、NCC、PAE、PHASH、PSNR、RMSE 和 Perceptual Diff。不知道每个细节,但都是基于像素的颜色?还有什么...
然后还有其他距离度量,例如欧几里得距离和曼哈顿距离。但这些也是基于颜色的。
谁能告诉我提到的哪个最适合屏幕截图比较?还是有更好的方法?例如,区分不同的元素会很好(如果按钮丢失,那么输入字段稍微移动会更糟糕)。或者考虑所有元素都移动了 1px。然后图像就完全不同了。
我认为最大的问题是,截图没有语义。有没有人对我的要求有好的想法?也许与 DOM、计算样式、模板匹配或边缘检测的组合是可能的?经验?
PS 我知道 PhantomCSS、Wraith 等框架。但我检查的代码最多。他们使用 ImageMagick 或进行简单的基于像素的比较。
sas - Merging on closest value in SAS
Is there a way in SAS to do a fuzzy left merge based on a numeric field? Say I have the two tables below and want to merge on the closest value possible.
Dataset A:
Dataset B:
The result should be:
Please note that rounding isn't an option here because of the 5.1 case.
string - 没有重复约束的 Argmax numpy - 模糊字符串匹配
我有两个字符串列表,一个叫l1
另一个l2
。我有兴趣为 中的每个字符串找到l1
最匹配的字符串l2
(但不是相反,即我只关心 中的字符串l1
)。我知道没有完美的匹配。我使用 jaro-winkler 分数来计算每个字符串的相似度,使用 jellyfish 模块。
为了做到这一点,我创建了一个包含所有 jaro-winkler 分数的矩阵,然后找到 maxtrix 中每个点的最大值。但是,问题是有时字符串 froml2
可能是多个字符串 from 的最佳匹配,l1
我想防止这种情况发生。
有没有办法优化 argmax 方法,使得最大索引位置只能出现在结果矩阵中一次?
举个例子,拖车列表和后续代码如下:
在上面的示例中,请注意'topazchino51077'
from与 froml2
的字符串匹配两次l1
。这正是我希望防止的。来自 l2 的字符串应该与最佳匹配进行匹配。
arabic - tFuzzyMatch 显然不适用于阿拉伯文本字符串
我在 talend open studio for data integration v5.5.1 创建了一份工作。
我试图在两个客户名称列之间找到匹配项,一个是查找,另一个包含脏数据。
当客户名称为英文时,作业按预期运行。但是,对于阿拉伯名称,无论我使用的底层匹配算法(levenschtein、metaphone、双变音素)如何,即使对于 levenschtein 算法 min 1 max 50 的边界松散,也只能找到完全匹配。
我怀疑这与字符编码有关。我应该如何进行?我可以在 Talend 中使用 unicode 甚至 UTF-8 解释进行操作吗?
我正在通过 tFileInputExcel 使用 excel 数据源
talend - 在 Talend 中优化 FuzzyMatch
我正在使用 Talend 检查数据质量,比较两个数据库中人员的姓名。一个数据库将具有正确的名称,而另一个数据库将具有损坏的名称。我要做的是比较两个名称并从损坏的名称中找到正确的名称。
我正在使用 tFuzzyMatch 组件来匹配名称。
名称正确的数据库有 212000 条记录。
名称不正确的数据库有 50000 条记录。
tFuzzyMatch 需要花费大量时间来为每个损坏的名称查找正确的名称。
谁能帮我优化 tFuzzyMatch 以减少执行时间?
我的工作是这样的:
请看一下模糊匹配查找。它有 3124340 行。
我想加快模糊匹配查找。
ssis - SSIS 中的模糊查找未输出预期的结果
为了简单起见,假设我有一个Client
带字段的表:
- 客户编号
- 密码
- 地区
Region
我有一个带有字段的查找表:
- ID
- 邮政编码
- 地区
该Client
表有一行:
该区域有 2 行:
我正在尝试使用 SSIS 模糊查找来清理一些数据。
我使用客户端作为源,查找作为参考。当每次查找输出的最大匹配数为 1 时,结果为123,3075,THOMASTOWN, 1,3074,THOMASTOWN
. 在这种情况下,SSIS 更喜欢 region 的值而不是 pcode 的值。但是当我将此选项增加到更高(2、4 或 100)时,所有结果行都与前一个相同。
我希望当我增加数字时,查找表的另一行显示为匹配项之一,因为该行与客户端行具有相同的区域代码。
令我惊讶的是,当我第一次将选项从 2 增加到 4 时,我在模糊查找输出的 4 行中的 2 行中看到了预期结果(另一个查找记录作为匹配项),但从那以后它再也没有发生过,并且根据 Max number of matches 选项的不同值,我总是看到完全相同的记录。
谁能向我解释这里发生了什么以及我做错了什么?
neo4j - 如何在 Neo4j 密码中进行三元组/模糊匹配?
我使用的是具有 show_trgam() 和similarity() 的postgreSQL。我是 neo4j 的新手,想对两个字符串进行模糊比较。如果比较能返回一个分数,那就太好了。
任何回应表示赞赏。
r - 如何匹配来自两个数据集的模糊匹配字符串?
我一直在研究一种基于不完美字符串(例如公司名称)连接两个数据集的方法。过去我必须匹配两个非常脏的列表,一个列表包含姓名和财务信息,另一个列表包含姓名和地址。两者都没有可匹配的唯一 ID!假设已经进行了清洁,并且可能存在错字和插入。
到目前为止,AGREP 是我发现的最接近的工具。我可以在 AGREP 包中使用 levenshtein 距离,它测量两个字符串之间的删除、插入和替换的数量。AGREP 将返回距离最小(最相似)的字符串。
但是,我一直无法将此命令从单个值应用到整个数据帧。我粗略地使用了一个 for 循环来重复 AGREP 函数,但必须有一个更简单的方法。
请参阅以下代码:
algorithm - 我可以使用哪些算法来生成简单的人类可读的容错字符串?
人类会犯错误。当您要求他们提供一些唯一生成的标识某些实体的 ID 时。例如: Order A: has id ABC1234 Order B: has id BCD1235 他们可以打错字,他们可以提供字符串例如:A123, B123, 1 2 3, "Order id B 12/3" 那么对于自动系统来说这是一个挑战识别原始ID。我的问题是是否有任何已知的算法/技术。生成一个
- 唯一的人类可读 ID(不是 sha 或 md5) - 具有容错能力。你可以从一个字符子集仍然解码原始ID。-不区分大小写
容错的一个直观示例是二维码,当二维码的某些部分损坏时,您仍然可以阅读消息。
目标是避免使用诸如 ex 之类的工具/算法。弹性搜索,列文斯坦,即使客户打错字也增加解码原始ID的机会,并减少提供其他一些“原始ID”的机会。
python - 完全不熟悉 Python 的商科学生想要一个用于字符串模糊匹配的脚本
我是一名刚开始学习Python的商科学生。我的教授让我对两个文件进行模糊匹配:美国专利信息和从证券交易所网站下载的公司信息。我的任务是比较美国专利文件中出现的公司名称(文件 1 的第 1 栏)和证券交易所网站上的公司名称(文件 2 的第 1 栏)。据我所知,(1)第一步是将列出的所有字母文件 1 和文件 2 更改为小写;(2) 从文件 2 中选择每个名称,并将其与文件 1 中的所有名称匹配,并返回 15 个最接近的匹配项。(3) 重复步骤 2,遍历所有名称为文件 2。 (4) 每一次匹配,都有一个相似度。我想我会使用 SequenceMatcher() 对象。我刚刚学习如何从我的 csv 文件中导入数据(我有 2 个文件),见下文
抱歉我的愚蠢问题,但我太新了,无法用我自己的数据替换字符串(“abcde”、“abcde”,如下所示)数据。我不知道如何将导入的数据更改为小写。而且我什至不知道如何设置 15 个最接近的匹配标准。我的教授告诉我这是一项容易的任务,但我真的感到很失败。感谢您的阅读!希望有人能给我一些指示。我没那么傻:)