用node写计算两个文本之间的相似度的代码
时间: 2024-02-29 10:51:15 浏览: 64
(python)使用余弦相似度算法计算两个文本的相似度的简单实现
5星 · 资源好评率100%
以下是用Node.js实现余弦相似度算法和Jaccard相似度算法的代码:
```javascript
// 引入mathjs和jaccard模块
const math = require('mathjs');
const jaccard = require('jaccard');
// 余弦相似度算法函数
function cosineSimilarity(text1, text2) {
// 将文本转化为向量表示
const vec1 = text1.split(' ');
const vec2 = text2.split(' ');
// 计算余弦相似度
const similarity = math.dot(vec1, vec2) / (math.norm(vec1) * math.norm(vec2));
return similarity;
}
// Jaccard相似度算法函数
function jaccardSimilarity(text1, text2) {
// 将文本转化为词集合
const set1 = new Set(text1.split(' '));
const set2 = new Set(text2.split(' '));
// 计算Jaccard相似度
const similarity = jaccard.index(set1, set2);
return similarity;
}
// 测试代码
const text1 = 'hello world';
const text2 = 'world hello';
const similarity1 = cosineSimilarity(text1, text2);
const similarity2 = jaccardSimilarity(text1, text2);
console.log(`余弦相似度:${similarity1}`);
console.log(`Jaccard相似度:${similarity2}`);
```
在测试代码中,我们分别测试了余弦相似度和Jaccard相似度算法的效果,输出了相似度的结果。需要注意的是,以上代码只是示例,实际使用时可能需要根据具体情况进行调整和优化。
阅读全文