社区
基础编程
帖子详情
如何求出相似的语句?类似GOOGLE的Did you mean?
jxyuhua
2006-06-20 03:42:57
用过GOOGLE都知道,当你搜索输入的关键字不是很准确的时候,Google会提示你:
Did you mean ... ?
自动给你列出个相似的句子。
我就是想问一下,如何才能根据你输入的关键字,求出与它相似的另一个字符串呢?
假设我要的资料都在数据库中。
看了一下这方面的函数:similar_text,但没有得出结果。
求高人指点。
...全文
733
18
打赏
收藏
如何求出相似的语句?类似GOOGLE的Did you mean?
用过GOOGLE都知道,当你搜索输入的关键字不是很准确的时候,Google会提示你: Did you mean ... ? 自动给你列出个相似的句子。 我就是想问一下,如何才能根据你输入的关键字,求出与它相似的另一个字符串呢? 假设我要的资料都在数据库中。 看了一下这方面的函数:similar_text,但没有得出结果。 求高人指点。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
八哥
2006-06-24
打赏
举报
回复
汉语分词=人工智能
wuyg719
2006-06-24
打赏
举报
回复
to 楼主:
你还有频率和更新时间等武器,用户经常范的错误,优先级不断提高,很少范的错误,
优先级不断降低,当降低到一定级别,则删除这个纪录。
xuzuning
2006-06-23
打赏
举报
回复
这是可以的!
不过这好象与你的初衷有违吧?
既然是 “自动给你列出个相似的句子”那么就不应该是退出循环,而是保存起来
当循环结束后依次开列出来供用户选择
jxyuhua
2006-06-23
打赏
举报
回复
if (intval($similarity) > 90){
//如果相似度超过90%,则认为它是相似的关键字,退出循环。
$similarKeywords = $row['keywords'];
continue;
}
应该是
if (intval($similarity) > 90){
//如果相似度超过90%,则认为它是相似的关键字,退出循环。
$similarKeywords = $row['keywords'];
break;
}
jxyuhua
2006-06-23
打赏
举报
回复
现在我是这样来处理的:
将用户的搜索记录关键字以及搜索到的结果数到数据库中。
当用户下次搜索没有返回结果时,则去寻找以前的搜索记录,从中找出相似的关键字来。
例如:
<?php
...
$sql = "SELECT keywords FROM searchlog WHERE ...";
...
while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
similar_text($sourceStr, $descStr, $similarity);
if (intval($similarity) > 90){
//如果相似度超过90%,则认为它是相似的关键字,退出循环。
$similarKeywords = $row['keywords'];
continue;
}
}
...
if (! empty($similarKeywords)) {
echo 'Did you mean:' . $similarKeywords;
}
...
?>
不知道大家认为这样怎样?如果保存的记录太多,会不会很影响效率?
liminlovemama
2006-06-22
打赏
举报
回复
I feel dizzy!!
testoktest
2006-06-21
打赏
举报
回复
mark
xuzuning
2006-06-21
打赏
举报
回复
反了!
不是“如何才能根据你输入的关键字,求出与它相似的另一个字符串呢?”
而是“如何才能求出与你输入的关键字相似的已知关键字呢?”
当问题变成后者的时候,你就可以用similar_text函数了
int similar_text ( string first, string second [, float &percent] )
返回first在second存在的字符个数,percent为表示相似度的值
echo similar_text ('程序', '程式', $percent);//2
echo $percent;//50
对于中文,可能用汉语拼音要更好些
it_zl
2006-06-21
打赏
举报
回复
词库词库呀..需要词库来支持.
ryl
2006-06-21
打赏
举报
回复
up
BlueDestiny
2006-06-21
打赏
举报
回复
建词表,根据匹配相关度来提示。
an9ryfr09
2006-06-21
打赏
举报
回复
应该是像唠叨老大说的那样,而不是事先去建立一个词库与你所搜索的内容来匹配。
英文还好办一些,中文的匹配可能会相当复杂。百度在中文匹配上还是有点研究的。
asd119cn
2006-06-21
打赏
举报
回复
中文的分词技术,好像也是中文搜索的难点吧。看过一些介绍东西。好像只有一些研究的,真正拿出来应用的并不是很多了。
lantersen
2006-06-21
打赏
举报
回复
UP
ImN1
2006-06-20
打赏
举报
回复
我得想法是这样的:
首先有一个该语言的词库系统
然后针对该语言的特点(特别是与输入法相关的特点)进行词之间的匹配
匹配技术是关键,这个对各民族语言都有所区别
例如中文需要对“拼音”“象形”匹配
英文需要对近似拼写匹配
当然,因为google硬件很强大,完全可以用手工制作匹配表的方法而免去匹配技术的研究
金山词霸(iciba.com)也有类似功能,它具体怎么做不太清楚
yunfeifan
2006-06-20
打赏
举报
回复
楼上的这样不行把,google 应该有自己的词库,例如
输入saarch
会提示你是不是再找 search
只要输入的词在词库有,那就提出来就可以了
碧海情天-赵亮
2006-06-20
打赏
举报
回复
当然首先是建立一个供检索的关键词与网页标题库。
当你输入一个关键词时,把该关键词拿去库里作模糊查询,like *你的关键词* ,这样子
然后判断该查询返回的结果条数,如果少于一个标准值,则说明对该关键词进行拆词(至于拆词,是另外一个专门的问题了),再把拆词后的部分拿去查询。比如“中国人民”,假设它真的查不到或结果很秒,则拆成“中国”、“人民”两部分,先“中国”AND “人民”,再少的话,再查“中国”OR “人民”…………
zeroleonhart
2006-06-20
打赏
举报
回复
you should create a database to record searched keywords.
解析
Google
“Did you
mean
?”算法的工作原理
在搜索领域,用户输入的查询词可能存在拼写错误或表述不准确的情况。为了提升用户体验,搜索引擎需要能够智能识别这些问题,并提供可能的正确查询建议,“Did you
mean
?”功能应运而生。
Google
的这一功能能够快速且精准地为用户提供可能的正确查询词,背后涉及到复杂的算法和大量的数据处理。
Aider 模型警告深度解读:Unknown context window size、缺失环境变量等启动警告的成因与处置方法
当你在终端里用 aider 指定一个模型启动、或通过 `/model`、`/weak-model`、`/editor-model` 等命令在会话中途切换模型时,有时会看到几类以 `Model ...` 或 `Warning ...` 开头的提示。本指南围绕 aider 官方“Model warnings”文档([源文档](https://link.gitcode.com/i/268efb19b39
Sentence Transformers 数据集概览:从四种基础格式到多模态数据与 Hugging Face Hub 实战
本文是 sentence-transformers 项目训练数据准备的权威指南,围绕 [docs/sentence_transformer/dataset_overview.md](https://link.gitcode.com/i/72983c7a542e0fa0c9f688d10ed2547e) 展开。你将掌握四种核心数据集格式(Positive Pair、Triplets、Pair wit
aider 连接 “其它 LLM“ 完整指南:用 --model 调用数百款第三方模型与 API Key 配置
aider 是一个运行在终端里的 AI 结对编程工具,除了官方重点支持的一线模型外,它还能通过 [LiteLLM](https://link.gitcode.com/i/1372c2479bbebeec937ee7d5e808bb4a),完整讲解如何使用 `aider --model
` 调用任意受支持模型、如何用 `aider --list-models` 检索可用的模型
pixi workspace register 命令全解析:注册、查询与清理工作区注册表
`pixi workspace register` 是 pixi 中用于管理工作区注册表(workspace registry)的命令组,它把"工作区名称"与"工作区路径"的映射持久化到本地注册表文件,从而让后续命令可以通过名称(而非路径)定位工作区。本文以该命令的官方 CLI 文档为主线,结合当前仓库源码深入讲解注册表的数据结构、默认注册逻辑、`list` / `remove` / `prune
基础编程
21,889
社区成员
140,329
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章