新手问题 搜索 “我饿了” 推荐 “饭店” 这种搜索怎么做的?

QueXuQ · 2021年11月08日 · 最后由 maomao 回复于 2021年11月09日 · 687 次阅读

我看现在搜索越来越智能了,不是单纯的关键字匹配了。 搜索“我饿了”,有饭店,有美食。就算原来没有关键词“我,饿”。 搜索“头疼”,推荐的是医院,或医生。

不知道这种功能,应该怎么实现呢?用 Rails 和 Postgres,能完成不?

聚类的,加人工同义词剪枝

复杂一点可以加上语义分析。就是在特定的环境下理解对话的含义。比如“头疼”在求医过程应该是医生或者科室,而朋友聊天也许就是个感叹

简单就是分词后有关联的词作关联处理

这种要做自然语言理解了。搜索 nlu。主要是文本分类和关键词抽取。

@nikoloss @geniusfox @maomao @teddyinfi 那各位的思路,就是要自然语言做处理,“我饿了”,然后把“我”,“饿”之类这种关键词次提取出来。 然后数据库就得手动设置,例如“饭店信息”和“饿”关联起来。 这样处理的话,那就需要人工调整关键词和信息的匹配了,那工作量不就非常的大,而且总有遗漏的。 例如,平常的人,都会搜“我饿了”,但是有一天,有个人搜索“I am hungry”那就会出现数据不匹配的情况,那到时候,就在手动增加,就需要这样相关操作才行了。

QueXuQ 回复

要用机器学习的一些算法来训练模型了。新增的样本就添加训练数据,重新训练模型。

QueXuQ 回复

这就是聚类要解决的,就是你只需要提供大量的文本,并把其中的几个文本标注成“找美食”,“看病”等 tag。机器会根据你最开始标注的几条进行归类,然后在这个过程中,你在稍微干预一下,让它分类的更加准确。这样训练出来的 output 叫做“模型”。把模型带到线上,碰到新的文本,只需要放到模型里面跑,它就会 output 一个 tag,比如“看病”。

QueXuQ 回复

这就要涉及到那些公司说的大数据了,自动关联什么的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号