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

建设网站公司谁家好ps网站怎么做超链接

建设网站公司谁家好,ps网站怎么做超链接,中国室内设计装饰协会,河南红旗渠建设集团网站需求 **文本推荐:**有多个文本字符串,如何设计一个简单的统计方法(从词频的角度设计),来计算出多个文本字符串两两之间的相似度,并输出大于指定相似度阈值的文本 分析理解 使用Java实现文本相似度计算的…

需求

**文本推荐:**有多个文本字符串,如何设计一个简单的统计方法(从词频的角度设计),来计算出多个文本字符串两两之间的相似度,并输出大于指定相似度阈值的文本

分析理解

使用Java实现文本相似度计算的一种方法是通过构建词频向量并计算余弦相似度,具体介绍如下,简单易懂
在这里插入图片描述
在这里插入图片描述

代码实现

复杂粘贴可以直接运行

        <!--  使用HanLP进行分词  --><dependency><groupId>com.hankcs</groupId><artifactId>hanlp</artifactId><version>portable-1.8.4</version></dependency>
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
import java.util.*;
import java.util.stream.Collectors;public class ChineseTextRecommender {// 使用HanLP进行中文分词// 构建词频向量// 假设我们有两个文本文档,我们想衡量它们的主题相似性。每个文档可以被表示为一个向量,其中包含词频(TF)或TF-IDF值。// 文档A: "the cat sat on the mat on the mat"// 文档B: "the cat and the dog played"// 我们选择几个关键词:"the", "cat", "sat", "on", "mat", "and", "dog", "played"。每个词在文档中出现的次数(词频)可以构成一个向量。// 向量A: [2, 1, 1, 1, 2, 0, 0, 0]("the", "cat", "sat", "on", "mat", "and", "dog", "played")// 向量B: [1, 1, 0, 0, 0, 1, 1, 1]public static Map<String, Integer> buildTermVector(String text) {List<String> words = StandardTokenizer.segment(text).stream().map(term -> term.word).collect(Collectors.toList());Map<String, Integer> termVector = new HashMap<>();for (String word : words) {termVector.put(word, termVector.getOrDefault(word, 0) + 1);}return termVector;}// 计算余弦相似度public static double cosineSimilarity(Map<String, Integer> vectorA, Map<String, Integer> vectorB) {double dotProduct = 0.0;double normA = 0.0;double normB = 0.0;for (String key : vectorA.keySet()) {dotProduct += vectorA.get(key) * (vectorB.getOrDefault(key, 0));normA += Math.pow(vectorA.get(key), 2);}for (String key : vectorB.keySet()) {normB += Math.pow(vectorB.get(key), 2);}if (normA == 0 || normB == 0) {return 0.0;}return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));}// 推荐与指定文本相似度高的文本 texts为待判断文本列表public static List<String> recommendTexts(List<String> texts, String targetText, double threshold) {Map<String, Double> similarityScores = new HashMap<>();Map<String, Integer> targetVector = buildTermVector(targetText);for (String text : texts) {Map<String, Integer> textVector = buildTermVector(text);double similarity = cosineSimilarity(targetVector, textVector);similarityScores.put(text, similarity);System.out.println(text + " ----Similarity: " + similarity);}return similarityScores.entrySet().stream().filter(entry -> entry.getValue() >= threshold).map(Map.Entry::getKey).collect(Collectors.toList());}public static void main(String[] args) {// 相似度分别为0.91 0.59 0.54 0.799 0.791List<String> texts = Arrays.asList("这是一个测试文档吗", "这是第二个文档", "这是第三个文档","这是一个文档吗","这是第一个测试文档吧哈哈");String targetText = "这是一个测试文档";double threshold = 0.8; // 理论上,阈值在0.5左右都可以接受List<String> recommendedTexts = recommendTexts(texts, targetText, threshold);System.out.println("推荐文本:");recommendedTexts.forEach(System.out::println);}
}

输出结果

在这里插入图片描述

http://www.yayakq.cn/news/288459/

相关文章:

  • 北京城乡与建设厅官方网站查询重庆网站推广服务
  • 网站开发的比较专业互联网软件开发
  • 如何开网店要多少钱51趣优化网络seo工程师教程
  • wordpress案例站点网站制作济南
  • 广东水利建设与管理信息网站做培训的网站建设
  • 网站前台设计教程照片管理网站模板
  • 营销软文范例大全300鹤壁seo推广
  • 网站建设的公司怎么收费全包圆装修400电话怎么打
  • 广州网站建设技术东莞网站推广哪里找
  • 域名建设好了怎么在建设网站页游大全
  • 免费注册个人邮箱申请seo海外运营
  • 制作公司网站怎样收费网站招商页面怎么做
  • 顺德网站建设基本流程国内设计大神网站
  • 网站站内消息设计方案成都优化教育百度推广
  • 公司做网站的优势温岭网站设计
  • linux 做网站安全生产规章制度建筑公司网站
  • 网站挂广告网络营销的主要内容有哪些
  • 企业建个网站要多少钱中国建设银行手机银行官网
  • 域名只做邮箱没网站要备案吗舟山公司网站建设
  • 网站做ddns解析余姚网站建设的公司
  • 国外html5做的音乐网站潍坊企业建站系统
  • 使用apmserv本地搭建多个网站网络营销推广专家
  • 长沙专业做网站公司邯郸网站开发公司
  • 北京php培训网站建设html5是什么意思
  • 最新新闻热点事件2023长沙网站优化分析
  • 西安企业建站公司网站地图制作
  • 网站建设基础流程摘要不拦截网站的浏览器
  • 快速建站公司是干嘛的图书馆建设网站注意点
  • 龙泉建设有限公司网站网站换空间怎么换
  • 网站首页被k咋办wordpress段代码