是否可以使用 Google BERT 来计算两个文本文档之间的相似度?

2024-05-06

是否可以使用 Google BERT 来计算两个文本文档之间的相似度?据我了解,BERT 的输入应该是有限大小的句子。一些作品使用 BERT 来计算句子的相似度,例如:

https://github.com/AndriyMulyar/semantic-text-similarity https://github.com/AndriyMulyar/semantic-text-similarity

https://github.com/beekbin/bert-cosine-sim https://github.com/beekbin/bert-cosine-sim

是否有 BERT 的实现来将其用于大型文档而不是句子作为输入(包含数千个单词的文档)?


BERT 并未经过训练来确定一个句子是否紧随另一个句子。这只是其中之一胶水任务 https://openreview.net/pdf?id=rJ4km2R5t7还有更多。所有的 GLUE 任务(和强力胶)都被 ALBERT 淘汰了。

BERT(以及 Albert)绝对是自然语言理解领域的最先进技术。 Doc2Vec 还差得很远。 BERT 不是词袋方法。它是一个基于 Transformer 的双向注意力编码器,它是 Google Brain 论文的化身注意力就是你所需要的 https://arxiv.org/abs/1706.03762。另请参阅此视觉分解 http://jalammar.github.io/illustrated-transformer/的 Transformer 模型。

这是一种看待自然语言的全新方式,它不使用 RNN、LSTM、tf-idf 或任何类似的东西。我们不再将单词或文档转换为向量。GloVes:单词表示的全局向量 https://nlp.stanford.edu/projects/glove/LSTM 已经很老了。 Doc2Vec 已经很旧了。

BERT 非常强大——就像轻松通过图灵测试一样强大。看一眼

See 强力胶 https://w4ngatang.github.io/static/papers/superglue.pdf刚刚出来的。滚动到底部看看这些任务有多么疯狂。这就是 NLP 的用武之地。

好的,现在我们已经放弃了 tf-idf 是最先进的想法 - 您想获取文档并查看它们的相似性吗?我会在 Databricks 上分两层使用 ALBERT:

  1. 执行提取或抽象摘要:https://pypi.org/project/bert-extractive-summarizer/ https://pypi.org/project/bert-extractive-summarizer/(注意这些文本文档有多大——并将文档缩减为摘要。

  2. 在单独的步骤中,获取每个摘要并执行第 3 页中的 STS-B 任务GLUE https://openreview.net/pdf?id=rJ4km2R5t7

现在,我们在这里谈论绝对前沿的技术(阿尔伯特在过去几个月才出现)。你需要非常熟练才能完成这个任务,但这是可以完成的,我相信你!

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

是否可以使用 Google BERT 来计算两个文本文档之间的相似度? 的相关文章

  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重

