精易论坛

标题: 模糊的搜索算法(子串匹配) [打印本页]

作者: 明天自然醒    时间: 2023-3-20 17:47
标题: 模糊的搜索算法(子串匹配)
前言:效率先搁一边,先把模糊的搜索功能做出来


待比对的句子:
a.百万粉丝骑行博主在港单车被偷,此前3年安全行走内地32个省份
b.深圳首个不限购区域诞生了?深汕合作区取消个人商品住房限购


用户键入的搜索语句:
深圳限购


要使得匹配到b,给出下面的简单子串暴力匹配方法:
  
子程序名返回值类型公开备 注
子文本匹配逻辑型 
参数名类 型参考可空数组备 注
被匹配的文本文本型
欲匹配的文本文本型
变量名类 型静态数组备 注
子串数组文本型0
i整数型 
head整数型 
len整数型 
pos整数型 
文本_逐字分割 (欲匹配的文本, 子串数组)
len = 取文本长度 (被匹配的文本)
head = 1
判断循环首 (pos ≤ len)
pos = 寻找文本 (被匹配的文本, 子串数组 [head], pos, )
如果真 (pos = -1)
返回 ()
pos = pos + 取文本长度 (子串数组 [head])
head = head + 1
如果真 (head > 取数组成员数 (子串数组))
返回 ()

判断循环尾 ()
返回 ()



但是如果用户键入的搜索语句是:
深圳2限购诞 生q个人住房

上面的方法就不够用了,我们需要提取关键词再匹配:
  
子程序名返回值类型公开备 注
子文本搜索匹配逻辑型 
参数名类 型参考可空数组备 注
被匹配的文本文本型
欲匹配的文本文本型
变量名类 型静态数组备 注
子串数组文本型0
i整数型 
head整数型 
临时文本文本型 
pos  
len  
临时文本 = 文本分词 (子文本替换 (欲匹配的文本, “ ”, , , , ))
' 临时文本 = 文本分词 (欲匹配的文本)
子串数组 = 分割文本 (提取关键词2 (临时文本, 取文本长度 (临时文本)), “ ”, )
' 调试输出 (子串数组)
head = 1
len = 取文本长度 (被匹配的文本)
判断循环首 (pos ≤ len)
pos = 寻找文本 (被匹配的文本, 子串数组 [head], pos, )
如果真 (pos = -1)
返回 ()
pos = pos + 取文本长度 (子串数组 [head])
head = head + 1
如果真 (head > 取数组成员数 (子串数组))
返回 ()

判断循环尾 ()
返回 ()


实现

备注:引擎地址自行修改

优化建议
大数据下还是得缓存起来,类似上节内容simhash函数
或者改用搜索引擎原理


作者: 网络注册络员    时间: 2023-3-20 17:57
学习一下

作者: fooker    时间: 2023-3-20 18:07
学习一下
作者: 凌哥    时间: 2023-3-20 19:07
还是用正则表达式吧
作者: dzscuz    时间: 2023-3-20 19:18
看看,学学,支持楼主
作者: 难解    时间: 2023-3-20 20:10
学习一下
作者: jysoft2022    时间: 2023-3-20 20:34
谢谢分享
作者: 咸鱼666    时间: 2023-3-20 20:40
谢谢分享
作者: pjm123    时间: 2023-3-20 20:52
谢谢分享
作者: CryptoJS    时间: 2023-3-20 21:32
谢谢分享
作者: 飞鱼软件    时间: 2023-3-20 21:33
感谢分享 支持开源 !
作者: 13012145633    时间: 2023-3-20 21:38
感谢分享 支持开源 !
作者: 784326742    时间: 2023-3-20 21:49
怎么总感觉哪里有问题,但是暂时说不出来
作者: 亿万    时间: 2023-3-20 22:14
感谢分享 支持开源 !
作者: 明天自然醒    时间: 2023-3-20 23:01
784326742 发表于 2023-3-20 21:49
怎么总感觉哪里有问题,但是暂时说不出来

你是指关键词的顺序吗  上文是连续匹配的
作者: dwcq    时间: 2023-3-20 23:11
学习一下
作者: 794229345    时间: 2023-3-20 23:37
感谢楼主分享!
作者: 菜就多多练    时间: 2023-3-21 00:18
感谢楼主分享
作者: 陽陽陽    时间: 2023-3-21 02:24
清华贴+1

