如何有效计算文档流中文档之间的相似度

2024-04-22

我收集文本文档(在 Node.js 中),其中一个文档i表示为单词列表。 考虑到新文档以文档流的形式出现,计算这些文档之间相似性的有效方法是什么?

我目前对每个文档中单词的归一化频率使用余弦相似度。我不使用 TF-IDF(词频、逆文档频率),因为我收到的文档越来越多,导致可扩展性问题。

最初

我的第一个版本是从当前可用的文档开始,计算一个大的术语文档矩阵A,然后计算S = A^T x A以便S(i, j)是(在归一化之后norm(doc(i)) and norm(doc(j))) 文档之间的余相似度i and j其词频分别为doc(i) and doc(j).

对于新文件

当我收到新文档时我该怎么办doc(k)?好吧,我必须计算该文档与之前所有文档的相似度,这不需要构建整个矩阵。我可以只取内积doc(k) dot doc(j)对于所有以前的j,结果是S(k, j),这太棒了。

麻烦

  1. 计算S在 Node.js 中确实很长。事实上太长了!所以我决定创建一个 C++ 模块,它可以更快地完成整个事情。确实如此!但我等不及了,我应该能够使用中间结果。我所说的“不要等待”的意思是

    A。等待计算完成,但也
    b.等待矩阵A即将建成(这是一个很大的建筑)。

  2. 计算新S(k, j)可以利用这样一个事实:文档的单词数比所有给定单词的集合要少(我用它来构建整个矩阵)A)。因此,在 Node.js 中执行此操作看起来更快,避免了访问数据时占用大量额外资源。

但有没有更好的方法呢?

Note:我开始计算的原因S是我可以轻松构建A在 Node.js 中我可以访问所有数据,然后在 C++ 中进行矩阵乘法并将其返回到 Node.js 中,这大大加快了整个过程。但现在计算S变得不切实际,看起来毫无用处。

Note 2:是的,我不必计算全部S,我可以只计算右上角的元素(或左下角的元素),但这不是问题。时间计算问题不属于这个顺序。


如果今天必须解决这个问题,只需使用 fasttext 或 word2vec 中预先训练的词向量

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

