在一本大书中找到 10 个最常用的单词 [重复]

2023-12-01

我知道这个问题已经在论坛上被问过几次了,我没有找到任何可以被认为是最合适的解决方案的“标记”答案 - 所以再次询问:

我们从书中得到了一篇非常大的文本,所有这些文本都无法放入内存中。我们需要找到文本中出现频率最高的 10 个单词。做到这一点的最佳(时间和空间)方式是什么?

我的想法:

将文件划分为 k 个大小的块(使得每个块都可以存储在内存中)。现在,对每个块执行外部排序。一旦我们在磁盘上有了 (N/k) 个排序的文件(假设 N 是书中文本的总大小) - 我不知道应该如何继续,以便我可以从文件中获取前 10 个元素k 排序数组。

另外,如果有不同的思路,欢迎提出。


这是流算法领域的一个经典问题。显然,在某些退化情况下,没有办法做到这一点。您需要选择一堆大约(在明确定义的意义上)流中前 k 个单词的元素。我不知道任何经典参考文献,但快速谷歌让我找到了this。它似乎对流媒体 top-K 的各种技术进行了很好的调查。您可以查看其中的参考资料以获取其他想法。

另一种想法(在流模型中行不通)就是随机采样内存中尽可能多的单词,对它们进行排序和唯一化,然后对文件进行另一次传递,计算单词的命中数你的样品。然后你就可以轻松找到前k个了。

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

