问题标签 [stringdist]
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.
r - 通过排除 R 中的相同条目来计算文本字符串中的相似性百分比
给定的 R 脚本计算两个名称之间的相似度百分比,如图所示。这里我们有两列“names1”和“names2”,它们各自的 id 在 id1 和 id2 中。我的要求是,当我们执行脚本时,“names1”中的每个名称都与“names2”列中的每个名称进行比较,我不希望将相同的条目,即 (id1,names1) 列与 ( id2,names2) 列。对于插图,第一个 (id1,names1) 条目 (1,Prabhudev Ramanujam) 应该与所有 (id2,names2) 进行比较,而不是与第一个 (id2,names2) 条目进行比较。同样适用于所有对。另外,如果公式
可以调整以在此处产生类似且更快的结果,因为它会减慢大数据的速度,请附加快照,请帮助。
r - R中文本挖掘在大型数据集上的应用
下面的 R 脚本计算列“names1”和“names2”中两个文本字符串之间的百分比相似度。但是,我的要求是对 6k-10K+ 列项执行相同的操作。当下面的公式应用于如此大的列时,由于行项目数以百万计,因此该解决方案被折腾,并且对于企业交付而言并不重要。除了“百分比”列之外,我还需要添加 6-7 个其他列,这将使解决方案大小超过 1 GB。请帮助我更新脚本,否则可能的解决方案可以实现相同的目标。非常感谢。
r - 通过忽略for循环计算余弦相似度的有效方法
我正在尝试使用 R 中 stringdist 包中的 stringdist 函数计算余弦相似度。我想通过计算与baseline_dt 的每一行的余弦相似度并取所有值的平均值来获得 score_dt 中每一行的平均余弦相似度。我使用下面的代码成功地获得了结果。但是,我正在寻找效率更高的代码,因为对于大型数据集,下面的嵌套 for 循环非常慢。
请在下面找到 R 代码。
我希望将我的代码转换为更高效的代码。我已经尝试过 foreach 并行循环,但似乎没有任何东西可以加快我的代码速度。
**注意 - 我有混合数据字符以及二进制(0 和 1),这就是我使用 stringdist 函数的原因。我不能使用 lsa 包中的余弦函数。
r - 使用 dplyr::mutate 循环遍历 stringdist 中的所有可用方法
我正在做一些模糊文本匹配来匹配学校名称。这是我的数据示例,它是一个小标题中的两列:
我想做的是使用stringdist
遍历所有可用methods
并返回一个看起来像这样的表,除了每个方法的列和返回的值之外,我的原始文本仍然存在:
我可以使用以下方法使用 for 循环使其工作:
我想做的是将其转换为更具可读性的 dplyr 语法,但我无法让循环与 mutate 一起使用。这是我所拥有的:
运行此命令会返回 1 个附加列添加到我的原始数据中,称为“i”,每行的值为 1。
问题 1:for 循环是完成我想要达到的目标的最佳方式吗?我查看了 purrr 以查看是否可以使用 map 或 invoke 之类的东西,但我认为这些函数中的任何一个都不能满足我的要求。
问题 2:如果要使用 for 循环,我怎样才能使其与 mutate 一起使用?我尝试使用 mutate_at,但这也不起作用。
r - 在 R 中查找匹配的字符串组
我有一个大约 8000 个字符串的向量。向量中的每个元素都是一个公司名称。
我的目标
我的目标是将这些公司名称聚类成组,以便每个集群包含一组彼此相似的公司名称(例如:ROYAL DUTCH SHELL、SHELL USA、BMCC SHELL 等......将属于同一个组/cluster,因为它们都是基于壳牌的公司,即它们的名称中包含“壳牌”一词)。
在处理这种大小的向量时,使用我采用的聚类技术查找相似公司名称的组似乎需要很长时间。然而,在较小的向量上,这种方法效果很好。
让我使用一个公司名称的示例向量来演示我的方法,该向量比原来的要小得多。
对于一个小的字符串向量,这种方法非常有效。
矢量看起来像这样
我的尝试
为了解决这个问题,我使用了层次聚类方法。
但是先做一些准备工作
现在计算单词之间的距离,用于聚类
完成距离计算后,我选择一种方法并设置适当的截止值
结果数据框将所有公司名称分类为集群,就像我想要的那样。
但是,就像我提到的,当我使用包含 8000 个公司名称的原始向量时,距离计算时间太长,我无法继续。
我的问题
当我使用更大的字符串向量时,这种方法是否有解决方法?
也许对于更大的向量,聚类不是解决这个问题的正确方法?在这种情况下,我还能做些什么来达到我的结果?
任何帮助将不胜感激。
r - 如何使用 sparklyr 计算字符串之间的距离?
我需要使用 sparklyr 计算 R 中两个字符串之间的距离。有没有使用 stringdist 或任何其他包的方法?我想使用表亲距离。此距离用作 stringdist 函数的方法。
提前致谢。
r - 在 data.table 或快速子集中快速搜索
我有一个 800k+ 行重复(随机)值的 DF。对于每一行,我需要取一个值并找到具有相同值的新行的索引。例如“asd”——我还能在哪里看到它?不需要当前行的索引。
我当前的解决方案:子集一个 DF 并通过删除当前行创建一个临时框架/表。问题 - 每 1000 次迭代需要一分钟。所以 800+k 行需要我 13 个小时才能运行。有任何想法吗?谢谢!
在原始 DF(未子集)上运行 < 1 秒,但您可以想象它为我提供了当前行的索引。
编辑:我现实生活中的 DF 超过 1 列。下面的例子被简化了。我需要获取其他值为 的V1[1]
行号,然后对每一行重复 for等V1
V1[1]
V1[2]
stringdist - 字符串距离和可变替代成本
我想根据语音特征量化单词对之间的距离。插入和删除成本将保持不变,但替换成本将根据存储在矩阵中的字母对而变化。我正在考虑使用 stringdist 包来执行此操作,但我不知道如何合并可变替换成本。
谢谢!
r - 我正在尝试使用“stringdist”在两个数据框之间模糊匹配公司名称,但效果不是很好,该怎么办?
我有一个包含 500 万个不同公司名称的数据框,其中许多是指以不同方式拼写或拼写错误的同一家公司。我在这里以公司名称“Amminex”为例,然后尝试将其字符串化为 500 万个公司名称:
这是我打开的公司名称的大列表:
我将 AMMINEX 和 500 万家公司放在一个矩阵中:
更改列名:
我将 stringdist 与 cosine 方法一起使用:
我删除了所有大于 0.2 的距离以消除不良匹配:
我按距离列排序,因此最佳匹配出现在顶部:
第一行很好,但随后出现了一堆糟糕的匹配,最后在底部我得到了很好的匹配“AMMINEX AS”。
这对我来说真的行不通。有什么方法可以改善这种模糊匹配,或者使用不同的方法来获得更好的结果?也许一种方法可以查看字母在字符串中出现的顺序?
r - 数据框中的字符串模糊匹配
我有一个包含文章标题和相关 url 链接的数据框。
我的问题是相应标题的行中不需要url链接,例如:
我的猜测是我需要考虑如此模糊的匹配逻辑,但我不确定如何。对于重复项,我将只使用unique
函数。
我开始使用包中的levenshteinSim
函数RecordLinkage
,它为每一行给出一个相似度得分,但显然由于行不匹配,所以到处的相似度得分都很低。
我也从包中听说过这个stringdistmatrix
功能,stringdist
但不知道如何在这里使用它。