如何有效计算文档流中文档之间的相似度 的相关文章

  • 定时器内嵌套异步等待 - 不返回所需的值

    我必须使用 Mocha 和 chai 测试来测试端点的响应 下面是相同的代码 async function getData userId let response let interval setInterval async gt resp
  • 使用 WebSocket 是否会产生服务器成本?

    我已经离开了 PHP MySQL 的舒适区 因为语法 封装 过程的东西可能会让人沮丧 上周 我开始尝试并按照一些教程使用 Node js Socket IO 创建实时聊天应用程序 到目前为止 我从未使用过 WebSockets 做过任何事情
  • 如何在特定天数限制后从温斯顿日志中删除文件?

    我正在使用winston将文件记录到按预期工作的服务器中 现在我想设置天数限制 假设3天后我想删除3天前记录的文件 是否可以使用winston轮换来实现 main js winston add winston transports File
  • 无法安装js-bson

    我正在使用Windows 7 64位 尝试安装bson作为mongodb的依赖项 我收到此错误 npm WARN package json email protected cdn cgi l email protection No READ
  • 使用 npm API 检索带有版本的私有 npm 包列表,可能吗?

    我在 npmjs org 上有一个私有 npm 注册表 其中包含几个私有 npm 包 我们正在转向内部私人 npm 注册表 verdaccio 长话短说 使用我们的 AWS 基础设施 verdaccio 服务器可能会因多种原因而被重建 主要
  • node.js 发送 css 文件

    我正在尝试让 node js 服务器发送 css 文件 我在这里修改这个服务器 http github com LearnBoost Socket IO node blob master test server js http github
  • MongoDB 查询返回空数组

    有一个基本的 Express 应用程序连接到几乎 0 5 GB 的 MongoDB 数据库 当我运行时 router get function req res next medical data find State CT function
  • 当我使用nodemon和ts-node时,为什么节点检查器没有启动?

    我有一个用打字稿编写的简单节点服务器 我的 package json 配置为 scripts build tsc dev nodemon watch src e ts json exec ts node src server ts debu
  • Nest.js - 在猫鼬模式中创建索引

    如何使用 Nest js 在猫鼬模式中创建属性索引 我尝试添加索引作为属性选项 但索引尚未创建 Schema export class Schema extends Document Prop id string Prop required
  • 将实体投射到 dto

    只是想知道将 NestJS 实体对象转换为 DTO 的最佳方法 可以说我有以下内容 import IsString IsNumber IsBoolean from class validator import Exclude from cl
  • 缩短文本并仅保留重要句子

    德国网站 nandoo net 提供了缩短新闻文章的可能性 如果使用滑块更改百分比值 文本会发生变化并且某些句子会被遗漏 您可以在这里看到它的实际效果 http www nandoo net read article 299925 http
  • 为什么发送 fetch() 时我的响应数据未定义?

    我正在尝试在客户端使用 fetch 将数据发布到我的 NodeJS 服务器或从我的 NodeJS 服务器发布数据 服务器很好地收到了 post 请求 我能够记录 req 变量 但是当我 res send any data 时 客户端无法检测
  • 状态代码 304(Jade、Node、Express)

    我在我的 jade 文件中链接 bootstrap 和 jquery link rel stylesheet href stylesheets bootstrap css and script src javascripts jquery
  • 使用 Javascript 和 Mongodb 对时间序列数据重新采样

    时间序列数据的数据集需要从具有不规则时间间隔的数据集转换为规则时间序列 可能使用插值和重采样 蟒蛇的pandas Dataframe resample http pandas pydata org pandas docs stable ge
  • Node.js 客户端中的 Windows 集成身份验证

    当使用node js作为客户端时 是否可以使用Windows集成身份验证连接到服务器 例如连接到IIS时 我对此的搜索仅出现使用 node js 作为服务器的结果 2015 年更新 现在有一些模块实现了 Windows 集成身份验证 节点
  • 无法使用 Jade 模板包含相对路径文件

    当我尝试将文件包含在同一文件夹中时 收到以下错误 the filename option is required to use include with relative paths 有两个文件 索引 jade 项目列表 jade cont
  • uncss 错误:C.UTF-8:不是有效的语言标签

    嗨 我正在尝试使用UNCSS https github com giakki uncss第一次从 CSS 中删除未使用的样式 我收到以下错误 Fontconfig 警告 忽略 C UTF 8 不是有效的语言标记 home ubuntu nv
  • Nodejs 异步 Promise 队列

    我需要使用速率受限的 API 例如 我一秒钟只能进行 10 个 API 调用 因此我需要等待当前秒结束才能进行另一个 API 调用 为了实现这一目标 我想创建一个可以自行管理的异步队列 它的主要功能是让我向队列添加一个新的 Promise
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 如何使用node.js获取屏幕分辨率

    我需要使用 node js 获取屏幕分辨率 但以下代码不起作用 var w screen width var h screen height 这也行不通 var w window screen width var h window scre

