余弦算法nodejs实现

// 载入模块
var Segment = require('segment');
// 创建实例
var segment = new Segment();
// 使用默认的识别模块及字典,载入字典文件需要1秒,仅初始化时执行一次即可
segment.useDefault();

// 开始分词

var str_total = [];

var str1 = segment.doSegment('我是一个人', {stripPunctuation: true});
str1.forEach(function(single_random){

console.log(single_random);
console.log(single_random.w);

if(str_total.indexOf(single_random.w)<0)
    str_total.push(single_random.w);

});

console.log('中国人');

var str2 = segment.doSegment('我不是人', {stripPunctuation: true});
str2.forEach(function(single_random){
console.log(single_random);
console.log(single_random.w);

if(str_total.indexOf(single_random.w)<0)
    str_total.push(single_random.w);

});

console.log(str_total);

str1_frequency = [];
str2_frequency = [];
for (var i=0;i<str_total.length;i++)
{
str1_frequency[i] = 0;
str2_frequency[i] = 0;
}

console.log(str1_frequency);
console.log(str2_frequency);

str1.forEach(function(single_random){

var index = str_total.indexOf(single_random.w);
//console.log(index);
if(index >=0)
    str1_frequency[index] = str1_frequency[index] + 1;

});

str2.forEach(function(single_random){

var index = str_total.indexOf(single_random.w);
//console.log(index);
if(index >=0)
    str2_frequency[index] = str2_frequency[index] + 1;

});
console.log(str1_frequency);
console.log(str2_frequency);

var fenzi = 0;
var fenmu1 = 0;
var fenmu2 = 0;
for (var i=0;i<str_total.length;i++)
{
fenzi += str1_frequency[i] * str2_frequency[i];
fenmu1 += str1_frequency[i] * str1_frequency[i];
fenmu2 += str2_frequency[i] * str2_frequency[i];

}
console.log(fenzi);
console.log(fenmu1);
console.log(fenmu2);
fenmu1 = Math.sqrt(fenmu1);
fenmu2 = Math.sqrt(fenmu2);
console.log(fenmu1);
console.log(fenmu2);

var result = fenzi/(fenmu1 * fenmu2);
console.log(result);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • 今天开完党员会议回来想到做一下成绩的数据分析,于是从晚上8点左右在电脑前坐到了这会儿,22:30!都快被自己感动哭...
    Lynn欧尼阅读 1,670评论 0 0
  • 最初的最初,我们都曾活在属于自己的一片净土之上,可是最后的最后,有的人坚守,有的人却随波逐流,慢慢的走在了与别人同...
    雁呢喃阅读 6,563评论 0 5
  • 学习英语一定不会是一蹴而就的,需要时间,而找对了方向就一定可以让自己少走弯路,节省时间。学习语言,学习一门外语,一...
    JasonEnglish阅读 2,823评论 0 0

友情链接更多精彩内容