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

文本相似度方案

文章目录

  • SequenceMatcher
  • 余弦相似度
  • 基于逆向文档频率向量化

SequenceMatcher

from difflib import SequenceMatcher s1 = "1.2 章节标题【abc】"
s2 = "1.2 章节标题【abc】、【she】、【this】"
SequenceMatcher(None, s1, s2).ratio()
# 0.6666666666666666

 

余弦相似度

  1. 文本向量化
import jieba  # 分词库# 基于词频的向量化
s1_list = list(jieba.cut(s1))
# ['1.2', ' ', '章节', '标题', '【', 'abc', '】']s2_list = list(jieba.cut(s2))
# ['1.2', ' ', '章节', '标题', '【', 'abc', '】', '、', '【', 'she', '】', '、', '【', 'this', '】']# 统计语料库
corpus = set(s1_list) | set(s2_list)
# {' ', '1.2', 'abc', 'she', 'this', '、', '【', '】', '标题', '章节'}# 文档词频统计
arr1 = np.array([s1_list.count(i) for i in corpus])
# array([0, 1, 1, 1, 0, 0, 1, 1, 1, 1])arr2 = np.array([s2_list.count(i) for i in corpus])
# array([2, 1, 1, 1, 1, 1, 1, 1, 3, 3])
  1. 计算cosine_theta值
from sklearn.metrics.pairwise import cosine_similarity# 计算余弦相似度
score = cosine_similarity(arr1.reshape(1, -1), arr2.reshape(1, -1))
# array([[0.77204865]])

可以看出余弦相似度比普通的SequenceMatcher具有更好的效果。

 

基于逆向文档频率向量化

 ss1 = " ".join(s1_list)In [42]: ss1
Out[42]: '1.2   章节 标题 【 abc 】'In [43]: ss2 = " ".join(s2_list)In [44]: ss2
Out[44]: '1.2   章节 标题 【 abc 】 、 【 she 】 、 【 this 】'In [45]: from sklearn.feature_extraction.text import TfidfVectorizerIn [46]: vector = TfidfVectorizer()In [47]: r = vector.fit_transform([ss1, ss2])In [48]: r
Out[48]: 
<2x5 sparse matrix of type '<class 'numpy.float64'>'with 8 stored elements in Compressed Sparse Row format>In [49]: r.toarray()
Out[49]: 
array([[0.57735027, 0.        , 0.        , 0.57735027, 0.57735027],[0.37930349, 0.53309782, 0.53309782, 0.37930349, 0.37930349]])In [50]: rr = r.toarray()In [51]: r
Out[51]: 
<2x5 sparse matrix of type '<class 'numpy.float64'>'with 8 stored elements in Compressed Sparse Row format>In [52]: rr
Out[52]: 
array([[0.57735027, 0.        , 0.        , 0.57735027, 0.57735027],[0.37930349, 0.53309782, 0.53309782, 0.37930349, 0.37930349]])

相关文章:

文本相似度方案

文章目录 SequenceMatcher余弦相似度基于逆向文档频率向量化 SequenceMatcher from difflib import SequenceMatcher s1 "1.2 章节标题【abc】" s2 "1.2 章节标题【abc】、【she】、【this】" SequenceMatcher(None, s1, s2).ratio() # 0.6666666666666…...

appium 的工作原理

** 安卓&#xff1a; ** 1.1 appuim 基于 uiautomator2 的原理 appium 服务启动后默认在 4723 端口上创建一个 http 服务&#xff0c;脚本通过服务地址 http://xxxx:4723/wd/hub 和 appium 进行通信 在 初 始 化 脚 本 和 appium 连 接 的 过 程 中 appium 会 向 手 机 就 …...

ECharts饼图-富文本标签,附视频讲解与代码下载

引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个饼图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#xff0c;我还将提供详…...

关于在windows10系统64位安装luasocket问题

luarocks install luasocket 原本以为按下enter键就会一帆风顺&#xff1a;结果事事出人意料之外。 C:\Users\40341>luarocks install luasocket Installing https://luarocks.org/luasocket-3.1.0-1.src.rockluasocket 3.1.0-1 depends on lua > 5.1 (5.4-1 provided …...

模型拆解(二):GeleNet

文章目录 一、GeleNet1.1编码器&#xff1a;PVT-v2-b21.3D-SWSAM&#xff1a;方向-置换加权空间注意力模块1.4KTM&#xff1a;知识转移模块1.5解码器模块 一、GeleNet 论文&#xff1a;Salient Object Detection in Optical Remote Sensing Images Driven by Transformer&#…...

RTE 2024 隐藏攻略

大家好&#xff01;想必今年 RTE 大会议程大家都了解得差不多了&#xff0c;这将是一场实时互动和多模态 AI builder 的年度大聚会。 大会开始前&#xff0c;我们邀请了参与大会策划的 RTE 开发者社区和超音速计划的成员们&#xff0c;分享了不同活动的亮点和隐藏攻略。 请收…...

django 部署服务器后 CSS 样式丢失的问题

