首页 > 教程
NodeJs文本相似度去重脚本
- 2025-04-07
- 1196 ℃
文本相似度去重,是指对一批文本进行去重,只保留相似度较高的文本。相似度的度量方法有很多种,这里以编辑距离(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");
});相关内容
Coze 扣子 - 字节出品...
FastStone Capture电脑截屏工具
2025年8款免费且好用的图...
微软竟然出过这么多手机App
微信文件传输助手不够用...
除了百度网盘,我们还可...
坐骨股骨撞击综合征的MRI...
iOS 可用的可换源小说阅读器
-
C 盘最恶心的四大害虫,随便一清就是几十个 G
2025-06-25 1239
-
微信必须关闭那些不该花钱的功能
2025-06-22 1210
-
如何删除电脑中超大文件
2021-10-27 647
-
将浏览器窗口变成简单的文本编辑器
2021-10-27 655
-
微信公众号推送模板消息
2024-12-07 1485
-
微信聊天记录迁移
2024-11-18 1465
-
最全ComfyUI资源整合:教程、插件、工作流(可免费体验)
2025-03-04 1652
-
ChromeAI – 无限量、离线使用的 Chrome Dev 内置 Gemini Nano 大语言模型
2024-07-03 1864
-
PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据
2025-04-07 1056
-
如何切割长图打印成 A4 尺寸?|99% 的人不知道的浏览器打印图片技巧
2024-07-03 2813
文章评论 (0)
- 这篇文章还没有收到评论,赶紧来抢沙发吧~


进入有缘空间
点击分享文章