NodeJs文本相似度去重脚本
25-04-07 05:09
949
0
文本相似度去重,是指对一批文本进行去重,只保留相似度较高的文本。相似度的度量方法有很多种,这里以编辑距离(Edit Distance)作为衡量标准。 编辑距离是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。常见的编辑距离算法有Levenshtein距离、Damerau-Levenshtein距离、Jaro距离、Jaro-Winkler距离等。 编辑距离算法的实现,可以使用动态规划算法,也可以使用暴力搜索算法。
下面是用NodeJs实现的文本相似度去重脚本
安装依赖
pnpm add natural cosine-similarity
脚本代码
const fs = require("fs"); const natural = require("natural"); const cosineSimilarity = require("cosine-similarity"); const tokenizer = new natural.WordTokenizer(); // 计算文本的词袋模型 const getVector = text => { const tokens = tokenizer.tokenize(text.toLowerCase()); const frequency = tokens.reduce((acc, token) => { acc[token] = (acc[token] || 0) + 1; return acc; }, {}); return frequency; }; // 计算两个文本的相似度 // threshold 为重复率,范围 0-1,自由设置 const isSimilar = (text1, text2, threshold = 0.2) => { const vector1 = getVector(text1); const vector2 = getVector(text2); const similarity = cosineSimilarity(vector1, vector2); return similarity >= threshold; }; // 去重函数 const deduplicateArray = arr => { const result = []; for (const item of arr) { let isDuplicate = false; for (const uniqueItem of result) { if (isSimilar(item, uniqueItem)) { isDuplicate = true; break; } } if (!isDuplicate) { result.push(item); } } return result; }; const txt = ["文本1", "文本2", "文本......", "文本999999"]; const uniqueArray = deduplicateArray(txt); // 将去重后的数据写入文件 fs.writeFile("./dataRes.txt", uniqueArray.join("\n"), err => { if (err) throw err; console.log("数据已成功写入 ./data.txt"); });
-
百度网盘迁移阿里云盘工具
百度网盘作为国内用户最多的在线云盘,最大的缺点就是下载限速问题,而阿里云盘自上线以来,就打着上传下载不限速的旗号,不少用户就想把百... 1858 0 24-05-31 -
简单大气的页面导航html
551 0 21-06-04 -
bigjpg - 图片无损放大
一个可以把图片无损放大的网站。对图片进行无损处理,基本上大家都会有这个需求。而 这个小网站,就非常好的解决了这个问题。 上传图片后,可以选择图片类型、放大倍数以及降噪程度等。 609 0 21-12-07 -
美柚_专注为女性解决经期烦恼的健康管理应用
美柚App,专为女性打造的健康管理应用,全面解决经期烦恼。它主要面向注重健康生活的女性用户,提供生理期记录与预测功能,让女性用户... 1009 0 25-06-09 -
聊天页面qq表情包
395 0 21-06-01 -
经典毒鸡汤,句句“治愈”人心!
1、得不到就是得不到,别老说你不想要。2、做作业时不能抄答案,因为一但你抄了答案,你就会发现真的很快乐。3、做事一定要考虑别人的感受... 2061 0 24-08-07 -
C++ Primer Plus(第五版)中文版
学习C++是一次探索之旅,因为这种语言容纳了好几种编程模式,其中包括面向对象编程、通用编程和传统的过程化编程。随着新特性的不断添加,C... 1088 0 24-05-24 -
中文汉化-万花筒分割模糊迷幻视觉特效AE/PR插件 Split Blur v1.3.2 Win
插件提供千变万化的模糊视觉,且带有有机的绘画感。该效果将图像分成其自身的多个混合副本。分割的距离是根据每个像素的亮度动态计算的,并... 1362 0 24-08-06
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~