选择相似的句子

2023-12-09

如果我有一组句子并且我想提取重复项,我应该像下面的示例一样工作:

sentences<-c("So there I was at the mercy of three monstrous trolls",
         "Today is my One Hundred and Eleventh birthday",
         "I'm sorry I brought this upon you, my",
         "So there I was at the mercy of three monstrous trolls",
         "Today is my One Hundred and Eleventh birthday",
         "I'm sorry I brought this upon you, my")

sentences[duplicated(sentences)]

返回:

[1] "So there I was at the mercy of three monstrous trolls"
[2] "Today is my One Hundred and Eleventh birthday"        
[3] "I'm sorry I brought this upon you, my"

但就我而言,我有一些彼此相似的句子(例如,由于拼写错误),我想选择彼此更相似的句子。例如:

sentences<-c("So there I was at the mercy of three monstrous trolls",
             "Today is my One Hundred and Eleventh birthday",
             "I'm sorry I brrrought this upon, my",
             "So there I was at mercy of three monstrous troll",
             "Today is One Hundred Eleventh birthday",
             "I'm sorry I brought this upon you, my")

根据这个例子,我想在以下每一对中选择一个:

I'm sorry I brought this upon you, my
I'm sorry I brrrought this upon, my

Today is One Hundred Eleventh birthday
Today is my One Hundred and Eleventh birthday

So there I was at the mercy of three monstrous trolls
So there I was at mercy of three monstrous troll

The levenshteinSim函数在RecordLinkage包可以帮助我:

library(RecordLinkage)


levenshteinSim(sentences[1],sentences[2])
levenshteinSim(sentences[1],sentences[3])
levenshteinSim(sentences[1],sentences[4])
levenshteinSim(sentences[1],sentences[5])
levenshteinSim(sentences[1],sentences[6])

levenshteinSim(sentences[2],sentences[3])
levenshteinSim(sentences[2],sentences[4])
levenshteinSim(sentences[2],sentences[5])
levenshteinSim(sentences[2],sentences[6])

依此类推,对于最相似的句子返回接近 1 的值。我可以写一个双for loop并选择例如编辑距离大于 0.7 的句子对(例如)。但是,难道没有更简单的方法吗?


您可以使用以下方法计算近似字符串距离矩阵adist,它基于广义的 Levenshtein 距离,然后使用hclust.

ld  <- adist(tolower(sentences))
hc <- hclust(as.dist(ld))
data.frame(x=sentences, cl=cutree(hc, h=10))
#                                                       x cl
# 1 So there I was at the mercy of three monstrous trolls  1
# 2         Today is my One Hundred and Eleventh birthday  2
# 3                   I'm sorry I brrrought this upon, my  3
# 4      So there I was at mercy of three monstrous troll  1
# 5                Today is One Hundred Eleventh birthday  2
# 6                 I'm sorry I brought this upon you, my  3

为找到合适的值h=八进cutree我们可以绘制树状图。

plot(hc)
abline(h=10, col=2, lty=2)

enter image description here

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

选择相似的句子 的相关文章

  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 重复测量引导统计数据,按多个因素分组

    我有一个看起来像这样的数据框 但显然还有更多行等 df lt data frame id c 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 cond c A A B B A A B B A A B B A A B B co
  • 我无法下载 R 中的 reshape2 包 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试安装 R 包时收到此响应 gt installed packages reshape2 Package LibPath V
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • ggplot2:如何标记事件发生的日期

    我想从第二个情节中获取第一个情节的信息 第二张图表示事件发生的天数 它看起来更宽 因为它没有图例 但它是相同的时间尺度 我选择在第一个图中手动分配颜色 I would like to overlay the second plot dots
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • 如何从 R 读取 PDF 元数据

    我们很好奇 有没有一种方法可以从 R 读取 PDF 元数据 例如下面显示的信息 通过搜索我对此无能为力 r pdf metadata在当前的问题库中 非常欢迎任何指点 我想不出纯 R 的方法来执行此操作 但您可能可以安装您最喜欢的 PDF
  • read_html(url) 和 read_html(content(GET(url), "text")) 之间的区别

    我正在看这个很棒的答案 https stackoverflow com a 58211397 3502164 https stackoverflow com a 58211397 3502164 解决方案的开头包括 library httr
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 使用 template.docx 从 Shiny App 编织 Word 文档

    我正在尝试使用 template docx 文件从闪亮的应用程序编写一个 Word 文档 我收到以下错误消息 pandoc exe template docx openBinaryFile 不存在 没有这样的文件或目录 以下 3 个文件当前
  • 如何使用 tidymodels 和工作流集在同一数据集上拟合多个不同的线性模型

    我想评估同一数据集上多个 主要是 线性回归模型的性能 我想也许使用tidymodels包连同workflowsets workflow set 可能会起作用 我按照这个例子here https workflowsets tidymodels
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对

