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实现余弦相似度算法的基本过程。在实际应用中,我们可能还需要处理停用词、词干提取等更复杂的文本预处理任务。在提供的`py3-cosine-similiarity-master`压缩包中,可能会包含一个完整的...
在提供的压缩包文件"余弦相识度的计算"中,可能包含了具体的C#代码实现,你可以通过查看源码了解详细的实现过程,包括如何处理输入的文本数据,构建向量,以及如何计算余弦相似度。对于初学者来说,这是一个很好的...
5. **工具与源码**:标签提到的“源码”和“工具”,可能是指博主提供了用于计算余弦相似度的代码示例或者一个完整的工具包。`pictest.exe`可能是一个用于测试或演示该过程的可执行程序,用户可以输入图片并查看相似...
以下是关于Matlab、余弦相似度、图像匹配以及如何在Matlab中直接运行代码的详细解释。 首先,让我们理解什么是余弦相似度。余弦相似度是通过计算两个非零向量在多维空间中的夹角余弦值来衡量它们之间的相似性。夹角...
本文将详细介绍如何使用Python3实现文章的余弦相似度计算。 余弦相似度是通过计算两个非零向量在多维空间中的夹角余弦值来评估它们之间的相似程度。在文本分析中,向量可以表示为每个词在文集中出现的频率,即词频...
余弦相似度是一种在数据挖掘和机器学习领域中广泛使用的度量两个非零向量之间相似性的方法。它尤其在文本分析和信息检索中扮演着重要角色,因为这些领域经常处理高维空间中的数据,例如词袋模型或TF-IDF表示的文档。...
`ssim.py`可能包含了实现SSIM算法的代码,而`图片余弦相似度.py`则可能用于计算图像间的余弦相似度。这些代码通常会包含以下步骤: 1. 导入必要的库,如`numpy`、`scipy`或`skimage`。 2. 读取图像文件,可以使用`...
余弦相似度计算matlab代码计算余弦相似度 张伯超 该脚本将从免疫数据库中读取数据并计算不同特征样本之间的余弦相似度。 用法 -d name of database -s name of subject -f field of the columns used to separate ...
在提供的"php数据分析之余弦相似度实现函数类"文件中,应该包含了这个功能的PHP代码实现,通过导入并实例化该类,可以方便地在PHP项目中应用余弦相似度算法。记得在使用前检查代码质量,确保其兼容性和性能,同时...
在`cosine_similarity-master`这个压缩包中,可能包含了一个Go实现的余弦相似度库或者示例代码。通常,这样的库会提供一个函数,接受两个向量作为参数,并返回它们的余弦相似度。这个函数可能如下所示: ```go func...
"Java基于余弦方法实现的计算相似度算法示例" ...本文主要介绍了Java基于余弦方法实现的计算相似度算法,并提供了一个简单的示例代码。通过这种算法,我们可以计算两个字符串之间的相似度,从而应用于文件比较等领域。
推荐系统的实现不仅仅局限于余弦相似度计算。在实际应用中,还需要考虑到用户的历史偏好、当前环境、实时反馈等多方面因素,以及推荐算法的优化和模型的评估。因此,除了数据集和余弦相似度,项目还可能涉及到机器...
在IT领域,尤其是在数据分析和机器学习中,余弦相似度是一种常用的距离度量方式,用于衡量两个非零向量之间的角度,从而判断它们在多大程度上指向相同的方向。在这个场景中,我们讨论的是如何在PHP中计算两个one-hot...
在这个项目中,我们首先会对原始文本数据进行jieba分词,构建出文档的词频向量表示,然后利用余弦相似度计算查询向量与文档向量之间的相似度,从而实现高效且准确的文本检索。通过不断优化分词策略和调整相似度阈值...
5. **计算相似度**:根据比较结果,使用合适的相似度度量(如Jaccard相似度、余弦相似度等)来得出相似度分数。 在实际应用中,可能还需要考虑其他因素,例如代码的上下文和函数调用关系。此外,为了提高效率,可以...
文中还提供了详细的Python代码实现,包括特征电压构造、模式数据库构建、余弦相似度计算和分类主函数等。此外,文章还讨论了该方法在实际工程中的应用,如实时处理优化、噪声处理、多阶段暂降处理和阈值设置建议等,...
此外,文章强调了该系统在提高用户点单量方面的显著效果,并提供了具体的代码实现。 适合人群:具有一定编程基础的数据分析师、机器学习爱好者、软件开发者。 使用场景及目标:适用于餐饮行业,特别是中小型餐厅或...
在推荐系统中,通过计算用户与物品之间的余弦相似度,可以找出用户可能感兴趣的未知物品,从而实现推荐的目的。 首先,我们来理解余弦相似度的基本概念。在二维或高维空间中,两个向量的余弦相似度是它们的夹角的...