NodeJs文本相似度去重脚本
25-04-07 05:09
950
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"); });
-
2012语文专业教师招聘试题
【豆丁★教育百科】2007郑州教师入编考试试题.doc【豆丁★教育百科】2008年云南招聘小学语文教师考试试卷.txt【豆丁★教育百科】2009天心区... 876 0 24-08-20 -
教师招聘面试秘籍资料 -- 面试题
【豆丁★教育百科】(打印)2011年教师招聘考试面试答辩题目精选.doc【豆丁★教育百科】(打印)教师招聘的二十个面试题.doc【豆丁★教育百科】... 1029 0 24-08-19 -
LingoHut 一个可以学习全球45种语言的网站,还承诺永久免费
LingoHut是一个国外非常有名的免费语言学习网站,上面提供了45种语言,完全不用担心学不下去。它里面有很好玩的互动游戏,让你保持热情... 1008 0 25-07-17 -
Sci-Hub 国外论文下载
作为世界上第一家大规模访问的论文免费下载网站,SCI-HUB库中的论文已然超过8479万,并且目前仍在不断的增长之中。谈及文献下载,就会马上... 1672 0 24-07-23 -
冬天到了,如何让自己坚持跑步
天气越来越冷了,已经坚持了一周的你,是否想要放弃跑步计划呢?这里有一些技巧可以帮你克服这个困难坚持下去。1.设定你的目标——你要设定... 926 0 25-03-03 -
当当断网急救箱1.0
当当断网急救箱官方版是一款十分专业出色的断网急救箱软件,当当断网急救箱官方版界面简洁大方,功能出色实用,能够帮助大家轻松快捷的解决... 988 0 25-05-06 -
菜鸟 8.7.150去广告精简版
菜鸟裹裹app已正式更名为菜鸟app,软件是一个提供了超多服务功能的应用,包含了快速下单,订单追踪,自助服务,简化支付功能,物品保价和售... 778 0 25-05-15 -
美食菜谱小程序
对于那些不会做菜的人来说,要想自己做一顿美味佳肴,就需要花费很多时间。但是如果有了小程序,这些时间就可以节省下来了。我们可以在小程... 1220 0 24-09-04
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~