# 03_Elastic Stack 从入门到实践(三)-- 4
03_Elastic Stack 从入门到实践(三)-- 4
七、Elasticsearch之中文分词器(IK分词器)
1、什么是分词?
分词:就是指将一个文本转化成一系列单词的过程,也叫文本分析,在Elasticsearch中称之为Analysis。
举例:我是中国人–> 我/是/中国人
2、分词 API
1)指定分词器进行分词。
2)示例代码
# POST http://192.168.43.216:9200/_analyze{"analyzer": "standard","text": "hello world"
}# 结果:在结果中不仅可以看出分词的结果,还返回该词在文本中的位置。
{"tokens": [{"token": "hello","start_offset": 0,"end_offset": 5,"type": "<ALPHANUM>","position": 0},{"token": "world","start_offset": 6,"end_offset": 11,"type": "<ALPHANUM>","position": 1}]
}
3)示例代码2
# POST http://192.168.43.216:9200/_analyze{"analyzer": "standard","text": "我是中国人"
}# 结果:在结果中不仅可以看出分词的结果,还返回该词在文本中的位置。
{"tokens": [{"token": "我","start_offset": 0,"end_offset": 1,"type": "<IDEOGRAPHIC>","position": 0},{"token": "是","start_offset": 1,"end_offset": 2,"type": "<IDEOGRAPHIC>","position": 1},{"token": "中","start_offset": 2,"end_offset": 3,"type": "<IDEOGRAPHIC>","position": 2},{"token": "国","start_offset": 3,"end_offset": 4,"type": "<IDEOGRAPHIC>","position": 3},{"token": "人","start_offset": 4,"end_offset": 5,"type": "<IDEOGRAPHIC>","position": 4}]
}
4)指定索引分词
# POST http://192.168.43.216:9200/dzs168/_analyze{"analyzer": "standard","field": "hobby","text": "听音乐"
}# 结果:
{"tokens": [{"token": "听","start_offset": 0,"end_offset": 1,"type": "<IDEOGRAPHIC>","position": 0},{"token": "音","start_offset": 1,"end_offset": 2,"type": "<IDEOGRAPHIC>","position": 1},{"token": "乐","start_offset": 2,"end_offset": 3,"type": "<IDEOGRAPHIC>","position": 2}]
}
3、Elasticsearch之中文分词器(IK分词器) 实操示例。
1)启动 centos7系统,关闭防火墙
systemctl stop firewalld
2)切换到 elsearch 用户,启动elasticsearch(如果没有此用户,创建即可,因为elasticsearch 不能在 root 用户下启动)
# 切换用户
su - elsearch# 切换到 elasticsearch 安装目录下
cd /dzs168/es/elasticsearch-6.5.4/# 启动elasticsearch
./bin/elasticsearch
3)打开 Postman 工具,连接你的 elasticsearch 服务器IP,发送POST 请求
(确保你的elasticsearch 服务器,提前创建了如dzs168 索引和数据)
4、中文分词
1)中文分词的难点在于,在汉语中没有明显的词汇分界点,如在英语中,空格可以作为分隔符,如果分隔不正确就会造成歧义。
2)如:
我/爱/炒肉丝
我/爱/炒/肉丝
3)常用中文分词器,IK、jieb2、THAC等,推荐使用IK分词器。
4)IK Analyzer是一个开源的,基丁java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer 3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提
供了对Lucene的默认优化实现。
采用了特有的“正向迭代最细粒度切分算法",具有80万字/秒的高速处理能力采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。优化的词典存储,更小的内存占用。
5、ik 分词器Elasticsearch插件下载地址:
https://github.com/medcl/elasticsearch-analysis-ik
https://github.com/infinilabs/analysis-ik
6、分词器安装方法
1)将下载的 elasticsearch-analysis-ik-6.8.23.zip 解压到 /elasticsearch/plugins/ik 目录下即可。
2)具体步骤
$ mkdir es/plugins/ik
$ cp elasticsearch-analysis-ik-6.5.4.zip ./es/plugins/ik# 解压
$ unzip elasticsearch-analysis-ik-6.5.4.zip# 重启
./bin/elasticsearch
7、实际操作
1)安装elasticsearch-analysis-ik 分词器
2)示例代码3
# POST http://192.168.43.216:9200/_analyze{"analyzer": "ik_max_word","text": "我是中国人"
}# 结果:
{"tokens": [{"token": "我","start_offset": 0,"end_offset": 1,"type": "CN_CHAR","position": 0},{"token": "是","start_offset": 1,"end_offset": 2,"type": "CN_CHAR","position": 1},{"token": "中国人","start_offset": 2,"end_offset": 5,"type": "CN_WORD","position": 2},{"token": "中国","start_offset": 2,"end_offset": 4,"type": "CN_WORD","position": 3},{"token": "国人","start_offset": 3,"end_offset": 5,"type": "CN_WORD","position": 4}]
}
3)重启 elasticsearch 进行测试
八、Elasticsearch全文搜索之构造数据以及单词搜索
1、全文搜索
全文搜索两个最重要的方面是:
1)相关性(Relevance) :
它是评价查询与其结果间的相关程度,并根据这种相关程度对结果排名的一种能力,这
种计算方式可以是TF/IDF 方法、地理位置邻近、模糊相似,或其他的某些算法。
2)分词(Analysis)
它是将文本块转换为有区别的、规范化的token的一个过程,目的是为了创建倒排索引以及
查询倒排索引。
2、先删除Elasticsearch 原有的索引和数据
3、构造数据:创建索引 dzs168
# PUT http://192.168.43.216:9200/dzs168{"settings": {"index": {"number_of_shards": "1","number_of_replicas": "0"}},"mappings": {"person": {"properties": {"name": {"type": "text"},"age": {"type": "integer"},"mail": {"type": "keyword"},"hobby": {"type": "text","analyzer": "ik_max_word"}}}}
}# 响应结果{"acknowledged": true,"shards_acknowledged": true,"index": "dzs168"
}
4、Elasticsearch 向新创建的索引 dzs168 插入数据。
# 打开 Postman 软件,选择POST请求,
# 地址栏输入:http://192.168.43.216:9200/dzs168/_bulk
# 请求体为 JSON 数据类型,请求内容为以下:{"index": { "_index": "dzs168", "_type": "person"}}
{"name": "张三", "age": 20, "mail": "111@qq.com", "hobby": "看电影、听音乐"}
{"index": { "_index": "dzs168", "_type": "person"}}
{"name": "李四", "age": 22, "mail": "222@qq.com", "hobby": "篮球、游泳"}
{"index": { "_index": "dzs168", "_type": "person"}}
{"name": "王五", "age": 25, "mail": "333@qq.com", "hobby": "散步、跑步、乒乓球"}
{"index": { "_index": "dzs168", "_type": "person"}}
{"name": "赵六", "age": 26, "mail": "444@qq.com", "hobby": "足球、篮球、听音乐"}
{"index": { "_index": "dzs168", "_type": "person"}}
{"name": "孙七", "age": 30, "mail": "555@qq.com", "hobby": "羽毛球、足球、篮球"}
{"index": { "_index": "dzs168", "_type": "person"}}
{"name": "周八", "age": 38, "mail": "666@qq.com", "hobby": "跑步、游泳、看电影"}# 响应数据
{"took": 853,"errors": false,"items": [{"index": {"_index": "dzs168","_type": "person","_id": "fTFO05UBnk-jzlVbr0SU","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1,"status": 201}},{"index": {"_index": "dzs168","_type": "person","_id": "fjFO05UBnk-jzlVbr0SU","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 1,"_primary_term": 1,"status": 201}},{"index": {"_index": "dzs168","_type": "person","_id": "fzFO05UBnk-jzlVbr0SU","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 2,"_primary_term": 1,"status": 201}},{"index": {"_index": "dzs168","_type": "person","_id": "gDFO05UBnk-jzlVbr0SU","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 3,"_primary_term": 1,"status": 201}},{"index": {"_index": "dzs168","_type": "person","_id": "gTFO05UBnk-jzlVbr0SU","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 4,"_primary_term": 1,"status": 201}},{"index": {"_index": "dzs168","_type": "person","_id": "gjFO05UBnk-jzlVbr0SU","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 5,"_primary_term": 1,"status": 201}}]
}
5、Elasticsearch 搜索查询数据:单词搜索
# 打开 Postman 软件,选择POST请求,
# 地址栏输入:http://192.168.43.216:9200/dzs168/person/_search
# 请求体为 JSON 数据类型,请求内容为以下:{"query": {"match": {"hobby": "音乐"}},"highlight": {"fields": {"hobby": {}}}
}# 响应数据
{"took": 386,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": 2,"max_score": 0.9686553,"hits": [{"_index": "dzs168","_type": "person","_id": "fTFO05UBnk-jzlVbr0SU","_score": 0.9686553,"_source": {"name": "张三","age": 20,"mail": "111@qq.com","hobby": "看电影、听音乐"},"highlight": {"hobby": ["看电影、听<em>音乐</em>"]}},{"_index": "dzs168","_type": "person","_id": "gDFO05UBnk-jzlVbr0SU","_score": 0.9686553,"_source": {"name": "赵六","age": 26,"mail": "444@qq.com","hobby": "足球、篮球、听音乐"},"highlight": {"hobby": ["足球、篮球、听<em>音乐</em>"]}}]}
}
6、过程说明:
1)检查字段类型
爱好 hobby 字段是一个 text 类型(指定了IK分词器),这意味着查询字符串本身也应该被分词。
2)分析查询字符串。
将查询的字符串“音乐”传入IK分词器中,输出的结果是单个项音乐。因为只有一个单词项,所以match查询执行的是单个底层term查询。
3)查找匹配文档。
用 term 查询在倒排索引中查找“音乐”然后获取一组包含该项的文档,本例的结果是文档:3、5。
4)为每个文档评分。
用term 查询计算每个文档相关度评分[score,这是种将词频( term frequency,即词“音乐"在相关文档的hobby 字段中出现的频率)和反向文档频率(inverse document frequency ,即词“音乐”在所有文档的hobby字段中出现的频率),以及字段的长度(即字段越短相关度越高)相结合的计算方式。
上一节关联链接请点击:
03_Elastic Stack 从入门到实践(三)-- 3
相关文章:
# 03_Elastic Stack 从入门到实践(三)-- 4
03_Elastic Stack 从入门到实践(三)-- 4 七、Elasticsearch之中文分词器(IK分词器) 1、什么是分词? 分词:就是指将一个文本转化成一系列单词的过程,也叫文本分析,在Elasticsearch…...
前端VUE框架理论与应用(10)
1、记住全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生。 2、要注意,以 / 开头的嵌套路径会被当作根路径。 这让你充分的使用嵌套组件而无须设置嵌套的路径。 3、注意:在 Vue 实例内部,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push…...
基础学习:(6)nanoGPT
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1 nanoGPT 浅尝1.1 基础环境1.2 prepare.py1.2 train.py1.3 sample.py 2 再探gpt2.1 layer_norm2.2 KQV 和 self attention2.3 masked self-attention2.4 调用构…...
python支持自定义基准的相对误差计算
def is_within_tolerance_custom(a, b, tolerance0.1, reference“max”): “”" 支持自定义基准的相对误差计算。 参数:reference (str): 基准类型,可选 "max"(默认)、"min"、"mean"、"a"&am…...
力扣DAY52-54 | 热100 | 图论:腐烂的橘子、课程表、前缀树
前言 中等 √ 腐烂的橘子用层次遍历,课程表用俩哈希表,前缀树基本与题解一致。however不太规范。 腐烂的橘子 我的题解 层次遍历,先找出所有腐烂的橘子进入队列并记录数量,接着内层遍历第一层腐烂的橘子,上下左右四…...
java CountDownLatch用法简介
CountDownLatch倒计数锁存器 CountDownLatch:用于协同控制一个或多个线程等待在其他线程中执行的一组操作完成,然后再继续执行 CountDownLatch用法 构造方法:CountDownLatch(int count),count指定等待的条件数(任务…...
科技项目验收测试报告有哪些作用?需要多长时间和费用?
在当今快速发展的科技环境中,科技项目的有效验收至关重要。对于公司、开发团队以及客户来说,科技项目验收测试报告更是一个不可缺少的一项重要环节。 科技项目验收测试报告是对一个项目在开发完成后所进行的一系列测试结果的总结。这份报告不仅用于证明…...
网络原理面试题
1.如何理解 URI? URI, 全称为(Uniform Resource Identifier), 也就是统一资源标识符,它的作用很简单,就是区分互联网上不同的资源。但是,它并不是我们常说的网址, 网址指的是URL, 实际上URI包含了URN和URL两个部分,由于 URL 过于普及,就默认将 URI 视为 URL 了。 URI 的…...
专为路由器和嵌入式设备设计的OpenWrt是什么?
OpenWrt是一款基于Linux内核的开源嵌入式操作系统,专为路由器和嵌入式设备设计。自2004年诞生以来,它已成为替代商业固件的首选方案,凭借其高度可定制性、模块化架构和活跃的开发者社区,广泛应用于家庭网络、企业级设备、物联网(IoT)及安全领域。以下从多个维度展开详细介…...
NVIDIA RTX™ GPU 低成本启动零售 AI 场景开发
零售行业正在探索应用 AI 升级客户体验,同时优化内部流程。面对多重应用场景以及成本优化压力,团队可采用成本相对可控的方案,来应对多重场景的前期项目预演和落地,避免短期内大规模投入造成的资源浪费。 客户体验 AI 场景的研究…...
element-ui自定义主题
此处的element-ui为基于vue2.x的 由于https://element.eleme.cn/#/zh-CN/theme/preview(element的主题)报错503, 所以使用https://element.eleme.cn/#/zh-CN/component/custom-theme 自定义主题文档中,在项目中改变scss变量的方…...
PhotoShop学习10
1.画板功能的使用 使用画板功能可以轻松针对不同的设备和屏幕尺寸设计网页和 APP。画板是一种容器,类似于特殊图层组。画板中的图层在图层面板中,按画板进行分组。 使用画板,一个文档中可以有多个设计版面,这样可以在画板之间轻…...
基于LLVM设计领域专用语言(DSL)的步骤——以激光微加工为例
1. 明确DSL的设计目标 在激光微加工领域,DSL需解决以下问题: • 工艺参数抽象化:激光功率、频率、扫描路径等需用高阶语法描述,而非底层G代码。 • 实时性要求:控制指令需低延迟编译为机器码(如FPGA或运动控…...
【MAUI】IOS保活
文章目录 概述sevice使用 概述 每种方法都是独立的,可以根据应用的需求单独使用。例如,如果应用的主要功能是跟踪用户的地理位置,则可以仅使用后台定位;若是为了保持应用在后台运行以完成特定任务(比如上传数据&#…...
shardingsphere-jdbc集成Seata分布式事务
1、导入相关依赖 <!-- shardingsphere-jdbc --><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc</artifactId><version>5.5.1</version></dependency><!-- shardingspher…...
基于区块链的技术应用探索
文章目录 前言一、区块链技术的核心特性1.1 去中心化1.2 不可篡改性1.3 透明性与可追溯性1.4 智能合约机制 二、区块链的典型应用场景2.1 金融与支付2.2 溯源与供应链管理2.3 数字身份与数据隐私2.4 数字资产与NFT2.5 公共服务与政务透明 三、区块链的分类1.按权限管理方式分类…...
MQ(RabbitMQ)消息重复消费问题的全面解决方案
MQ消息重复消费是分布式系统中的常见问题,主要由网络问题、消费者故障、消息重试机制等引起。以下是针对RabbitMQ的完整解决方案体系: 一、消息生产端解决方案 1. 消息幂等设计 全局唯一消息ID: MessageProperties props MessagePropert…...
windows Cursor 配置MCP的小坑
以高德地图MCP举例 按需求配置好以后,会提示 Client closed 解决方案, windows 需要更改一下 commandargs 新增一个npx保存后Cursor设置MCP页面Refresh一下即可,打开的终端不要关闭 最后贴一下文本代码,方便复制粘贴 {"m…...
探秘串口服务器厂家:背后的故事与应用
在科技飞速发展的今天,串口服务器作为连接串口设备与网络的桥梁,在工业自动化、智能交通、智能家居等众多领域发挥着关键作用。你是否好奇,那些生产串口服务器的厂家究竟有着怎样的故事?它们的产品背后又蕴含着怎样的原理呢&#…...
二叉树详细讲解(2/2)
4. 实现链式结构二叉树 ⽤链表来表⽰⼀棵⼆叉树,即⽤链来指⽰元素的逻辑关系。通常的⽅法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别⽤来给出该结点左孩⼦和右孩⼦所在的链结点的存储地址,其结构如下&#…...
SpringBoot整合Redis限流
通过一个完整的Spring Boot项目演示如何用Redis实现简单的API限流功能。我们将从零开始搭建项目。 一、环境准备 1.1 开发环境要求 JDK 1.8IntelliJ IDEA(推荐)Redis 5.0(本地安装)Postman(测试用) 1.2…...
(Matlab)自动驾驶仿真 设计驾驶场景、配置传感器并生成合成 数据
驾驶场景仿真平台核心功能 一、场景搭建与编辑 可视化场景构建 使用拖放界面创建道路网络和角色模型(车辆、行人等)支持欧洲新车评估计划(Euro NCAP)测试协议及其他预置场景模板 二、传感器配置 车载传感器系统 支持…...
接口测试(get请求方法)-----------实战演练
1.最简单的get请求方法 eg:请求一个王者荣耀语音包的接口 接口文档如下: 2.把接口地址、请求方法、请求参数写到postman相应位置 3.填写请求参数的值,点击发送按钮,即可获得到返回参数...
【赵渝强老师】TiDB的列存引擎:TiFlash
TiDB的TiFlash提供列式存储,且拥有借助ClickHouse高效实现的协处理器层。除此以外,它与TiKV非常类似,依赖同样的Multi-Raft体系,以Region为单位进行数据复制和分散。TiFlash以低消耗不阻塞TiKV写入的方式,实时复制TiKV…...
《vue3学习手记3》
标签的ref属性 vue3和vue2中的ref属性: 用在普通DOM标签上,获取的是DOM节点 ref用在组件标签上,获取的是组件实例对象 区别在于: 1.vue3中person子组件中的数据父组件App不能直接使用,需要引入并使用defineExpose才可…...
【Vue】从 MVC 到 MVVM:前端架构演变与 Vue 的实践之路
个人博客:haichenyi.com。感谢关注 一. 目录 一–目录二–架构模式的演变背景三–MVC:经典的分层起点四–MVP:面向接口的解耦尝试五–MVVM:数据驱动的终极形态六–Vue:MVVM 的现代化实践 二. 架构模…...
Docker Compose 命令实现动态构建和部署
Docker Compose 命令实现动态构建和部署 一、编写支持动态版本号的 docker-compose.yml version: 3.8services:myapp:build: context: . # Dockerfile所在目录args:APP_VERSION: ${TAG:-latest} # 从环境变量获取版本号,默认latestimage: myapp:${TAG:-latest} …...
工厂模式实现案例
场景一:配置文件解析(工厂模式实现) 1. 定义解析器接口与具体实现 from abc import ABC, abstractmethod import json import yaml # 需要安装PyYAML库:pip install pyyamlclass ConfigParser(ABC):"""配置文件解…...
Vue3.5 企业级管理系统实战(十五):其他全局设置项
在设置面板中,除了主题颜色的选择设置,还可以添加其他全局配置选项,如 tagsView 导航栏,Logo 的显示隐藏配置等。 1 Settings 的 Pinia 配置 在 src/stores/settings.ts 中添加要持久存储的全局配置项,这里是 tagsVi…...
L2-052 吉利矩阵分
L2-052 吉利矩阵 - 团体程序设计天梯赛-练习集 所有元素为非负整数,且各行各列的元素和都等于 7 的 33 方阵称为“吉利矩阵”,因为这样的矩阵一共有 666 种。 本题就请你统计一下,把 7 换成任何一个 [2,9] 区间内的正整数 L,把矩…...
408 计算机网络 知识点记忆(9)
前言 本文基于王道考研课程与湖科大计算机网络课程教学内容,系统梳理核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。(PS:后续将持续迭代优化细节) 往期内容 408 计算机网络 知识…...
矩阵基础+矩阵转置+矩阵乘法+行列式与逆矩阵
GPU渲染过程 矩阵 什么是矩阵(Matrix) 向量 (3,9,88) 点乘:计算向量夹角 叉乘:计算两个向量构成平面的法向量。 矩阵 矩阵有3行,2列,所以表示为M32 获取固…...
如何在 .NET 环境中使用 Npgsql 驱动连接 KaiwuDB
在现代软件开发中,数据库连接和操作是任何应用程序的核心部分。本文将介绍如何在 .NET 环境下,使用 Npgsql 驱动连接 KaiwuDB,并执行基本的数据库操作,包括创建表、插入数据和查询操作。我们假设您已经安装并配置好了 KaiwuDB 数据…...
【代理错误 django】Request error: HTTPSConnectionPool(host=‘‘, port=443): 、
❗问题 ❶:仍然是代理错误(ProxyError) 错误日志: Request error: HTTPSConnectionPool(hostxueshu.baidu.com, port443): Max retries exceeded ... Caused by ProxyError(Unable to connect to proxy, FileNotFoundError(2, N…...
5.9 《GPT-4调试+测试金字塔:构建高可靠系统的5大实战策略》
5.4 测试与调试:构建企业级质量的保障体系 关键词:测试金字塔模型、GPT-4调试助手、LangChain调试模式、异步任务验证 测试策略设计(测试金字塔实践) #mermaid-svg-RblGbJVMnCIShiCW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill…...
Maven 多仓库和多镜像配置
Maven是一个流行的Java项目构建和管理工具。在Maven中,我们可以配置多个仓库源来下载和管理依赖项。同时,我们还可以使用repositories和mirrors进行配置,以满足特定的需求。 首先,让我们了解一下repositories和mirrors的作用。在M…...
案例驱动的 IT 团队管理:创新与突破之路:第五章 创新管理:从机制设计到文化养成-5.1 创新激励体系-5.1.3失败案例的价值转化机制
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 失败案例的价值转化机制:IT团队创新管理中的"黑天鹅"炼金术1. 认知重构:重新定义失败的价值1.1 传统失败管理的困境1.2 失败价值转化模型 …...
华为纯血 卓易通 使用记录
(1)我们在测试华为纯血的时候,发现了,使用咱们的基站上的wifi, wifi与手机终端是互相ping 通的, 手机可以发信号到基站,但基站收到信号后,也发出信号 ,但信号 不能到达手机。 这个是…...
计算机网络中科大 - 第7章 网络安全(详细解析)-以及案例
目录 🛡️ 第8章:网络安全(Network Security)优化整合笔记📌 本章学习目标 一、网络安全概念二、加密技术(Encryption)1. 对称加密(Symmetric Key)2. 公钥加密࿰…...
初识Redis · set和zset
目录 前言: set 基本命令 交集并集差集 内部编码和应用场景 zset 基本命令 交集并集差集 内部编码和应用场景 应用场景(AI生成) 排行榜系统 应用背景 设计思路 热榜系统 应用背景 设计思路 热度计算方式 总结对比表 前言&a…...
Prometheus+Grafana+K8s构建监控告警系统
一、技术介绍 Prometheus、Grafana及K8S服务发现详解 Prometheus简介 Prometheus是一个开源的监控系统和时间序列数据库,最初由SoundCloud开发,现已成为CNCF(云原生计算基金会)的毕业项目。它专注于实时监控和告警,特别适合云原生和分布式…...
用 AI + 前端实现一个简易产品图生成器:上传商品标题 → 多场景展示图自动生成
文章目录 一、项目背景与功能概述核心功能: 二、技术选型与环境准备安装依赖与 API Key 配置 三、核心功能模块实现1. 商品图生成器核心逻辑2. 组件模板与 UI 结构 四、功能拓展与优化建议(附代码思路)✅ 1. 本地历史记录可视化✅ 3. 支持图片…...
实现高效灵活的模糊搜索:JavaScript中的多条件过滤实践
现代Web应用中,数据搜索功能是用户体验的关键部分。本文将深入探讨如何实现一个高效灵活的模糊搜索函数,支持多条件组合查询、精确匹配、模糊匹配以及时间范围筛选。 需求分析 我们需要一个通用的搜索函数,能够处理以下场景: 多…...
ChatterBot的JupyterLab实践指南,从零开始构建AI聊天机器人
从手机上的语音助手到电商平台的客服机器人,这些能理解人类语言的程序背后,都离不开自然语言处理(NLP)技术的支撑。本文将以JupyterLab为实验平台,带您亲手打造一个会对话的AI机器人。通过这个项目,您不仅能…...
《深度学习》课程之卷积神经网络原理与实践教学设计方案
《深度学习》课程之卷积神经网络原理与实践教学设计方案 一、教学目标设计 (一)知识目标 学生能够准确描述卷积神经网络(CNN)的基本定义,包括其核心组成部分(如卷积层、池化层、全连接层等)及…...
快手OneRec 重构推荐系统:从检索排序到生成统一的跃迁
文章目录 1. 背景2. 方法2.1 OneRec框架2.2 Preliminary2.3 生成会话列表2.4 利用奖励模型进行迭代偏好对齐2.4.1 训练奖励模型2.4.2 迭代偏好对齐 3. 总结 昨天面试的时候聊到了OneRec,但是由于上次看这篇文章已经是一个月之前,忘得差不多了,…...
算法——直接插入排序
目录 一、直接插入排序的定义 二、直接插入排序的原理 三、直接插入排序的特点 四、代码实现 一、直接插入排序的定义 直接插入排序是一种简单直观的排序算法,其基本思想是将一个元素插入到已经排好序的部分数组中,使得插入后的数组仍然保持有序。具…...
Linux 软件管理
文章目录 dpkg软件包管理工具APT软件包管理工具apt-get命令apt-cache Linux操作系统主要支持RPM和Deb两种软件包管理工具。 RPM(Redhat Package Manager)是一种用于互联网下载包的打包及安装工具。 其原始设计理念是开放的,不仅可以在Redhat平…...
电力实训中应注意以下安全事项
电力实训中应注意以下安全事项: 一、环境准备与设备检查 保持实训场地整洁通风,清除易燃物与杂物,确保操作空间充足。 电路容量需匹配设备功率,安装漏电保护器及空气开关。 非带电金属设备外壳应接地,定期检查线路…...
序列化-流量统计
新建文件夹及文件 编写流量统计的Bean对象 package com.root.mapreduce.writable; import org.apache.hadoop.io.Writable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; //1 继承Writable接口 public class FlowBean implements Writab…...