在一本大书中找到 10 个最常用的单词 [重复] 的相关文章

  • 识别鼠标移动的算法

    我想知道是否有任何研究 算法可以指定鼠标在识别 等字符时的偏差量使用鼠标绘制 某种光学字符识别 但可能是一个更简单的版本 是否有某种算法可以让我说用户绘制的问号确实是一个问号 而不是其他具有一定准确性的东西 就像 Windows 平板电脑软
  • 数据结构...那么我如何理解它们呢? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么《破解编码面试》这个例子的时间复杂度是O(k c^k)?

    该问题来自 破解编码面试 第 6 版 问题 V1 11 以下代码打印长度为 k 的所有字符串 其中字符 是按排序顺序排列的 它通过生成所有长度的字符串来做到这一点 k 然后检查每个是否已排序 什么是运行时间 package QVI 11 P
  • 我的 Bitset 的大小是多少?

    我想存储System currentTimeInMillis以尽可能小的空间存储在内存中 因为我必须将数百万个它们存储在内存中 我把它转换为binaryString这给了我41 bits 这是我的程序 public class BitSet
  • 图像算法上的物体计数

    我又接到学校任务了 这次 我的老师给我的任务是创建算法来计算图片上有多少只鸭子 该图与此类似 我想我应该使用模式识别来搜索上面有多少只鸭子 但我不知道每只鸭子适合哪种图案 我认为你可以通过分割鸭嘴并计算鸭嘴的数量来解决这个问题连接的组件 h
  • 用于计算三角函数、对数或类似函数的算法。仅限加减法

    我正在修复 Ascota 170 古董机械可编程计算机 它已经开始工作了 现在我正在寻找一种算法来展示其功能 例如计算三角或对数表 或类似的东西 不幸的是 从数学运算来看 计算机只能进行整数的加减法 从 1E12到1E12的55个寄存器 甚
  • 如何在单向链表(一次遍历中)中从尾部获取第 n 个节点?

    所以我在一次考试中得到了这个问题 如何从单链表的尾部获取第 n 个节点 每个节点都有一个值和一个下一个 指向下一个值的指针 我们得到这个 getNodeFromTail Node head int x 所以我的做法是通过遍历一次来求出列表的
  • 更合适地说插入未排序动态数组的摊销 O(1) 与 O(n) ?

    这属于 stackoverflow com help on topic 中的 软件算法 在本例中 是一种将项目添加到动态未排序数组的软件算法 This is chart we made in class about the runtimes
  • 当平方和为N时,如何找到四个变量的所有可能值?

    A 2 B 2 C 2 D 2 N给定一个整数N 打印出整数值的所有可能组合ABCD求解方程 我猜我们可以比暴力做得更好 天真的暴力会是这样的 n 3200724 lim sqrt n 1 for a 0 a lt lim a for b
  • 神经网络的层和神经元

    我想更多地了解神经网络 我正在开发一个 C 程序来制作神经网络 但我坚持使用反向传播算法 很抱歉没有提供一些工作代码 我知道有很多库可以用多种语言创建神经网络 但我更喜欢自己制作一个 关键是我不知道要实现特定目标 例如模式识别或函数近似或其
  • 填充体积算法

    我有一个具有一定尺寸长度 宽度 高度的盒子 我有不同长度 宽度 高度的物品 是否有现有的算法可以确定放入盒子中的最佳物品 这称为装箱 切割库存 背包问题 并且是 NP 难问题 一般来说 您只能通过使用启发式方法获得近似解 请参见示例 htt
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 修订:算法和数据结构

    我需要通过修订来构建和处理数据的想法 例如 我有一个对象数据库 例如汽车 每个对象都有许多属性 这些属性可以是任意的 因此没有一个固定的模式来描述这些对象 这些对象可能保存为键值对 现在我需要更改对象的属性 我不想完全重写它 我希望能够返回
  • 关于Marching Cubes算法的澄清

    关于Marching Cubes 我对其算法和实现有一些疑问 我已经阅读了 Marching Cubes 的 Paul Bourke 优秀文章以及网站上可用的源代码 但是 我在理解以及如何以自己的方式实现算法方面仍然遇到了一些问题 问题如下
  • python 2.7模块pandas未安装“无法导入名称哈希表”

    我尝试在论坛 谷歌上寻找这个问题的答案 但我找不到任何东西 我的问题是这样的 来自 python 控制台 gt gt gt import pandas cannot import name hashtable Traceback most
  • 在 C++ 中为哈希映射提供复合键

    我有一个数据结构
  • 重写修改后的 goto 语义的算法

    我有一大堆使用旧的自行设计的脚本语言编写的遗留代码 我们将它们编译 翻译成 javascript 该语言有条件跳转 跳转到标签 与普通 goto 语句的区别在于 不可能向后跳转 该语言中没有嵌套的 if 语句或循环 由于 javascrip
  • 我应该对算法使用递归还是记忆化?

    如果我可以选择使用递归或记忆来解决问题 我应该使用哪一个 换句话说 如果它们都是可行的解决方案 因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达 那么我什么时候会使用其中一个而不是另一个 它们并不相互排斥 您可以同时使用它们
  • 如何计算 3D Morton 数(交织 3 个整数的位)

    我正在寻找一种快速计算 3D Morton 数的方法 这个网站 http www graphics stanford edu seander bithacks html InterleaveBMN有一个基于幻数的技巧来处理 2D Morto
  • c# GDI边缘空白检测算法

    我正在寻找解决方案检测边缘空白c 位图 来自 c 托管 GDI 库 图像将是透明的 or white 大多数 400x 图片的尺寸为 8000x8000px 边缘周围有大约 2000px 的空白 找出边缘的最有效方法是什么 x y 高度和宽