大佬有什么算法好的起步视频吗
作者: 成神之日    时间: 2023-3-21 06:14
来看看
作者: wuqingg    时间: 2023-3-21 08:42
可以可以~~~
作者: xiaoj88    时间: 2023-3-21 08:45
666666666666666666
作者: sinewtec    时间: 2023-3-21 09:45
好东西,谢谢楼主!!!!!!!!!!!!!
作者: 一指温柔    时间: 2023-3-21 10:30
谢谢分享
作者: renjianhong48we    时间: 2023-3-21 10:41
感谢分享
作者: 展展    时间: 2023-3-21 11:47
之前用过历遍搜索对比,数据量大的时候非常耗时间。

作者: 396384183    时间: 2023-3-21 15:08

好东西、、、、
作者: songue    时间: 2023-3-21 17:53
感谢分享
作者: 安陆华硕专卖    时间: 2023-3-21 18:51
感谢分享
作者: 壮志豪情    时间: 2023-3-21 19:37
6666666666666666666666
作者: 三克油    时间: 2023-3-21 20:44
关注了                           .
作者: 嫂子    时间: 2023-3-21 23:03
这样不算是模糊搜索把。按我的理解 b 就不该匹配。
作者: 杨同学    时间: 2023-3-21 23:21
感谢分享
作者: 杨同学    时间: 2023-3-21 23:28
支持一下   继续优化
作者: 悸动的青春    时间: 2023-3-21 23:30
谢谢楼主分享。
作者: airaz    时间: 2023-3-22 05:35
深圳首个不限购区域诞生了?深汕合作区取消个人商品住房限购

还有问题  如:
深圳限购
深圳不限购

两个概念啊!!!
作者: 胖子葛格    时间: 2023-3-22 09:05

  感谢分享,很给力!~
作者: 韦贝贝    时间: 2023-3-22 09:59
模糊的搜索算法
作者: FENGANQI2007    时间: 2023-3-23 13:25
66666666
作者: a8520    时间: 2023-3-23 21:32
感谢分享
作者: ‖陌颜の小溪"    时间: 2023-3-24 15:16
6666666666666666
作者: 18072699966    时间: 2023-3-25 17:42
感谢分享
作者: 唐山小哥    时间: 2023-3-25 18:08
好东西 学习学习

作者: StarAdmire    时间: 2023-3-25 19:33
看看是什么高级玩意
作者: 网络注册网员    时间: 2023-3-25 19:58
支持支持
作者: wzi    时间: 2023-3-25 21:43
666666666666666
作者: 失落的情域    时间: 2023-3-25 23:52
听起来很实用啊  感谢分享
作者: ljx111    时间: 2023-3-26 11:05
看一下先
作者: guyue98    时间: 2023-3-26 13:54
谢谢分享
作者: abpyu    时间: 2023-3-26 19:04
谢谢大佬分享
作者: 网络注册会员    时间: 2023-3-27 08:33
支持一下
作者: fangcl20    时间: 2023-3-27 18:51
感谢分享

作者: a3960382663    时间: 2023-3-31 13:39
        感谢分享,很给力!~
作者: ASDFG201302    时间: 2023-4-1 15:57
感谢分享,很给力!~
作者: lzgking    时间: 2023-4-9 09:23
感谢分享,很给力
作者: zhou5749    时间: 2023-4-9 21:15

那么早年就能写出此等作品!牛逼大发了!!!!
作者: nywl2008    时间: 2023-4-10 02:48
好东西,收下了。。。 感谢分享
作者: lg1314ai    时间: 2023-4-11 01:29
感谢分享
作者: 烈焰029雨魔    时间: 2023-4-13 09:40

支持开源~!感谢分享
作者: e5l45w    时间: 2023-4-17 11:26
学习下啊!!!!!!!!!!!!!!!!
作者: opq123    时间: 2023-4-19 12:41
感谢分享,很给力!~
作者: zifeiyu    时间: 2023-4-19 15:30
6666666666666666666666
作者: 几毫秒    时间: 2023-5-13 06:59
先分词,在搜索、对分词得到的词组,做一个优先级。按照优先级的词语,对匹配结果进行排序




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4