当前位置: 首页 > 知识库问答 >
问题:

如何使用nodejs查找相似文本

姬熙云
2023-03-14

我正在尝试开发一个简单的搜索引擎,以获得匹配的句子在一个文本文件与nodejs,但我想改进我的搜索引擎,以获得相似的文本,而不仅仅是准确的文本,有什么建议,我可以如何做到这一点?

这是我的代码:

const folder = "./movies/data";
const fs = require("fs");

function search(params) {
  let list = [];

  fs.readdirSync(folder).forEach((file) => {
    const data = fs.readFileSync(`movies/data/${file}`, {
      encoding: "utf8",
      flag: "r",
    });
    if (data.includes(params)) {
      list.push(data);
    }
  });
  console.log(
    `Foram encontradas ${list.length} ocorrências pelo termo ${params}.`
  );
  return `Foram encontradas ${list.length} ocorrências pelo termo ${params}.`;
}

let args = process.argv.slice(2);
search(args.join(" "));

module.exports = search;

共有1个答案

罗智刚
2023-03-14

在实现任何算法之前,您已经选择了文本比较算法。

其中最好的是Levenshtein Distancehttps://en.wikipedia.org/wiki/Levenshtein_Distance

JS中Levenshtein距离实现的链接
https://www.tutorialspoint.com/Levenshtein-distance-in-javascript

 类似资料:
  • 我有一组由浮点向量表示的30000个文档。所有向量都有100个元素。我可以通过使用向量之间的余弦度量来比较两个文档来找到相似性。问题是找到最相似的文档需要很多时间。有什么算法可以帮助我加快速度吗? 编辑 现在,我的代码只计算第一个向量和所有其他向量之间的余弦相似度。大约需要3秒钟。我想加快速度;)算法不一定要精确,但应该给出与全搜索相似的结果。 每个向量的元素之和等于1。

  • 问题内容: 如何查询相似度排序的记录? 例如。搜索“库存溢出”将返回 堆栈溢出 SharePoint溢出 数学溢出 政治溢出 视觉特效溢出 例如。搜索“ LO”将返回: 巴勃罗毕加索 米开朗基罗 杰克逊·波洛克 我需要什么帮助: 使用搜索引擎索引和搜索MySQL表,以获得更好的结果 使用Sphinx搜索引擎和PHP 在PHP中使用Lucene引擎 使用全文索引,查找相似/包含的字符串 什么不好 L

  • 本文向大家介绍TF-IDF与余弦相似性的应用(二) 找出相似文章,包括了TF-IDF与余弦相似性的应用(二) 找出相似文章的使用技巧和注意事项,需要的朋友参考一下 上一次,我用TF-IDF算法自动提取关键词。 今天,我们再来研究另一个相关的问题。有些时候,除了找到关键词,我们还希望找到与原文章相似的其他文章。比如,"Google新闻"在主新闻下方,还提供多条相似的新闻。 为了找出相似的文章,需要用

  • 我正在使用最新版本的elasticsearch(在docker中)和spring boot(最新版本)应用程序,试图在其中搜索类似的文档。我的文档类有一个字符串字段: 当我使用内置的方法时,我的查询得到了很多结果: 然而,我不知道这些文档有多相似,因为它只是我的文档对象的一个页面。在执行查询时,能够看到相似性分数或设置相似性阈值将非常棒。我应该做些不同的事情吗?

  • 问题内容: 有没有一种我可以用来简单地找到文件位置的方法?我正在尝试允许用户选择一个文件并打开它,但是我必须让JFileChooser仅选择该文件并将该位置发送到另一种方法。最好的方法是什么? 问题答案: javadoc show中的示例显示了执行此操作的步骤: 那是在做什么。取得结果并将其传递给另一种方法。

  • 我想点击一个网站上的按钮。有没有一个代码可以让我通过使用文本字段来点击元素?我既不能使用资源id字段,也不能使用名称,因为它们是空的。我尝试使用xpath单击元素,但没有成功。