随机推荐

  • 为什么我的 urls.py 不能与 Django 一起使用

    今天 当我用 Building a blog in 30 mins with Django Screencast 编写我的博客时 我遇到了一些问题 当我点击文章标题时 它无法出现正确的页面 Page not found 404 Reques
  • 在 Magento 中停止事件观察者结帐的正确方法是什么?

    我正在 checkout controller onepage save shipping method 活动期间验证运输报价 如果验证失败 我想将用户发送回运输方式选择 但我还想显示一条消息 说明失败的原因 Magento 有内置的方法吗
  • 为什么这个日期转换需要在月份上加1?

    我在 JavaScript 中有这个日期变量 scope dt内容是Tue Jul 08 2014 00 00 00 GMT 0800 Malay Peninsula Standard Time 我想将其转换为返回一个字符串2014 7 8
  • Altair 颜色分级值

    在以下直方图中对分级值进行着色时遇到问题 我打算对 x 轴 信用度 上小于 50 的所有条形进行着色 在 Altair 中这是如何完成的 base alt Chart X train histogram base mark bar enco
  • 将 javascript 客户端连接到 python websocket 服务器

    我有这个工作 python websocket 服务器 usr bin env python from socket import HOST PORT 8080 BUFSIZ 1024 ADDR HOST PORT tcpSerSock s
  • 如何使用开始和结束索引对 numpy 行进行切片

    index np array 1 2 2 4 1 5 5 6 z np zeros shape 4 10 dtype np float32 有什么有效的设置方法z np arange 4 index 0 z np arange 4 inde
  • 使用 Google Maps API 进行地理编码 - 更新现有标记而不是添加另一个标记

    在进行地理编码时 如何简单地将现有标记移动到新地理编码结果的结果中 让我们看这个例子 地图加载时 会出现一个标记 当有人进行地理编码时 标记会移动到结果 标记是可拖动的 因此用户可以进一步移动标记 如果他们愿意 也许他们想要重新对位置进行地
  • A-Frame .obj 模型显示但已损坏

    这里是框架的初学者 已经完成了教程场景 现在正在设置我的第一个使用 obj 模型 使用远程服务器 感觉这是重要的信息 我看到过有关模型未显示的问题 但我的模型显示已损坏 我不知道从哪里开始修复它 This is how it looks i
  • 使用 freeswitch 在网络浏览器中发起呼叫和接听呼叫

    我有一个要求 我有一个网站 我想在其中实现拨出呼叫和拨入呼叫功能 我在 Windows 上使用 freeswitch 作为 sip 服务器 目前我可以使用 verto 在本地分机上发起呼叫 如何直接从浏览器向手机发起出站呼叫 并且还可以使用
  • 如何在 Tfs Build 中参数化 DeployIisAppPath Msbuild 参数

    我正在使用 Tfs 2012 构建 部署我们的 Asp Net Web 应用程序 我们有一个构建定义 可构建 5 个解决方案 sln 文件 这就是我们的 MsBuild 参数的样子 p DeployOnBuild True p AllowU
  • 尽管参数类型不同,但双重定义错误

    我在以下两种方法上收到双重定义错误 def apply T state T onRender T gt Graphic onMouseEvent MouseEvent T gt T GraphicPanel apply state onRe
  • Postgres排序问题

    我想按 DESC 评级排序 它适用于 MySQL 但适用于 PostgreSQL 我得到了不同的结果 您可以在这里看到问题 http www vinderhimlen dk konkurrencer 我的控制器 def sort colum
  • 使用 C# 退出 Excel(同时使用 Excel 自动化)

    我正在使用 C 将数据读取 写入 Excel 电子表格 我正在使用这三个语句来打开我的 Excel 文件 Excel Application excelapp new Excel Application Excel Worksheet wo
  • C# 网格数据源多态

    我有一个网格 我正在设置DataSource to a List
  • Android Play 商店 market:// 链接不再有效?

    在过去的一年里 我一直从我的域重定向我的用户 http example com get 至 market details id com example myapp 今天我在 Nexus 5 LG G3 OnePlus One 上通过 Chr
  • 如何使用正则表达式将非字母数字字符替换为空格?

    我构建了一个 Javascript 函数来将第一个字母变为大写 我的问题是我有一些类似于 name something 的单词 而我想要的是 Name Something 我这样做了 function toCamelCase text re
  • 无法读取未定义的角度4的属性“名称”[重复]

    这个问题在这里已经有答案了 我正在尝试在组件模板中打印一个值 但我收到上述错误Cannot read property name of undefined 我已经从这个问题的代码中删除了额外的内容 我想访问第一行详细信息 组件文件 impo
  • Python:如何执行外部程序

    如何从程序内部执行程序而不阻塞 直到执行的程序完成 我努力了 os system 但它会停止我的程序 直到执行的程序停止 关闭 有没有办法让我的程序在外部程序执行后继续运行 考虑使用子流程 module Python 2 http docs
  • Javascript序列化窗口对象

    我想序列化一个包含窗口的窗口对象 这样 如果通过反序列化它并重新设置其属性来刷新 php 页面 则可以在内存中保持窗口打开 是否可以 例如 object window open test html 使用场景 当一个窗口打开时 它的引用是在创
  • 在一本大书中找到 10 个最常用的单词 [重复]

    这个问题在这里已经有答案了 我知道这个问题已经在论坛上被问过几次了 我没有找到任何可以被认为是最合适的解决方案的 标记 答案 所以再次询问 我们从书中得到了一篇非常大的文本 所有这些文本都无法放入内存中 我们需要找到文本中出现频率最高的 1