当前位置: 首页 > news >正文

计算文章的相似度

1. 基于余弦相似度的文本相似度计算

java

import java.util.*;
import java.util.regex.Pattern;public class TextSimilarity {/*** 文本向量化 - 使用词频(TF)*/public static Map<String, Integer> getWordFrequency(String text) {Map<String, Integer> frequencyMap = new HashMap<>();// 简单的分词和清洗String[] words = text.toLowerCase().split("\\W+");for (String word : words) {if (word.length() > 1) { // 过滤掉单字符frequencyMap.put(word, frequencyMap.getOrDefault(word, 0) + 1);}}return frequencyMap;}/*** 计算余弦相似度*/public static double cosineSimilarity(String text1, String text2) {Map<String, Integer> freq1 = getWordFrequency(text1);Map<String, Integer> freq2 = getWordFrequency(text2);// 获取所有词汇Set<String> allWords = new HashSet<>();allWords.addAll(freq1.keySet());allWords.addAll(freq2.keySet());// 计算向量点积double dotProduct = 0;for (String word : allWords) {int count1 = freq1.getOrDefault(word, 0);int count2 = freq2.getOrDefault(word, 0);dotProduct += count1 * count2;}// 计算向量模长double norm1 = 0;for (int count : freq1.values()) {norm1 += count * count;}norm1 = Math.sqrt(norm1);double norm2 = 0;for (int count : freq2.values()) {norm2 += count * count;}norm2 = Math.sqrt(norm2);if (norm1 == 0 || norm2 == 0) {return 0.0;}return dotProduct / (norm1 * norm2);}
}

2. 使用Jaccard相似度

java

public class JaccardSimilarity {/***
http://www.dtcms.com/a/573494.html

相关文章:

  • 网络通信的奥秘:HTTP详解 (六)
  • 郴州网站建设设计网站开发工程师职位概要
  • 夸克网盘下载速度几十KB怎么解决?- 在线免费工具
  • 如何搭建自己的交易系统
  • 分苹果问题
  • 2025年人工智能领域五大认证体系全景解析与选择策略
  • 人工智能导论(期末复习)
  • 怎么用软件做原创视频网站dw个人网站设计模板
  • Linux 安装 Elasticsearch:避坑指南 + 性能调优实战
  • 测开学习DAY23
  • 站长之家域名信息查询微信店铺怎么开
  • 复盘Netflix的2025:广告业务、线下业态和视频播客
  • AI生成音频:技术概述与实践指南
  • 使用expo打包react native项目时候报错Failed to upload the project tarball to EAS Build
  • think-cell 无法与 WPS Office 搭配使用
  • Maleimido-mono-amide-DOTA,1006711-90-5功能特性与核心优势
  • 网站建设捌金手指花总二用别人代码搭建网站
  • 【萌笔趣棋】项目开发
  • CSS Float(浮动)详解
  • T41LQ 一款高性能、低功耗的系统级芯片(SoC) 适用于各种AIoT应用智能安防、智能家居方案优选T41L
  • 北京网站手机站建设公司电器 东莞网站建设
  • 重庆最专业的房产网站建设淮北建设工程交易中心
  • 云浮哪有做网站公司wordpress内容只有自已可见
  • 6.游戏逆向-pxxx-GName加密算法(解密)
  • ComfyUI-RyanOnTheInside:开启ComfyUI动态交互创作新时代
  • JavaEE初阶,网络原理HTTP报头篇
  • 数据科学每日总结--Day11--区块链
  • 【腾讯拥抱开源】KaLM-Embedding-Gemma3-12B-2511:一款基于谷歌Gemma的特征提取模型
  • 南阳seo网站建设费用学ps有用还是网页制作
  • 疫苗最新官方消息优化大师有必要安装吗