随机推荐

  • PHPExcel 从 url 导入文件

    我想使用 phpexcel 从网站导入 tsv 文件 使用区域设置文件可以正常工作 但是如果我更改 http 上的文件位置 则无法工作 inputFileType CSV data http www domain com file tsv
  • 无法使用 Accounts.onCreateUser 添加用户属性

    我尝试为所有新创建的用户添加属性 权限 但不知何故它不起作用 我使用这段代码来添加属性 Accounts onCreateUser function options user user permission default if optio
  • 在 VB.NET 中通过 LINQ 对通用列表进行分组

    我需要获取一个集合并通过 Linq 将其分组 但是我见过的所有示例都以某种方式失败 并且存在一些我无法完全理解的语法差异 我的收藏 Dim a As New List Of ProcessAlert a Add New ProcessAle
  • clojure:未调用 for 循环内容

    我正在尝试使用 Clojure 的 BaseX 的内部数据类型构建 XML 结构 defn basex elem token name dict let elem org basex query item FElem org basex q
  • 使用自定义渐变的自定义激活不起作用

    我正在尝试编写一个简单的神经网络训练代码 目标是定义一个自定义激活函数 我让 Keras 使用自定义梯度函数进行自定义激活 而不是让 Keras 自动对其求导以进行反向传播 import numpy as np import tensorf
  • TSQL 在事务中尝试/捕获,反之亦然?

    我正在编写一个脚本 该脚本将从多个表中删除记录 但在删除之前 它必须返回一个计数 以便用户在提交之前确认 这是脚本的摘要 BEGIN TRANSACTION SCHEDULEDELETE BEGIN TRY DELETE delete co
  • Laravel 找不到“Illuminate\Foundation\Application”类

    我通过 Composer 安装了 Guzzle 并且收到了这个错误 gt php artisan package discover PHP Fatal error Uncaught Error Class Illuminate Founda
  • 可执行 Jar 在类路径上找不到 typesafe/config application.conf

    我有一个命令行应用程序 可以下载一些报告 处理它们 然后将数据上传到 Google Drive 我在用着类型安全配置我需要的所有魔法弦 Typesafe Config 在类路径中查找我的 application conf 文件 并使用 HO
  • 将 Mat 转换为 PIX 到 setImage

    我正在尝试从裁剪图像中识别文本 但我需要将其传递给Mat to PIX因为X平台编码 I tried this this and this 并执行相同的功能传递Mat and PIX使用相同的图像 结果非常不同 PIX它工作完美 与Mat它
  • Python:使用不同的变量“深度”动态更新字典

    我有一本包含各种变量类型的字典 从简单的字符串到其他几层深度的嵌套字典 我需要创建一个指向特定键 值对的指针 以便它可以在更新字典的函数中使用 并且可以像这样调用 dict update my dictionary value level1
  • 通过在应用程序启动时启动工作线程来初始化延迟作业 gem

    我正在使用 Ruby on Rails 3 0 9 并且我正在尝试设置延迟作业宝石 如果重新启动 Apache2 服务器后 我在 Terminal Console 中运行以下命令 则一切正常 RAILS ENV development sc
  • 单个内存地址可以存储多少条机器指令?

    我是 GDB 新手 目前正在尝试检查内存 我想标题说明了一切 基本上我编译了一些c代码并将断点设置为main 当我打字时x x eip它给了我一些机器指令0xd02404c7 第二次尝试时x 5x eip它回馈 0x8048426
  • 如何在java中的txt文件中间添加新行

    我必须用java修改一个文本文件 例如这是修改前的文件 line line line line line line 之后它应该看起来像 line line this is another line line line line 因此 不要重
  • 获取错误的字符串长度

    我试图获取字符串的长度 但得到了错误的值 据说它只有 4 个字符长 为什么是这样 我在使用吗sizeof 正确吗 include
  • Swift 有文档生成支持吗?

    多种语言支持文档注释允许生成器 例如javadoc or doxygen 通过解析相同的代码来生成代码文档 Swift 有类似的类型文档注释功能吗 Documentation comments are supported natively
  • Jquery 对话框内容 div 样式

    我有这样的情况 var div document createElement div div id content div dialog open div 的内容在对话框中打开 但我无法设置它的样式 我尝试通过 id 或 className
  • 用可变速率拟合上限泊松过程

    我正在尝试使用最大后验估计来估计泊松过程的速率 其中速率随时间变化 这是一个速率线性变化的简化示例 ax b import numpy as np import pymc Observation a actual 1 3 b actual
  • 学说 2 自定义类型

    我正在尝试实现 Doctrine 自定义数据类型 以将货币小数保存为 SQL 整数 我无法更改数据库设计 所以我必须这样做
  • 调试 NPM 模块

    目前 我已经创建了一个 NPM 模块并将其发布到 NPM 并将其包含在单独的项目中以供使用 我已经执行了 NPM 链接 因此不必每次进行更改时都进行发布 并且这些更新会得到适当的反映 但是 我似乎无法调试模块本身 我尝试将调试器放置在 no
  • 选择相似的句子

    如果我有一组句子并且我想提取重复项 我应该像下面的示例一样工作 sentences lt c So there I was at the mercy of three monstrous trolls Today is my One Hun