`
hlzhou
  • 浏览: 111618 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

余弦相似度 代码实现

 
阅读更多
package hlzhou;

import java.util.ArrayList;
import java.util.List;

public class ComputerDecision {

	List<Integer> vector1 = new ArrayList<Integer>();
	List<Integer> vector2 = new ArrayList<Integer>();

	public ComputerDecision(String string1, String string2) {
		//把输入字符串中多个空格变为一个
		String[] vector1String = string1.trim().replaceAll("\\s+", " ").split(" ");
		String[] vector2String = string2.trim().replaceAll("\\s+", " ").split(" ");

		for (String string : vector1String) {
			vector1.add(Integer.parseInt(string));
		}
		for (String string : vector2String) {
			vector2.add(Integer.parseInt(string));
		}
	}

	// 求余弦相似度
	public double sim() {
		double result = 0;
		result = pointMulti(vector1, vector2) / sqrtMulti(vector1, vector2);

		return result;
	}

	private double sqrtMulti(List<Integer> vector1, List<Integer> vector2) {
		double result = 0;
		result = squares(vector1) * squares(vector2);
		result = Math.sqrt(result);
		return result;
	}

	// 求平方和
	private double squares(List<Integer> vector) {
		double result = 0;
		for (Integer integer : vector) {
			result += integer * integer;
		}
		return result;
	}

	// 点乘法
	private double pointMulti(List<Integer> vector1, List<Integer> vector2) {
		double result = 0;
		for (int i = 0; i < vector1.size(); i++) {
			result += vector1.get(i) * vector2.get(i);
		}
		return result;
	}
	
	public static void main(String[] args) {

		String string = "0 0 1 1 1 1 1 1  0 0 0 0 0 0 0 0 1 1 1 0 0 0";
		String string2 = "0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0";
		ComputerDecision computerDecition = new ComputerDecision(string,
				string2);
		System.out.println(computerDecition.sim());
	}
}
 
分享到:
评论

相关推荐

    余弦相似度计算代码

    ### 余弦相似度计算代码解析 #### 一、引言 余弦相似度是一种用于衡量两个非零向量之间角度的度量方法,广泛应用于信息检索、文本挖掘、推荐系统等领域。它通过计算两个向量之间的夹角余弦值来评估它们之间的相似...

    Python代码实现 余弦相似度(文本相似度算法)

    余弦相似度算法

    余弦相似度算法实现

    在提供的压缩包文件"余弦相识度的计算"中,可能包含了具体的C#代码实现,你可以通过查看源码了解详细的实现过程,包括如何处理输入的文本数据,构建向量,以及如何计算余弦相似度。对于初学者来说,这是一个很好的...

    (python)使用余弦相似度算法计算两个文本的相似度的简单实现

    以上代码展示了如何用Python实现余弦相似度算法的基本过程。在实际应用中,我们可能还需要处理停用词、词干提取等更复杂的文本预处理任务。在提供的`py3-cosine-similiarity-master`压缩包中,可能会包含一个完整的...

    机器学习-余弦相似度计算图片相似性

    5. **工具与源码**:标签提到的“源码”和“工具”,可能是指博主提供了用于计算余弦相似度的代码示例或者一个完整的工具包。`pictest.exe`可能是一个用于测试或演示该过程的可执行程序,用户可以输入图片并查看相似...

    Matlab余弦相似度算法判断图片相似度并识别源代码

    以下是关于Matlab、余弦相似度、图像匹配以及如何在Matlab中直接运行代码的详细解释。 首先,让我们理解什么是余弦相似度。余弦相似度是通过计算两个非零向量在多维空间中的夹角余弦值来衡量它们之间的相似性。夹角...

    Python-Python3实现的文章余弦相似度计算

    本文将详细介绍如何使用Python3实现文章的余弦相似度计算。 余弦相似度是通过计算两个非零向量在多维空间中的夹角余弦值来评估它们之间的相似程度。在文本分析中,向量可以表示为每个词在文集中出现的频率,即词频...

    2.9.5 余弦相似度-明鉴1

    余弦相似度是一种在数据挖掘和机器学习领域中广泛使用的度量两个非零向量之间相似性的方法。它尤其在文本分析和信息检索中扮演着重要角色,因为这些领域经常处理高维空间中的数据,例如词袋模型或TF-IDF表示的文档。...

    余弦相似度和ssim值_imageprocessing_

    `ssim.py`可能包含了实现SSIM算法的代码,而`图片余弦相似度.py`则可能用于计算图像间的余弦相似度。这些代码通常会包含以下步骤: 1. 导入必要的库,如`numpy`、`scipy`或`skimage`。 2. 读取图像文件,可以使用`...

    余弦相似度计算matlab代码-cosineSimilarity:计算隔间之间的余弦相似度

    余弦相似度计算matlab代码计算余弦相似度 张伯超 该脚本将从免疫数据库中读取数据并计算不同特征样本之间的余弦相似度。 用法 -d name of database -s name of subject -f field of the columns used to separate ...

    php数据分析之余弦相似度实现函数类.zip

    在提供的"php数据分析之余弦相似度实现函数类"文件中,应该包含了这个功能的PHP代码实现,通过导入并实例化该类,可以方便地在PHP项目中应用余弦相似度算法。记得在使用前检查代码质量,确保其兼容性和性能,同时...

    cosine_similarity:Go (Golang) 中余弦相似度的实现

    在`cosine_similarity-master`这个压缩包中,可能包含了一个Go实现的余弦相似度库或者示例代码。通常,这样的库会提供一个函数,接受两个向量作为参数,并返回它们的余弦相似度。这个函数可能如下所示: ```go func...

    Java基于余弦方法实现的计算相似度算法示例

    "Java基于余弦方法实现的计算相似度算法示例" ...本文主要介绍了Java基于余弦方法实现的计算相似度算法,并提供了一个简单的示例代码。通过这种算法,我们可以计算两个字符串之间的相似度,从而应用于文件比较等领域。

    测量两个向量之间的余弦相似度_PHP_代码_相关文件_下载

    在IT领域,尤其是在数据分析和机器学习中,余弦相似度是一种常用的距离度量方式,用于衡量两个非零向量之间的角度,从而判断它们在多大程度上指向相同的方向。在这个场景中,我们讨论的是如何在PHP中计算两个one-hot...

    人工智能-项目实践-搜索引擎-jieba分词+余弦相似度原理的搜索引擎

    在这个项目中,我们首先会对原始文本数据进行jieba分词,构建出文档的词频向量表示,然后利用余弦相似度计算查询向量与文档向量之间的相似度,从而实现高效且准确的文本检索。通过不断优化分词策略和调整相似度阈值...

    c++程序实现c++代码相似度计算

    5. **计算相似度**:根据比较结果,使用合适的相似度度量(如Jaccard相似度、余弦相似度等)来得出相似度分数。 在实际应用中,可能还需要考虑其他因素,例如代码的上下文和函数调用关系。此外,为了提高效率,可以...

    余弦相似度推荐系统:基于余弦相似度的数学原理,使用静态数据构建简单的推荐系统

    在推荐系统中,通过计算用户与物品之间的余弦相似度,可以找出用户可能感兴趣的未知物品,从而实现推荐的目的。 首先,我们来理解余弦相似度的基本概念。在二维或高维空间中,两个向量的余弦相似度是它们的夹角的...

    实现一个电影推荐系统,采用协同过滤算法,相似度算法为余弦相似度.zip

    本项目实现了一个基于协同过滤的电影推荐系统,使用了余弦相似度作为相似性计算方法,并选择了经典的MovieLens数据集进行实验。 协同过滤是一种常用的推荐系统算法,分为用户-用户协同过滤和物品-物品协同过滤两种...

    毕业设计,一个饭店管理系统,亮点是用余弦相似度算法写了个推荐菜的功能.zip

    本项目是一个饭店管理系统,其中的亮点在于引入了余弦相似度算法来实现推荐菜品的功能。这个系统不仅能满足基本的饭店管理需求,如订单处理、库存管理等,还通过智能推荐系统提升了用户体验,为用户带来个性化服务。...

    一个饭店管理系统源码,亮点是用余弦相似度算法写了个推荐菜的功能(毕设).zip

    3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 一个饭店管理系统源码,亮点是用余弦相似度算法写了个推荐菜的功能(毕设).zip # GraduationProject 本科时做的毕业...

Global site tag (gtag.js) - Google Analytics