mysql输入中文报错
ORM设置Django ORM之mysql设置1:创建一个数据库create database 数据库名2:在项目settings.py里填写DATABASES = {‘default‘: {‘ENG...
2024.11.21很多用过ElasticSearch的人都知道,es检索的效率相对较好,可以在海量的数据中实现秒级检索,并给出相关的评分。很多小伙伴可能会有疑问,底层实现使用的mysql、tidb、oceanbase等数据库嘛?答案是否定,这些数据库或许可以完成检索,但很难实现评分计算。也有小伙伴疑惑,评分是什么?简单来说,评分是指查询的内容与检索到的文档的相似度
下面让我们 一起来了解一下评分是如何计算的?本文我们先探索一下最简单的相似度计算:余弦相似度算法,
余弦相似度余弦相似度计算的步骤主要有以下几步:
假设查询语句为q,待匹配的文档为d
对q和d进行分词。处理词条。比如:大小写转换,去除一些“无意义”的词,如:标点符号等词条向量化。取q和d的分词集合并集,作为基础坐标,分别表示向量和向量计算权重。最简单的方式是将词频(分词在分词集合中出现的次数)作为权重根据余弦公式计算余弦值。余弦函数的取值范围为:[-1,1]。行文本相似度度量时,使用正区间[0,1],0表示“完全不同”,1表示“完全相同”。
举例文本1: 我今天去打网球,然后去打橄榄球。
文本2: 我明天去吃火锅,然后去打篮球。
语句分词:文本1: 我 今天 去 打 网球 , 然后 去 打 橄榄球 。文本2:我 明天 去 吃 火锅 , 然后 去 打 篮球 。处理词条。去除“无意义”词,比如:标点符号文本1: 我 今天 去 打 网球 然后 去 打 橄榄球文本2:我 明天 去 吃 火锅 然后 去 打 篮球词条向量化使用文本1和文本2的分词集合并集作为分词集合,集合为:我 今天 明天 去 吃 打 然后 网球 橄榄球 篮球 火锅向量化,如果文本中有某个词在分词集合中,则对应位置标记为1分词集合
我
今天
明天
去
吃
打
然后
网球
橄榄球
篮球
火锅
文本1
1
1
1
1
1
1
1
文本2
1
1
1
1
1
1
1
1
计算权重,此处以分词在文本中出现的次数作为分词的权重,加入权重的向量分词集合
我
今天
明天
去
吃
打
然后
网球
橄榄球
篮球
火锅
文本1
1
1
2
2
1
1
1
文本2
1
1
2
1
1
1
1
1
计算余弦值计算结果约为:0.727
ORM设置Django ORM之mysql设置1:创建一个数据库create database 数据库名2:在项目settings.py里填写DATABASES = {‘default‘: {‘ENG...
2024.11.21mysql分页查询是先查询出来所有数据,然后跳过offset,取limit条记录,造成了越往后的页数,查询时间越长一般优化思路是转换offset,让offset尽可能的小,最好能每次查询都是第一页,也...
2024.11.21CREATE TABLE IF NOT EXISTS `test_compress` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `content` blob...
2024.11.21数据库优化sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和InnoDB的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一...
2024.11.21一、前言在数据库中执行查询(select)在我们工作中是非常常见的,工作中离不开CRUD,在执行查询(select)时,多表关联也非常常见,我们用的也比较多,那么mysql内部是如何执行关联查询的呢?...
2024.11.20