随机推荐

  • 如何从带有通配符的字符串中获取Appx全名?

    在 Powershell 中 此命令Get AppxPackage name 可以显示包裹的完整详细信息 是否可以使用任何 Windows API 来获得等效结果 我见过这个question https stackoverflow com
  • python cdist 错误 ValueError: XA 必须是二维数组

    这是我的代码的缩短版本 dist array ssd cdist test y training test y 打印的是 0 00000000e 00 1 79900000e 01 1 03800000e 01 1 22800000e 02
  • 在 SQL 中获取运行总计最大值的高性能方法

    我们有一个交易表 其结构如下 TranxID int PK and Identity field ItemID int TranxDate datetime TranxAmt money TranxAmt 可以是正数或负数 因此该字段 对于
  • PostgreSQL 对连接中的表数量有限制吗?

    今天在玩动态查询生成时 我发现 mysql 对连接中可以使用的表数量有一个硬性最大限制 61 这让我想知道 PostgreSQL 是否有类似的限制 注 我问这个是出于好奇 而不是需要 据我所知没有限制 一旦超过 可配置的 表限制 查询优化器
  • Spring Boot 安全 - Thymeleaf sec:授权不起作用

    我正在尝试使用 Spring Boot Spring Security 4 Thymeleaf 如果用户具有 admin 角色或其他角色 应该显示 html 块 但现在它始终显示在页面上 这是我的html div p class bg in
  • Python 中的“与”/“或”? [复制]

    这个问题在这里已经有答案了 我知道and and orpython中存在表达式 但是有没有and or表达 或者以某种方式将它们组合起来以产生与and or表达 我的代码看起来像这样 if input a if a or or or or
  • Django 在一次调用中序列化多个对象

    我想知道如何减少序列化时对数据库的调用次数 我有以下2个型号 class House models Model name models CharField max length 100 null True blank True addres
  • Web API 中 id 参数后带有操作的路由

    在 web api 中 默认路由是 api locations 123 days 5 config Routes MapHttpRoute name DefaultApi routeTemplate api controller id de
  • 如何在服务器端git hook中获取推送用户信息?

    我想阻止用户使用服务器端挂钩删除远程 git 分支 更新钩子 我在 update hook 中编写了 shell 脚本来实现这一点 现在我可以停下来了all用户删除远程git分支 但我想授予删除权限特定用户 为此 我们需要获取正在服务器端挂
  • java中的BufferStrategy中的图像闪烁?

    我正在用 java 制作游戏 需要在游戏板上绘制单元 我将所有单位放在一个列表中 并绘制该列表中的每个单位 绘制方法如下所示 public void paint Graphics g super paint g if unitList nu
  • 任何遍历嵌套字典的函数式编程方法?

    我正在尝试找到更好的方法来实现这一点 d a b c 4 l a b c for x in l d d x print d 4 我正在学习函数式编程 所以我只是尝试随机出现的例子 Use reduce http docs python or
  • 设备有“回调”功能吗?

    用户登录后 我想手动记录此事件并增加数据库中的计数器列 有没有类似的东西after login in Devise 就像ActiveRecord s before save Devise 在幕后使用 Warden Warden 为您提供了许
  • d3树计算所有孩子的数量

    我有一个基于以下内容的 d3 树 http bl ocks org mbostock 1093025 http bl ocks org mbostock 1093025 我如何计算所有孩子的数量 我已经尝试过这个 但是它计算了树中的所有行
  • 特征中的字段未及时初始化

    我不明白为什么这个领域encryptKey在调用类构造函数时 以下代码中的值并未初始化为 3 trait Logger println Construction of Logger def log msg String println ms
  • 使用 hibernate 获取数据库中的所有表

    有没有办法使用 hibernate 检索数据库中所有表的名称 我执行了查询SELECT TABLE NAME FROM USER TABLES在 oracle Db 中 它工作得很好 但当涉及到 DB2 时 就不会了 您可以使用 List
  • 等待嵌套异步调用完成

    我有一系列嵌套的异步调用需要在我的代码继续之前完成 函数 save part1 调用 sqlite 数据库并返回感兴趣的行 对于每一行 我都会进行 ajax 调用以远程保存它们 根据我所读到的有关 Promise 和 Deferred 的内
  • Visual Studio - 过滤掉 nvcc 警告

    我正在编写 CUDA 程序 但收到令人讨厌的警告 Warning Cannot tell what pointer points to assuming global memory space 这是来自 nvcc 我无法禁用它 有没有办法过
  • CustomVision:操作返回无效状态代码:“NotFound”

    我正在使用 NuGet 包Microsoft Cognitive CustomVision Prediction版本1 2 0 我创建了 1 个试验项目并用一些图像对其进行了训练 现在 当我尝试使用 API 调用 API 进行预测时Pred
  • 使用node.js访问DOM

    我想访问 html 文件并使用 node js 通过 id 获取元素 这是我的 html 文件
  • 如何有效计算文档流中文档之间的相似度

    我收集文本文档 在 Node js 中 其中一个文档i表示为单词列表 考虑到新文档以文档流的形式出现 计算这些文档之间相似性的有效方法是什么 我目前对每个文档中单词的归一化频率使用余弦相似度 我不使用 TF IDF 词频 逆文档频率 因为我