原因&#xff1a; nginx除了提供反向代理&#xff0c;负载均衡以外&#xff0c;还提供了静&#xff08;html, css, js&#xff09;动&#xff08;视图&#xff0c;模板需要进行解析执行的&#xff0c;或者操作数据库的&#xff09;分离的功能。 原本django项目中的静态资源存…...

基于springboot的网上服装商城推荐系统的设计与实现

基于springboot的网上服装商城推荐系统的设计与实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;idea 源码获取&#xf…...

盘古信息IMS系统助力制造企业释放新质生产力

在全球制造业竞争日益激烈的背景下&#xff0c;提升新质生产力已成为制造企业普遍追求的核心目标。因此&#xff0c;众多制造企业开始对生产流程、管理模式乃至整个企业生态系统进行全面的优化与升级&#xff0c;以期在市场竞争中占据优势地位&#xff0c;迎来更广阔的发展空间…...

ArcGIS 10.8 安装教程

目录 一、ArcGIS10.8二、安装链接三、安装教程四、ArcGIS实战 &#xff08;一&#xff09;ArcGIS10.8 1. 概述 ArcGIS 10.8是由美国Esri公司开发的GIS平台&#xff0c;用于处理、分析、显示和管理地理数据&#xff0c;并实现数据共享。它具有新特性和功能&#xff0c;性能更…...

Redis学习笔记(二)--Redis的安装与配置

文章目录 一、Redis的安装1、克隆并配置主机2、安装前的准备工作1.安装gcc2.下载Redis3.上传到Linux 3、安装Redis1.解压Redis2.编译3.安装3.查看bin目录 4、Redis启动与停止1.前台启动2.命令式后台启动3.Redis的停止4.配置式后台启动 二、连接前的配置1、绑定客户端IP2、关闭保…...

软件工程之软件系统设计与软件开发方法

一.软件系统设计 1.体系结构设计就是架构设计&#xff0c;软件设计包含4个方面&#xff1a; 接口&#xff08;人机界面设计&#xff09;设计&#xff1a;软件与操作系统、软件与人之间如何交互&#xff1b; 架构&#xff08;结构&#xff09;设计&#xff1a;定义软件系统各…...

pip命令行安装pytest 一直报错

其实就是切换不同镜像安装 我最终成功的是阿里云镜像 pip install --trusted-host mirrors.aliyun.com pytest 也可以用其他的 pip install -i https://pypi.org/simple pytest # 或者使用其他的镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest...

如何在Debian操作系统上安装Doker

本章教程&#xff0c;主要介绍如何在Debian 11 系统上安装Docker。主要使用一键安装Docker脚本和一键卸载脚本来完成。 一、安装Docker #!/bin/bashRED\033[0;31m GREEN\033[0;32m YELLOW\033[0;33m BLUE\033[0;34m NC\033[0mCURRENT_DIR$(cd "$(dirname "$0")…...

代码随想录刷题学习日记

仅为个人记录复盘学习历程&#xff0c;解题思路来自代码随想录 代码随想录刷题笔记总结网址:代码随想录 二叉树的迭代遍历(不使用递归实现遍历) 递归的实现就是&#xff1a;每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中&#xff0c;递归是通过栈实现…...

OpenText ALM Octane,为您的 DevOps 管道提供质量保证

实现更高水平的敏捷性、可追溯性和可预测性是一个持续的过程。ALM Octane 可帮助您改进开发和测试流程&#xff0c;从而改善整个软件交付价值流中的工作流程。 产品亮点 对基于软件的创新的需求已经加速&#xff0c;扰乱了几乎每个行业&#xff0c;也改变了我们的生活。快速交…...

【python实操】python小程序之参数化以及Assert(断言)

引言 python小程序之参数化以及Assert&#xff08;断言&#xff09; 文章目录 引言一、参数化2.1 题目2.2 代码2.3 代码解释 二、Assert&#xff08;断言&#xff09;2.1 概念2.1.1 Assert语句的基本语法&#xff1a;2.1.2 基本断言2.1.3 断言函数参数2.1.4 断言前后状态一致 2…...

探索CSS动画下的按钮交互美学

效果演示 这段代码通过SVG和CSS动画创建了一个具有视觉吸引力的按钮&#xff0c;当用户与按钮交互时&#xff08;如悬停、聚焦或按下&#xff09;&#xff0c;按钮会显示不同的动画效果。 HTML <button class"button"><div class"dots_border"…...

241024-Ragflow离线部署Docker-Rootless环境配置修改

A. 最终效果 B. 文件修改 docker-compose.yml include:- path: ./docker-compose-base.ymlenv_file: ./.envservices:ragflow:depends_on:mysql:condition: service_healthyes01:condition: service_healthyimage: ${RAGFLOW_IMAGE}container_name: ragflow-serverports:- ${…...

网络基础概念:广播域、冲突域与VLAN解析

一、网络基础概念 在现代计算机网络中&#xff0c;广播域、冲突域和虚拟局域网&#xff08;VLAN&#xff09;是网络架构和管理的核心概念。了解这些概念对网络性能优化、流量管理和安全性提升至关重要。 二、广播域 1. 定义 广播域是一个网络逻辑区域&#xff0c;在这个区域…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...