为字符串创建距离矩阵

2023-12-15

我想加快以下代码的速度。有人能好心地提出一些建议吗?

library(dplyr)
library(fuzzywuzzyR)

set.seed(42)
rm(list = ls())
options(scipen = 999)

init = FuzzMatcher$new()

data <- data.frame(string = c("hello world", "hello vorld", "hello world 1", "hello world", "hello world hello world"))
data$string <- as.character(data$string)

distance_function <- function(string_1, string_2) {
    init$Token_set_ratio(string1 = string_1, string2 = string_2)
}

combinations <- combn(nrow(data), 2)
distances <- matrix(, nrow = 1, ncol = ncol(combinations))

distance_matrix <- matrix(NA, nrow = nrow(data), ncol = nrow(data), dimnames = list(data$string, data$string))

for (i in 1:ncol(combinations)) {

    distance <- distance_function(data[combinations[1, i], 1], data[combinations[2, i], 1])

    #print(data[combinations[1, i], 1])
    #print(data[combinations[2, i], 1])
    #print(distance)

    distance_matrix[combinations[1, i], combinations[2, i]] <- distance
    distance_matrix[combinations[2, i], combinations[1, i]] <- distance

}

distance_matrix

顺便说一句,我尝试使用 proxy::dist 和各种其他方法但没有成功。我也不认为字符串距离函数按预期工作,但那是另一个故事了。

最终,我想使用距离矩阵来执行一些聚类,以对相似的刺进行分组(与词序无关)。


如果你想要一个矩阵,你可以使用stringdist包裹。据我所知,您使用的软件包计算了编辑距离,因此我将其包括在内method = "lv"(你也可以尝试其他方法)。如果您有问题,或者是否首选矩阵以外的格式,请告诉我。此外,您还可以考虑使用 Levenshtein Distance 以外的方法(即,四个字母的单词中 2 的变化与 20 个单词的句子中 2 的变化看起来相同)。祝你好运!!!

library(dplyr)
library(stringdist)

set.seed(42)
rm(list = ls())
options(scipen = 999)

data <- data.frame(string = c("hello world", "hello vorld", "hello world 1", "hello world", "hello world hello world"))
data$string <- as.character(data$string)

dist_mat <- stringdist::stringdistmatrix(data$string, data$string, method = "lv")

rownames(dist_mat) <- data$string
colnames(dist_mat) <- data$string

dist_mat
                        hello world hello vorld hello world 1 hello world hello world hello world
hello world                       0           1             2           0                      12
hello vorld                       1           0             3           1                      13
hello world 1                     2           3             0           2                      11
hello world                       0           1             2           0                      12
hello world hello world          12          13            11          12                       0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为字符串创建距离矩阵 的相关文章

  • 在 R 中创建缓冲区和计数点

    I asked 这个问题 https stackoverflow com questions 42498344 create buffer around spatial point data in r and count how many
  • 使用 dplyr 计算每次访问的两个因素的比率

    我想用dplyr计算受试者每次访问的两个因素的比率向量 模拟数据可以在下面创建 subj c rep A 10 rep B 4 rep C 6 vist c rep c C0 C1 C2 C3 C4 each 2 rep c C0 C1 e
  • 在 R 中粘贴向量的所有组合

    我有一个向量说 vec c A B C 我想粘贴向量中每个项目的单个组合 得到结果 AB AC BC 我知道我可以使用outer来获得向量的所有可能的组合 但我对如何只获得上面的结果感到困惑 在这种情况下 顺序并不重要 因此结果也可能是 B
  • 如何在 R 中调整/控制树形图中的比例(使用“portfolio”库)?

    我正在使用 R 和 portfolio 库来构建树形图 比例默认为 1000 到 1000 例如 我需要它是 0到1000 我知道 map market 有一个 scale 参数 但我不知道要传递给它什么 围绕零的对称颜色映射被硬编码到ma
  • 如何绘制沿染色体图形的位置

    我想生成一个图 描绘我所研究的生物体的 14 条线性染色体 按比例绘制 并在每条染色体的指定位置上用彩色条表示 理想情况下 我想使用 R 因为这是我有经验的唯一编程语言 我探索了多种方法来做到这一点 例如使用 GenomeGraphs 但我
  • 如何在 RSM (R) 中填充轮廓颜色并写入轴名称

    我有以下数据 ct lt structure list Conc c 50L 100L 150L 50L 100L 150L 50L 100L 150L 100L 100L 100L kGy c 10L 10L 10L 15L 15L 15
  • 使用 Eclipse 和 Rserve 从 Java 调用 R 的简单程序

    我的应用程序必须执行 R 操作 例如 m matrix sample 0 1 100 rep T ncol 10 结果应该可供 Java 应用程序使用 The 预留套餐 http www rforge net Rserve 将 R 与其他语
  • 将循环转换为并行计算的函数

    我正在使用 R 编程语言 我遇到这个问题 我试图找出两个 shapefile 之间的成对交集 即第一个 shapefile 中的每个多边形与第二个 shapefile 中的所有多边形相交的百分比 我想我找到了解决这个问题的基本方法 Load
  • 基于服务器中的条件逻辑呈现闪亮的用户输入

    我正在尝试设置一个闪亮的导航栏面板页面 其中用户控制我根据一组单选按钮中所做的初始选择来显示更改 我直接在 ui 中渲染单选按钮 然后在 Server r 中的 观察到的 逻辑控制结构内构建条件控件 弹出错误是因为我的初始 if 语句计算结
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 是否可以通过扫描从控制台读取而不回显字符?

    这是一个示例函数 passwordEntry lt function cat Enter your password pwd lt scan n 1 what character quiet TRUE invisible pwd 并测试该功
  • 如何在for循环中引用变量?

    我正在循环访问不同的 data tables 和 data table 中的变量 但我在引用内部变量时遇到问题for loop dt1 lt data table a1 c 1 2 3 a2 c 4 5 2 dt2 lt data tabl
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this
  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这

