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

网站建设技术团队经验丰富网站怎么做双语种

网站建设技术团队经验丰富,网站怎么做双语种,两个网站链接如何做,维普网论文收录查询需求 **文本推荐:**有多个文本字符串,如何设计一个简单的统计方法(从词频的角度设计),来计算出多个文本字符串两两之间的相似度,并输出大于指定相似度阈值的文本 分析理解 使用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/297809/

相关文章:

  • 青岛快速网站排名wordpress单页面
  • 学院网站设计流程融资计划书
  • 怎样做企业的网站首页百度正版下载并安装
  • 黔东南建设厅官方网站重庆网站设计定制
  • 佛山小企业网站建设大连网站开发公司电话
  • 大型的建设工程类考试辅导网站网站建设 美食站点
  • 上海好的网站有哪些网页设计教程安利 杨松
  • 免费做相册video的网站网络运营商无服务是怎么回事
  • 温州网站推广价钱河南安阳市房价
  • 邳州网站制作创办一个网站要多少钱
  • 建设企业网站哪个好电子商务行业网站
  • 营销网站设计公司有哪些看风格的网站
  • 做网站 徐州嵌入式软件开发公司
  • 廊坊网站推广公司查询网全国企业信息查询官网
  • 十八个免费的舆情网站西安晨曦e动网站建设
  • 机械网站开发郑州企业网站制作
  • 网站大全免黄求个网站2022
  • 建设环境工程技术中心网站做网站好还是网店
  • 网站开发甘特图公司网站首页怎么做
  • 怎么在文档中做网站一点就开网站建设需求列表
  • 深圳优定软件网站建设wordpress高级主题
  • 聊城集团网站建设费用小程序制作 相册
  • 云梦网站开发做注册任务的网站有哪些
  • 网站建设怎么比较安全多用户商城app
  • 网站前端开发流程今天最新军事新闻
  • 企业网站建设设计公司合肥网站建设解决方案
  • 建设网站的体会开发定制软件开发
  • 建设网站 托管 费用在putty上怎样安装wordpress
  • 代人做网站北京网站优化服务商
  • 网站建设与维护是什么网页模板素材照片