问题标签 [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.

0 投票
1 回答
254 浏览

set - 模糊逻辑 - 计算给定术语集的隶属函数

我是一名学习模糊逻辑考试的学生,我一直在努力解决有关模糊集的问题。但是,我刚刚遇到一个考试题,我不明白如何从讲师的笔记中做,并且想知道是否有人可以帮助我开始:

这是我坚持的问题的一部分:

要求年龄在 6 到 72 岁之间的男女受试者使用“非常非常短、非常短、短、高、非常高、非常非常高”这个术语来对男性和女性的身高进行分类。

Q) 使用上表,计算集合 SHORT 的隶属函数,用于感知男性和女性身高。

我对此的看法:

我已经完成了以前试卷中的其他模糊设置问题,但没有一个是这样的形式。

通常给我们一个话语宇宙(例如动物王国中的动物)并被要求根据提供的信息找出模糊集(例如:企鹅是 80% 的鸟类),其他问题都没有涉及计算隶属函数.

我认为它可能看起来像讲义中的幻灯片 83,但我不确定:https ://www.cs.tcd.ie/Khurshid.Ahmad/Teaching/Lectures_on_Fuzzy_Logic/CS4001_FuzzySets_Systems_Properties_Lect_2.pdf

谁能帮我?非常感谢。

0 投票
1 回答
615 浏览

ssis - SSIS 热缓存

请参阅以下网页:http: //msdn.microsoft.com/en-us/library/ms137786.aspx。在“索引和参考表的缓存”中它指出:

“配置模糊查找转换时,可以指定转换是否在转换工作之前将索引和引用表部分缓存在内存中。如果将 WarmCaches 属性设置为 True,则将索引和引用表加载到内存中。当输入有很多行时,将WarmCaches属性设置为True可以提高转换的性能。当输入行数较少时,将WarmCaches属性设置为False可以使大索引的复用更快。”

你在哪里设置热缓存?我试过用谷歌搜索这个。我还查看了组件的属性。

“暖缓存”是否意味着组件将使用在之前运行 SSIS 包时创建的模糊组?

0 投票
1 回答
333 浏览

r - 依次在一个变量中 agrep 名称,然后创建一个具有最短名称的新变量以进行紧密匹配

假设公司名称的字符向量以各种形式出现。这是一个10,000行数据框的小版本;它显示了所需的第二个向量(“two.names”)。

假设向量已按公司名称的字母顺序排序(我相信将最短的版本放在首位)。我如何使用agrep()从第一个公司名称开始,将其与第二个公司名称相匹配,然后 - 假设紧密匹配 - 将第一个公司名称添加到新列 (short.name) 中。然后,将其与第三个元素匹配,等等。所有 Carlson 变体都将匹配。

如果没有足够的匹配,比如当 R 遇到第一个 Carmody 时,从它开始并匹配到下一个元素,依此类推,直到下一个不匹配。

如果连续的公司之间没有匹配,R 应该继续直到找到匹配。

这个问题的答案是对整个向量和按年份分组的模糊匹配。 通过名称的模糊匹配(通过使用 R 的 agrep)创建唯一 ID 然而,似乎提供了可以解决我的问题的部分代码。本题使用stringdist(). 字符串列表

编辑:

下面,该对象matches是一个显示匹配项的列表,但我不知道告诉 R 的代码“获取第一个并将以下匹配项(如果有)转换为该名称并将该名称放入新变量列中。 "

0 投票
1 回答
290 浏览

python-3.x - 模糊 - NYSIIS python 3

blur.c:1635:5:错误:函数“PyCode_New”的参数太少我正在从 python 2.7 升级到 3.2。我在模糊库的 c 编译中遇到错误(显然与 Python 3 不兼容)。

有什么建议么?是否有替代 NYSIIS 编码的方法?

谢谢

0 投票
1 回答
333 浏览

euclidean-distance - 相似特征略微偏移时的欧几里得距离

假设我想为向量 a = [0 0 2 0 0 0 0 0 0]找到一个相似的向量

我有两个候选人:

  • b1 = [0 0 0 2 0 0 0 0 0],其中“特征”只有 1 个位置
  • b2 = [0 0 0 0 0 0 0 2 0],其中“特征”距离 5 个位置

(a, b1)的欧几里得距离与(a, b2 )的相同。我想要的是让b1获得更高的“相似性”分数。有没有一种众所周知的方法(请说出它的名字)来处理这些问题?某种模糊的欧几里得距离?

我能想出的一种可能的解决方案是计算 (a, b1) 的欧几里得距离,整个 b1 向左移动 1 个位置,然后向左移动 2 个位置,向左移动 3 个位置等,然后对移动执行相同的操作正确的。每次我这样做时,我都会通过随着移动距离的增加而减小的权重来调整计算出的欧几里得位置。然后对 b2 重复相同的过程。然后比较结果以找到更好的匹配。

0 投票
1 回答
335 浏览

r - R:想要进行字典检查并删除中间不需要的空格,删除空格将使其成为正确的单词

