问题标签 [sequencematcher]
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.
python - 在 Excel 电子表格中查找“相似”字符串的最佳搜索算法
我试图找出在 excel .xlsx 文档的指定列(不是所有列)中查找特定单元格的相似值的最有效方法。我目前的代码假定所有字符串都是未排序的。但是,我正在使用的文件和我将使用的文件都具有从 AZ 排序的字符串。因此,与其进行线性搜索,我想知道我可以使用什么其他搜索算法以及能够修复我的编码,例如(二进制搜索等)。
到目前为止,我已经创建了一个函数:find()
. 在函数运行之前,程序从用户输入中获取一个值,然后将其设置为工作表名称。我在 excel 文档中打印出所有可用的工作表名称只是为了帮助用户。我创建了一个空数组results[]
来存储好......结果。我创建了一个仅遍历 A 列的 for 循环,因为我只想遍历自定义列。我创建了一个名为start的变量,它是A 列中的第一个坐标,例如(A1 或 A400),这将根据循环所在的迭代而改变。我创建了一个名为next的变量,它将与start进行比较。接下来是技术上只是start + 1,但是由于我无法将 +1 添加到字符串中,因此我连接并键入强制转换所有内容,以便迭代变为A1-100的范围,或者在 A 列中有许多单元格。我的函数getVal()
使用两个参数调用,坐标我们正在使用的单元格和工作表。从返回的值getVal()
也在我的函数内部传递Similar()
,该函数只是一个调用SequenceMatcher()
from difflib
. 相似只返回两个字符串相似程度的百分比。例如。similar(hello, helloo)
返回 int 90 或类似的东西。如果字符串的相似度高于 40%,则调用相似函数后,会将坐标附加到results[]
数组中。
这是一些看起来很讨厌的代码,所以我提前道歉。预期的结果应该只是“相似”的字符串列表。
python - 如何将一个变量中包含的文本与另一个变量匹配
所以,假设我有这行代码
现在,返回的比率是 0.47191011235955055,这是公平的。
我的问题是 - x 完全存在于 y 中。我希望得到一个失败的高匹配。换个角度看,我基本上是在寻找某种剽窃检测。
更新:更具体。在上面的示例中,我预计匹配率为 100%,因为 x 完全存在于 y 中。但是,在每个示例中,这可能不是一个明确的案例。
另一个例子:
这里 x 有一个额外的词,所以一些匹配方法会给我一个不太理想的匹配百分比(比如 90%),因为在 x 中只有一个名为“Herbert”的额外词在 y 中不存在。
python - 如何将一组二进制数组中的每个数组与该集合之外的数组进行比较
我有一组数组。我还有一个单独的数组 (T) 来比较集合中的每个数组。我尝试使用 SequenceMatcher 来执行此操作,但不知道如何循环它,以便将集合中的每个数组与 T 进行比较。
这是针对遗传算法的适应度函数。我是 python 新手,已经尝试了几件事。下面的代码可能是可笑的!
我希望输出是
以及每个数组与 T 的相似性百分比。
但我得到以下信息:
python - SequenceMatcher 无法区分“替换”和“插入”
第一个例子:
正确返回insert
ff:
现在,我想get_opcodes()
找到 a'insert'
旁边的 a 'replace'
... 但它无法。
第二个例子:
返回:
在下一个示例中,我们强制识别差异。我添加了填充......令人惊讶的是它被忽略了......这太神奇了,因为'kk'
在第一个示例中充当填充,阻止'gd'
vs'hh'
被视为'ff'
插入的一部分
第三个例子:
返回:
再一次,当它明显存在时无法识别插入值ff 。
python - 两个字符串匹配多少百分比?
我有 2 列疾病名称,我必须尝试匹配最佳选项。我尝试在 python 中使用“SequenceMatcher”模块和“fuzzywuzzy”模块,结果令人惊讶。我在下面粘贴了结果和我的疑问:
考虑有一种疾病“肝脏肿瘤”,我需要匹配最佳匹配名称“癌症,肝脏”或“癌症,乳房”。现在很明显,由于肝脏是一个匹配词,它应该很容易选择“癌症,肝脏”作为答案,但这并没有发生。我想知道在python中匹配的原因和更好的方法。
我的疑问是癌症,乳房如何比癌症,肝脏更匹配。我可以使用哪些其他技术来正确完成这项工作?
谢谢 :)
python - 使用 SequenceMatcher 在 python 中使用 numba 加速
尝试使用 numba 加速时遇到错误。还有什么加速的方法吗?注意“a”和“b”是熊猫数据框。我也有一个gtx1070ti,还有什么方法可以使用gpu吗?
python-3.x - 在 Python 中删除一列的相似文本行
输出:
我想用来difflib.SequenceMatcher
删除低于80
行的相似度分数,只保留一个。
如何在 Python 中获得如下预期结果?您可以使用difflib
或其他 python 包。谢谢你。
python - 尝试根据三个常见列匹配两个 df,但它们都不相同
我有两个df
df1
df2
我想要的结果是 df2 中与 df1 几乎匹配的所有行
我尝试使用 for 循环的变体,使用SequenceMatcher
并将阈值设置为 0.8 以上的匹配,但没有任何运气。
任何建议或指导将不胜感激。
python - 熊猫数据帧之间的 if 和语句
我有 2 个数据集,使用来自 df1 的数据我想使用 4 个条件识别 df2 中的重复数据。
- 条件:
如果 df1 'Name' 列的一行与 df2 中 'Name' 列的任何行匹配超过 80%
(和)
(df1['Class'] == df2['Class'] (OR) df1['Amt $'] == df2['Amt $'])
(和)
如果 df1 中 'Category' 列的行与 df2 中 'Category' 列的任何行项匹配超过 80%
- 结果:
如果满足所有条件,则仅保留 df2 中的新数据并删除其他行。
df1
df2
- 我试过的代码:
所需的输出数据框应如下所示:
请帮助我找到最佳解决方案!:)
python - 如何为 2 个 excel 数据框创建 SequenceMatcher 循环
Hej 我目前有来自 2 个不同 excel 文件的 2 个数据帧
- a=df_Web_Customer
- b=df_Batchlog
例子
我有一个可以相互比较 2 个输入的函数:SequenceMatcher
我如何一次从 Dataframe a 中取出一个单元格并将其与 Dataframe b 中的每个单元格匹配?
我的最终目标是开发一个 if 语句对最大匹配进行排序,但我无法在堆栈上找到任何类似的案例,所以我希望可以提供任何帮助:)
编码: