查找具有相似文本的文章的算法

2024-01-21

我在数据库中有很多文章(带有标题、文本),我正在寻找一种算法来找到 X 个最相似的文章,例如当你提出问题时 Stack Overflow 的“相关问题”。

我尝试用谷歌搜索这个问题,但只找到了有关其他“相似文本”问题的页面,例如将每篇文章与所有其他文章进行比较并将相似之处存储在某处。所以在我刚刚输入的文本上“实时”执行此操作。

How?


编辑距离 http://en.wikipedia.org/wiki/Levenshtein_distance不是一个可能的候选者,因为它取决于拼写/词序,并且考虑到您实际有兴趣搜索的文档的大小和数量,计算成本比 Will 让您相信的要高得多。

像 Lucene 这样的东西就是最好的选择。您为所有文档建立索引,然后当您想要查找与给定文档相似的文档时,您可以将给定文档转换为查询,并搜索索引。 Lucene 内部将使用tf-idf http://en.wikipedia.org/wiki/Tf-idf and an 倒排索引 http://en.wikipedia.org/wiki/Inverted_index使整个过程花费的时间与可能匹配的文档数量成正比,而不是与集合中的文档总数成正比。

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

查找具有相似文本的文章的算法 的相关文章

  • 当第二个参数包含运算符号时,为什么 ltrim 会删除一个字符? [复制]

    这个问题在这里已经有答案了 If I do ltrim 53 34567 53 ltrim 53 34567 53 ltrim 53 34567 53 I get 4567作为结果而不是34567 这种行为的解释是什么 ltrim 53 3
  • 为什么 Java 11 中对于空白字符串 String.strip() 比 String.trim() 快 5 倍

    我遇到过一个有趣的场景 因为某些原因strip 针对空白字符串 仅包含空格 明显快于trim 在Java 11中 基准 public class Test public static final String TEST STRING 3 w
  • PHP 的 mb_internal_encoding 实际上是做什么的?

    根据 PHP 网站 http www php net manual en function mb internal encoding php它这样做 coding 是用于 HTTP 输入的字符编码名称 字符编码转换 HTTP输出字符编码 转
  • 在常数空间中创建 1..N 的随机排列

    我正在寻找枚举固定空间中数字 1 N 的随机排列 这意味着我无法将所有数字存储在列表中 原因是 N 可能非常大 超过可用内存 我仍然希望能够一次遍历这样一个数字的排列 只访问每个数字一次 我知道对于某些 N 可以这样做 许多随机数生成器随机
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • Erlang:如何将原子转换为字符串?

    我想从原子转换为字符串 Input hello world Output hello world 我该如何实现这一目标 Use atom to list http erlang org doc man erlang html atom to
  • PHP:STR 替换为链接

    我有这个 PHP 聊天框 如果我在聊天框中键入链接 它不会将其显示为链接 我如何使用 STR 替换来执行此操作 它应该响应诸如 http http com nl www www 之类的内容 我的其他 STR 替换行如下所示 bericht
  • 从另一列的子字符串创建列

    我有一个 Pandas 数据框对象 我想从现有列的子字符串创建新列 我的数据如下所示 Date variable want1 want2 want3 0 02 01 08 Australia Sydney A Australia Sydne
  • 如何使用 Perl 分割文本文件并将其存储到二维数组中?

    230215 01 16 2000 57533 0 1045403 0 0 217623 230215 01 18 2000 77659 0 1045403 0 0 217624 230215 01 25 2000 76583 0 1045
  • 使用 Java 将摩尔斯电码转换为英文文本

    我最近有一项任务 将英语转换为摩尔斯电码 并将摩尔斯电码转换为英语 输入莫尔斯电码时 我的老师希望各个字母之间用 1 个空格分隔 单词之间用 分隔 例如 是 成为 我能够完美地将英语转换为莫尔斯电码 但我对莫尔斯电码转换为英语感到不知所措
  • shell脚本中关联数组的时间复杂度

    我想知道在 shell 脚本中使用关联数组时如何构造 实现 另外 我想知道基于 shell 脚本的关联数组的时间复杂度是否是最佳的 因为我们可以使用字母和数字作为它们各自的键 编辑 他们使用什么哈希函数 如果您使用关联数组 则不能通过 使用
  • 子序列和

    给定一个整数数组 例如 1 2 3 1 查找是否存在总和为0并返回它 例如 1 2 3 or 2 3 1 检查每个子序列是O n 2 这效率太低了 有改进的想法吗 创建一个新数组 其中每个元素等于前一个元素加上该元素的总和 Input 1
  • 找到一条穿过任意节点序列的最短路径?

    In 这个先前的问题 https stackoverflow com questions 7314333 find shortest path from vertex u to v passing through a vertex wOP询
  • 迭代任意大小的子集

    我可以迭代大小为 1 的子集 for int a 0 a lt size a 或大小为 2 的子集 for int a1 0 a1 lt size a1 for int a2 a1 1 a2 lt size a2 or 3 for int
  • 需要一种将网络块范围折叠为超集范围列表的算法

    我的数学不及格 我需要一种有效的方法将网络范围缩小为超集 例如如果我输入 IP 范围列表 1 1 1 1至2 2 2 5 1 1 1 2至2 2 2 4 10 5 5 5至155 5 5 5 10 5 5 6至10 5 5 7 我想返回以下
  • 为什么是 ”\?” C/C++ 中的转义序列?

    C C 中有四种特殊的非字母字符需要转义 单引号 双引号 反斜杠 和问号 显然是因为它们有特殊的含义 对于单身char 对于字符串文字 对于转义序列 但为什么是 其中之一 我今天读了教科书上的转义序列表 我意识到我已经never逃脱了 以前
  • 如何从迭代器推导连续内存

    不知何故 本土stl copy VC Dinkumware 上的算法表明它可以使用memcpy 可以轻松复制的数据 一个凡人能做到这一点吗 假设每个元素都是普通可复制的 random access iterator 是否意味着连续内存 标准
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • 从一种数字系统转换为另一种数字系统后会有多少位数字

    主要问题 有多少位数字 让我解释 我有一个二进制数 11000000 十进制数是192 转换为十进制后 它有多少位 以十进制表示 在我的示例中 它是 3 位数字 但是 这不是问题 我在互联网上搜索并找到了一种用于整数部分的算法和一种用于小数
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想

随机推荐

  • 关闭弹出窗口外部的弹出窗口,但内部保持打开状态

    当您在弹出窗口外部单击时 是否可以关闭引导弹出窗口 但当您在弹出窗口内部单击时 它保持打开状态 我知道这个问题之前已经讨论过here https stackoverflow com questions 11703093 how to dis
  • 从当前 URL 获取 #id

    我正在寻找一种使用 JavaScript 从当前 URL 检索 anchor 部分的方法 例如 http my page com index html contact us http my page com index html conta
  • 需要 modbus Java 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要带有源代码的简单 modbus Java 库 我在谷歌上找到了 但有 jar 文件 并且没有强大的
  • 如何从 jQuery 触发 JSF 渲染

    是否可以触发jsf
  • 具有 CSS 类的 img 的 DataURL

    我必须应用一些样式 img 感谢 CSS 类 是否有可能获得dataURL of the img 与CSS样式 function Original const imgOriginal document getElementById orig
  • 运行 Gitlab Docker

    我正在遵循这些说明 http doc gitlab com omnibus docker http doc gitlab com omnibus docker However http localhost http localhost是说W
  • Python Falcon 中的 CORS 失败,即使有 Auth Pre-Flight 的头

    使用时收到这些错误选项动词在 Angular2 http get url options 中 即使在 Falcon Rest API 中设置了适当的 CORS 标头 XMLHttpRequest 无法加载http localhost 800
  • Autofac Resolve 具有开放通用类的开放通用接口

    所以我有一个接口和类 public interface IMyInterface
  • 无法通过终端访问 OS X 中的 adb,“找不到命令”

    我已在 Mac 系统上安装了 Android SDK 和 Eclipse 我能够使用 Eclipse 进行编程并创建了一些示例应用程序 但我仍然无法访问adb通过终端窗口 我在终端中尝试过以下命令 pwd Users espireinfol
  • 在CDN的vue应用程序中保持资产和公共路径不同

    vue 有这个选项publicPath https cli vuejs org config publicpath它允许将应用程序部署在子路径上 foob ar com my path 使链接和每个资产都可以通过它访问 从性能的角度来看 我
  • 如何将 React App 嵌入到另一个网站

    我有一个旧网站在服务器 x 上运行 现在一个React App已经开发出来了 在y服务器上 该网站应显示 React App 我已经搜索并阅读了有关该主题的几篇文章 但到目前为止没有成功 目前唯一有效的解决方案是 iframe 但我们不想要
  • 如何从用 Java 编写的 Azure Function App 连接到 PostgreSQL?

    我有一个 Azure 函数应用程序 其中有一个用 Java 编写的计时器触发函数 我需要连接到部署在其中一台 Azure VM 上的 PostgreSQL 此处不使用托管 Postgres 我的代码 import java sql publ
  • R:plm——年度固定效应——年度和季度数据

    我在设置面板数据模型时遇到问题 这是一些示例数据 library plm id lt c 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 year lt c 1999 1999 1999 1999 2000 2000 200
  • Java 的 SQL 解析器库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • AutoFac中是否可以获取容器类型

    例如 我在类型的构造函数中使用一个参数注册了类 C1System Type 我有另一个类 C2 其中注入了 C1 类型的参数 我想收到typeof C2 自动在 C1 构造函数中 以某种方式有可能吗 示例代码 public class C1
  • 如何查找网络机器名称和登录该机器的用户?

    我必须找到机器名称以及登录机器的用户名 I have Updated My answer please see my answer NetworkBrowser nb new NetworkBrowser IPHostEntry ip Dn
  • 每台服务器的带宽摘要

    我正在尝试获取我帐户下所有 Softlayer 服务器的带宽数据 谢谢account servers rb我能够获取所有服务器的服务器 ID 现在我想获取服务器在特定时间范围内使用的带宽 我感兴趣的数据是 http sldn softlay
  • 如何根据 R 中的条件填充数据框

    我创建了一个像这样的空数据框 id Alyr Crub Lala Brap Bole Spar Esal Aara Thas 1 XLOC 003940 TBH 1 NA NA NA NA NA NA NA NA NA 我想看看是否id和列
  • Kubernetes DNS 在 Kubernetes 1.2 中失败

    我正在尝试在 Centos 7 上的 Kubernetes 1 2 中设置 DNS 支持 根据文档 https github com kubernetes kubernetes tree master cluster addons dns
  • 查找具有相似文本的文章的算法

    我在数据库中有很多文章 带有标题 文本 我正在寻找一种算法来找到 X 个最相似的文章 例如当你提出问题时 Stack Overflow 的 相关问题 我尝试用谷歌搜索这个问题 但只找到了有关其他 相似文本 问题的页面 例如将每篇文章与所有其