NodeJs文本相似度去重脚本
25-04-07 05:09
841
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"); });
-
批量修改文件后缀名工具
文件的后缀名是指文件名中最后一个点(.)后面的字符序列,通常用于标识文件的类型或格式。例如,对于文件名“example.docx”,“.docx”就... 1350 0 24-06-01 -
c++之按序列反转链表
int main() { ListNode *p0 = new ListNode(0); ListNode *p1 = new ListNode(1); ListNode ... 1035 0 25-04-08 -
网页上传图片需要旋转的问题
网页上传的图片或者查看图片的时候,会出现图片倒过来的情况,对用户体验超级不好。所以我们需要根据图片的需要,对图片进行旋转的操作。以... 594 0 24-04-23 -
如何用 JS 实现各种数组排序
数组排序是你在 JavaScript 的编程过程中经常会遇到的,也是大厂面试中会考察的,尤其是调用 sort 方法,不过今天我们主要围绕数据结构... 1126 0 24-05-24 -
微信支付后端示例php
商户系统和微信支付系统主要交互:1、小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API】2、商户server调用支付统... 803 0 24-10-31 -
电脑PC单机游戏下载网站合集
正版游戏不是去官网下,就是在各大游戏平台下,简单说就是在哪买就在哪下正版游戏平台国内游戏平台腾讯 WeGame:https://www.wegame.com.c... 656 0 25-03-10 -
sketchup 模型合集skp
720 0 24-03-02 -
Python 爬虫开发与项目实战
本书结构本书总共分为三个部分:基础篇、中级篇和深人篇。基础篇包括第1~7章,主要讲解了什么是网络爬虫、如何分析静态网站、如何开发一个完... 914 0 24-05-29
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~