随机推荐

  • 当 WPF 中的文本更改时对文本框强制验证

    我在用着Validation在TextBox上如下
  • tomcat server.xml 文件中的 keyAlias="aaaa" 是什么

    我购买了 SSL 证书并将其安装到 tomcat 中 我创建tomcat keystore我包含在其中的文件server xml文件也放了密码但无法理解keyAlias aaa 如果我输入 keyAlias localhost 那么我会得到
  • 使用正则表达式检查字符串是否包含单个反斜杠

    我已经尝试解决这个问题很长时间了 但就是做不到 它可以是任何字符串 但这是一个示例 This string contains some backslashes 我需要制作一个正则表达式 我可以用它来检查字符串是否包含单个反斜杠 然后我需要将
  • C#如何进行碰撞检测?

    C 中是否有允许碰撞检测的预定义方法 我是 C 新手 正在尝试对两个椭圆进行碰撞检测 是否有任何预定义的方法可以实现碰撞检测 我已经有了绘制椭圆的代码 启动碰撞检测的好方法是什么 private void timer1 Tick objec
  • 如何确定 Excel 区域是否隐藏?

    在我的代码中 我包含一个布尔变量 我想在其中分配范围隐藏属性的值 即 如果范围是隐藏的 则变量的值应为 true 反之亦然 运行代码时 我收到 1004 运行时错误 无法获取 Range 类的隐藏属性 由此 我假设这种情况下的隐藏属性是只写
  • 如何将 functools.singledispatch 与实例方法一起使用?

    Python 3 4added使用静态方法定义函数重载的能力 这本质上是文档中的示例 from functools import singledispatch class TestClass object singledispatch de
  • MVC 验证消息国际化

    例如 我想要这个默认的 ASP NET MVC 4 验证消息 The value qsdqsdqs is not valid for Montant以法语显示 我找到了这个包http nuget org packages Microsoft
  • 从对象数组键/值映射数组

    我需要获取一个数组对象并将其映射 以便新数组只是一个简单的数组 如果每个对象都有 id 例如 id 49 name Rest update test id 12 name Rest test 会成为 49 12 到目前为止我已经尝试过了 m
  • 实例化新的内部类时是否需要关键字“this”?

    Oracle Java SE 教程中的另一个示例 它工作正常 但我不确定创建内部类的实例时是否 为什么需要 this 不管我是否取出来 结果似乎都是一样的 为了清楚起见 我指的是 InnerEvenIterator 迭代器 this new
  • 如何将块 div 的角倒角?

    我有以下 HTML 文档
  • 如何解决curl:(35)错误

    如果我在 CentOS 5 机器上运行以下命令 curl LsS https symfony com installer o usr local bin symfony 我收到此错误 curl 35 error 14077410 SSL r
  • 调试闭包编译器编译的 Javascript

    我有一个复杂的 dojo 应用程序 可以在未编译的情况下正常工作 但在使用 Google 编译后闭包编译器 我在某些行为上发现了细微的差异 事实上 调试起来非常困难 而且我无法找到任何有关使用 Google Closure 编译和未编译的
  • 页面请求中的 UTF-8 字节序列无效

    我在页面请求 永久链接 上收到 UTF 8 中的无效字节序列 我不知道为什么也无法重现它 但我确实遇到了很多这样的异常 A ArgumentError occurred in products index invalid byte sequ
  • URL解码混乱

    我有一个引用以下网址的数据库 http en wikipedia org wiki Herbert Gr F6nemeyer 然而 这似乎是一个错误的 URLEncoding 导致 HttpUtility UrlDecode 给我垃圾 和
  • 如何将 django Rest Framework json 查询结果连接到 dgrid/OnDemandGrid

    我的 JSON 存储 django Rest 框架 返回 count next previous 和 results 的键 count 是可用的行数 下一页 是下一页结果的 URL 例如 ids 26 50 previous 是上一页结果的
  • 获取在后台运行的 Java 运行时进程

    我正在编写一个java应用程序 我需要在正在运行的应用程序的整个生命周期中在后台运行一个进程 这是我所拥有的 Runtime getRuntime exec this works ok Process p Runtime getRuntim
  • 是否有一个真正有效的示例来显示 x86_64 上存储加载重新排序的副作用?

    众所周知 在 x86 64 上可以进行 Store Load 重新排序 如果 Store 和 Load 之间没有MFENCE 英特尔 64 和 IA 32 架构 8 2 3 4 可以将早期存储的负载重新排序到不同位置 还已知 在这样的示例中
  • 如何在导航周围创建径向渐变?

    看到围绕导航中心流动的径向渐变了吗 假设我做了一个div那就是导航 我将如何创建如图所示的渐变 注 看背景behind菜单 如果你谈论导航后面的浅棕色光芒 你可以使用 CSS3 来做到这一点 http jsfiddle net Jg8ZC
  • SignalR 自托管 Windows 服务,监听消息

    我正在尝试构建一个自托管 SignalR 的 Windows 服务 我已阅读过诸如此类的教程SignalR 在 ASP Net 上自托管 我注意到 至少看起来 它们是基于广播消息的 并且似乎找不到任何与聆听相关的内容 我需要收听服务内部的消
  • 为字符串创建距离矩阵

    我想加快以下代码的速度 有人能好心地提出一些建议吗 library dplyr library fuzzywuzzyR set seed 42 rm list ls options scipen 999 init FuzzMatcher n