随机推荐

  • Cookie 不会重置

    好吧 我被难住了 我已经盯着这个看了好几个小时了 我使用以下代码在 access login php 设置 cookie setcookie username username time 604800 当我尝试注销 位于 access lo
  • 使用firebase实时数据库创建搜索功能

    我想使用 firebase 实时数据库为我的应用程序创建一个搜索功能 类似于 facebook 搜索 我做了一些研究并承认 Firebase 实时无法使用 文本包含 进行搜索 但我相信必须有一些方法来实现它 例如组合 startAt 或 e
  • 在函数内部使用时,c 数组大小会发生变化

    我有这段代码 include
  • 捕获 CommandOnCooldown 错误

    我正在制作一个有冷却时间的不和谐机器人 并且我正在尝试制作一个事件 当CommandOnCooldown发生错误时 机器人会通过私信告诉他们需要等待多长时间 这是我的代码 看起来一切正常 但它不知道 retry after 意味着什么 bo
  • 在 matplotlib 中添加新的导航模式

    我正在编写一个 wx matplotlib 应用程序 并且在向 matplotlib 导航工具栏添加新工具时遇到相当大的困难 基本上我想添加选择工具 选取框 套索等 以切换受控子图的鼠标模式 到目前为止 我还没有找到任何功能可以让我轻松地做
  • 在 python 中将数组作为参数传递

    我是Python新手 现在我需要声明大小为 20 的数组并将该数组传递给函数 需要数组的函数如下 function args The args是一个输入function 谁能帮我 如何在 python 中传递数组 当你说 数组 时 我假设你
  • 如何在不更改设置的情况下不区分大小写排序

    我的索引名称是 data new 下面是插入索引的代码 test id 1 name A professor Bill Cage accounting id 2 name AB professor Gregg Payne engineeri
  • 使用 GitHub 时防止将大文本文件添加到提交

    我们想要防止 非常大的文本文件 每个文件 gt 50MB 被提交到git代替git lfs 因为它们夸大了 git 历史 问题是 其中 99 大小差异的原因 这些是 YAML 文件 它们支持通过 Base64 编码进行二进制序列化 我们无法
  • 在基于 AngularJS 的 Web 应用程序中使用 Selenium

    我逐渐知道 Selenium 是 UI 测试之父 现在我的问题是为什么 Angular 团队开发了 Protractor 对于基于 AngularJS 的 Web 应用程序 Selenium 不能完成同样的工作 Protractor 所做的
  • iOS 中的自动旋转崩溃

    当我更改设备方向时 我正在使用的应用程序出现异常终止 崩溃 我无法经常重现它 当我旋转时 它并不总是发生 假设机会约为 0 01 但这是一个严重的问题 我附上崩溃报告的重要部分 Exception Type EXC BAD ACCESS S
  • while 循环无法访问代码

    当我编译这段代码时 public static void main String args int x 0 while false System out println hello 它显示编译时错误无法访问代码 但是当我将这段代码修改为 p
  • 枚举字段的自定义排序顺序

    是否可以将 JPA 中的字母排序更改为自定义排序 我在列中有这些数据division BRONZE SILVER GOLD DIAMOND 我已将其映射到实体字段 public enum Division BRONZE SILVER GOL
  • Kubernetes 集群自动缩放器似乎不适用于 GKE?

    我定义了一个节点池 最小实例设置为 1 最大实例设置为 5 并启用了自动缩放 但它似乎并没有缩小规模 我已经封锁了一个节点 已经过去12个多小时了 没有待处理的 Pod 删除节点不会减少我自己的部署的副本数量 相关节点上运行以下 pod f
  • Three.js 对象的“中心”是什么?

    当我使用 Blender 对对象进行建模时 我能够明确定义其发生平移和旋转的中心位置 当使用 Three js 对象时 我似乎没有找到等效的对象 Three js 对象是否具有定义其 中心 位置的属性 如果不是 物体的中心是如何确定的 在
  • NestJs:如何使 Body 输入形状与实体的 DTO 不同?

    我的照片和标签对象有 DTO 如下所示 export class PhotoDto readonly title string readonly file string readonly tags TagDto export class T
  • Qt 信号槽,新符号中的转换类型[重复]

    这个问题在这里已经有答案了 鉴于以下两个 connect ui gt comboBox SIGNAL activated QString ps SLOT requestPlotsAvailable QString connect ui gt
  • 如何在 QTableWidget 的行和列中自动换行文本?

    I tried QTableWidget j new QTableWidget 10000 5 centralWidget j gt setColumnWidth 0 500 j gt setColumnWidth 1 30 j gt se
  • Laravel 模型、构建器和集合之间的区别

    我在 Laravel 文档上发现了这个代码片段 Retrieve a model by its primary key flight App Flight find 1 Retrieve the first model matching t
  • gradle 构建工具版本从 1.2.3 升级到 1.3.1 的问题

    我已将 gradle 构建工具从 1 2 3 升级到 1 3 1 并开始在 gradle 同步上看到以下错误 我使用 1 2 3 版本没有任何问题 我使用的是 gradleVersion 2 3 无论如何我可以避免这个错误吗 错误 您的项目
  • 是否可以使用 Google BERT 来计算两个文本文档之间的相似度?

    是否可以使用 Google BERT 来计算两个文本文档之间的相似度 据我了解 BERT 的输入应该是有限大小的句子 一些作品使用 BERT 来计算句子的相似度 例如 https github com AndriyMulyar semant