我正在使用 R 进行文本挖掘,并拥有从不同文本列连接的数据。在某些情况下,单词被“functi oning”之类的空格分隔。我想通过字典检查来检测所有这些情况并删除它们之间的空格。我知道 aspell 中的 splitWords 函数,我想要一个与它完全相反的函数。

0 投票
1 回答
318 浏览

r - 查找两个数据帧的匹配并将答案重写为数据帧

我有两个数据框,它们被清理并合并为一个 csv 文件,数据框是这样的

现在从这些中,我必须考虑名字并检查每个主名称的名称并找到相关的匹配并将输出打印为另一个数据框。上面的数据框很少,但我正在使用 20k 值。

我的输出必须看起来像这样

我尝试了这个链接的可能方法,通过 R 中变量的模糊匹配进行合并,但是,到目前为止还没有运气..!

预先感谢!!

当我将上面的代码用于大量数据时,结果是这样-

使用的代码:

输出

代码:

输出:

即使使用 for 循环也不会产生结果。

代码:

代码 2: 仅用于 100 行的 for 循环

结果:

错误

当观察到上面的结果时,考虑到上面的结果,因为它直接检查每个数据帧的行值,但我希望它考虑 Source 的第一个元素并检查 master 的所有元素并得出一个匹配,同样用于休息. 如果有人可以更正我的代码,我将不胜感激!提前致谢..!

0 投票
3 回答
375 浏览

python - 模糊匹配人员列表

我正在尝试查看两页之间的电影是否相同,为此我想将演员作为标准之一进行比较。但是,演员通常在不同页面上以不同的方式列出。例如:

以前,我在以下方面进行了非常粗略的比赛:

但是,从上面的案例可以看出,这不是一个好的技术。什么是更好的技术来查看一部电影中的演员是否与其他演员相匹配?

0 投票
0 回答
770 浏览

r - R中的模糊合并-寻求帮助以改进我的代码

受来自statarfuzzy_join包的实验函数的启发,我自己编写了一个函数,它结合了精确和模糊(按字符串距离)匹配。我要做的合并工作非常大(导致多个字符串距离矩阵少于十亿个单元格),我的印象是该函数的编写效率不是很高(关于内存使用)和并行化以一种奇怪的方式实现(字符串距离矩阵的计算,如果有多个模糊变量,而不是字符串距离本身的计算是并行化的)。至于fuzzy_joinfuzzy_join功能的想法是尽可能匹配精确变量(以保持矩阵更小),然后在这个精确匹配的组内进行模糊匹配。我实际上认为该功能是不言自明的。我在这里发布它是因为我想得到一些反馈来改进它,因为我想我不是唯一一个尝试在 R 中做类似事情的人(尽管我承认 Python、SQL 和类似的东西可能会在这种情况下效率更高。但是必须坚持自己感觉最舒服的事情,并且用相同的语言进行数据清理和准备在可重复性方面很好)

以下几点会很有趣:

  1. 我不太确定如何以data.table我上面使用的样式编码多个完全匹配的变量(我相信这是禁食选项)。
  2. 是否可以进行嵌套并行化?这意味着可以在计算字符串距离矩阵的基础上使用并行 foreach 循环。
  3. 我也对使整个事情更高效的想法感兴趣,即消耗更少的内存。
  4. 也许您可以建议一个更大的“真实世界”数据集,以便我可以创建一个示例。不幸的是,我什至无法与您分享我的数据的小样本。
  5. 将来,除了经典的左内连接之外,做其他事情也会很好。因此,非常感谢有关该主题的想法。

欢迎您的所有意见!

0 投票
1 回答
5389 浏览

python - 使用 Python 对大数据集进行模糊逻辑

我的团队一直坚持在两个大型数据集上运行模糊逻辑算法。第一个(子集)大约有 180K 行,其中包含我们需要在第二个(超集)中匹配的人员的姓名、地址和电子邮件。超集包含 250 万条记录。两者具有相同的结构,并且数据已经被清理,即解析地址,标准化名称等。

  • 联系人 ID 整数,
  • 全名 varchar(150),
  • 地址 varchar(100),
  • 电子邮件 varchar(100)

目标是将一行子集中的值与超集中的相应值匹配,因此输出将结合子集和超集以及每个字段(令牌)的相应相似性百分比。

  • 联系人ID,
  • 查找联系人 ID,
  • 全名,
  • 查找全名,
  • 全名_相似度,
  • 地址,
  • 查找地址,
  • 地址_相似度,
  • 电子邮件,
  • 查找电子邮件,
  • 电子邮件_相似度

为了首先简化和测试代码,我们连接了字符串,并且我们知道代码可以在非常小的超集上工作;但是,一旦我们增加记录的数量,它就会卡住。我们尝试了不同的算法,Levenshtein、FuzzyWuzzy 等,但均无济于事。在我看来,问题在于 Python 是逐行执行的。但是,我不确定。我们甚至尝试使用流在我们的 Hadoop 集群上运行它;然而,它并没有产生任何积极的结果。