lintcode-445-余弦相似度
445-余弦相似度
Cosine similarity is a measure of similarity between two vectors of an inner product space that measures the cosine of the angle between them. The cosine of 0° is 1, and it is less than 1 for any other angle.
See wiki: Cosine Similarity
Here is the formula:
Given two vectors A and B with the same size, calculate the cosine similarity.
Return 2.0000 if cosine similarity is invalid (for example A = [0] and B = [0]).样例
给出 A = [1, 2, 3], B = [2, 3 ,4].
返回 0.9926.
给出 A = [0], B = [0].
返回 2.0000
思路
按向量求余弦公式即可
code
class Solution {
public:
    /**
     * @param A: An integer array.
     * @param B: An integer array.
     * @return: Cosine similarity.
     */
    double cosineSimilarity(vector<int> A, vector<int> B) {
        // write your code here
        int sizeA = A.size(), sizeB = B.size();
        if (sizeA != sizeB) {
            return 0;
        }
        long long AB = 0, A2 = 0, B2 = 0;
        for (int i = 0; i < sizeA; i++) {
            AB += A[i] * B[i];
            A2 += A[i] * A[i];
            B2 += B[i] * B[i];
        }
        if (A2 != 0 && B2 != 0) {
            return (double)(AB / sqrt(A2) / sqrt(B2));
        }
        else {
            return (double)2;
        }
    }
};
lintcode-445-余弦相似度的更多相关文章
- 【Math】余弦相似度  和 Pearson相关系数
		http://cucmakeit.github.io/2014/11/13/%E4%BF%AE%E6%AD%A3%E4%BD%99%E5%BC%A6%E7%9B%B8%E4%BC%BC%E5%BA%A ... 
- 相似度度量:欧氏距离与余弦相似度(Similarity Measurement Euclidean Distance Cosine Similarity)
		在<机器学习---文本特征提取之词袋模型(Machine Learning Text Feature Extraction Bag of Words)>一文中,我们通过计算文本特征向量之间 ... 
- java算法(1)---余弦相似度计算字符串相似率
		余弦相似度计算字符串相似率 功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据 ... 
- 皮尔逊相关系数与余弦相似度(Pearson Correlation Coefficient & Cosine Similarity)
		之前<皮尔逊相关系数(Pearson Correlation Coefficient, Pearson's r)>一文介绍了皮尔逊相关系数.那么,皮尔逊相关系数(Pearson Corre ... 
- 两矩阵各向量余弦相似度计算操作向量化.md
		余弦相似度计算: \cos(\bf{v_1}, \bf{v_2}) = \frac{\left( v_1 \times v_2 \right)}{||v_1|| * ||v_2|| } \cos(\b ... 
- TF版本的Word2Vec和余弦相似度的计算
		前几天一个同学在看一段代码,内容是使用gensim包提供的Word2Vec方法训练得到词向量,里面有几个变量code.count.index.point看不懂,就向我求助,我大概给他讲了下code是哈 ... 
- Jackcard类似度和余弦类似度(向量空间模型)的java实现
		版权声明:本文为博主原创文章,地址:http://blog.csdn.net/napoay,转载请留言. 总结Jackcard类似度和余弦类似度. 一.集合的Jackcard类似度 1.1Jackca ... 
- 推荐系统之余弦相似度的Spark实现
		推荐系统之余弦相似度的Spark实现 (1)原理分析 余弦相似度度量是相似度度量中最常用的度量关系,从程序分析中, 第一步是数据的输入, 其次是使用相似性度量公式 最后是对不同用户的递归计算. ... 
- Python简单实现基于VSM的余弦相似度计算
		在知识图谱构建阶段的实体对齐和属性值决策.判断一篇文章是否是你喜欢的文章.比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知 ... 
- [DeeplearningAI笔记]序列模型2.3-2.5余弦相似度/嵌入矩阵/学习词嵌入
		5.2自然语言处理 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.3词嵌入的特性 properties of word embedding Mikolov T, Yih W T, Zwe ... 
随机推荐
- Python安装tesserocr遇到的各种问题及解决办法
			Tesseract的安装及配置 在Python爬虫过程中,难免遇到各种各样的验证码问题,最简单的就是这种验证码了,那么在遇到验证码的时候该怎么办呢?我们就需要OCR技术了,OCR-即Optical ... 
- mysql5.6搭建主从复制
			使用MySQL 5.6,搭建主从复制.关于5.6的安装,可以参考<MySQL 5.6 rpm安装方法和碰见的问题>. 主库创建slave用户,设置复制权限, mysql> cre ... 
- python学习之路-基本数据类型1 变量的概念、数字、字符串
			1 什么是数据类型? 每种编程语言都有自己的数据类型,用于标识计算机可以认识的数据,Python中主要的数据类型为字符串,整数,浮点数,列表,元祖,字典,集合七种主要的数据类型,其中以列表,字典为最主 ... 
- 20155203 实验一《Java开发环境的熟悉》实验报告
			20155203 实验一<Java开发环境的熟悉>实验报告 一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 二.练 ... 
- od源代码
			```/* od -- dump files in octal and other formats Copyright (C) 92, 1995-2002 Free Software Foundati ... 
- 20155331 2016-2017-2 《Java程序设计》第10周学习总结
			20155331 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就 ... 
- 【MongoDB】NoSQL Manager for MongoDB 教程(进阶篇)
			项目做完,有点时间,接着写下第二篇吧.回顾戳这里 基础篇:安装.连接mongodb.使用shell.增删改查.表复制 本文属于进阶篇,为什么叫进阶篇,仅仅是因为这些功能属于DB范畴,一般使用的不多, ... 
- python 逆波兰式
			逆波兰式,也叫后缀表达式 技巧:为简化代码,引入一个不存在的运算符#,优先级最低.置于堆栈底部 class Stack(object): '''堆栈''' def __init__(self): se ... 
- 【转载】值得推荐的C/C++框架和库
			原文:值得推荐的C/C++框架和库 值得学习的C语言开源项目 Libevent libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施.其以高效出名,它可以将IO事件,定时 ... 
- Jenkins Tomcat安装设置
			Jenkins Tomcat安装设置 以下为必须满足Jenkins Tomcat设置的先决条件. 第1步:验证安装Java 要验证Java安装,打开控制台并执行以下Java命令. OS 任务 命令 W ... 
 
			
		