首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL、Python或R中的相似性分析

SQL、Python或R中的相似性分析
EN

Stack Overflow用户
提问于 2018-03-14 19:25:17
回答 1查看 267关注 0票数 0

我有一个非常有趣的问题,在过去的几天里,我一直在努力解决,但没有运气。我有120k个项目的描述,我必须与38k个项目进行比较,并确定它们之间的相似程度。最终,我想看看在基于相似性的120k内是否存在38k中的任何一个。我在excel中找到了很好的相似性脚本,我把我的数据组织成乘法表,这样我就可以比较从120k到38k的每个描述。请看下面的图片。所以函数是有效的,但是计算量是不可能在excel中运行的。如果我把它一分为二( 120k X 16k),我们谈论的是超过20亿的计算。该功能是比较从A2到B1的描述,然后比较A2到C1的描述,依此类推,直到16k。然后它从A3中进行描述,并做同样的事情,这样做了120k次。

如果把它放在功能强大的服务器上,有没有人知道SQL、R或Python中的脚本可以做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-03-14 20:59:54

您正在寻找aproximate string matching。微软为Excel开发了一个免费的add-on,用于创建所谓的模糊匹配。它使用Jaccard index算法来确定两个给定值的相似度。

  • 确保两个描述列表都列在可排序的表列(Ctrl+L)中;
  • 通过剪切“left columns”和“right columns”部分中的列并按中间的connect按钮来链接它们;
  • 选择要作为输出的列(如果要选择左侧或右侧的多个列,请按住Ctrl键);
  • 确保选中FuzzyLookup.Similarity,这将给出值之间的相似性分数,每个可比字符串显示的最大匹配数;
  • 决定你的阈值。该数字表示在将两个字符串标记为匹配之前两个字符串之间的最小相似度百分比;
  • 转到新工作表的单元格A1,这是因为新生成的相似度表格将覆盖当前数据;
  • 命中'Go'button!
  • Select所有的相似度分数,并为它们提供更多小数位数以获得正确的结果。

See example.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49276547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档