【发布时间】:2023-04-07 05:31:02
【问题描述】:
这个问题对我来说是一个挑战,我的朋友不能告诉我怎么做,但他真的是一个很好的程序员(我认为)。
用户可以将句子放入数据库。当用户输入一个句子时,它被保存在sentences 表中。
接下来,将句子拆分为单词,将单词的每个 soundex 保存到表 tags 中,并带有拆分后的句子的 id。
最后,将单词的每个soundax放入weights表中,如果有相同的soundex,函数将这个soundex的counter加1。
(对于那些不知道的人:soundex 是一个返回字符串的语音表示(发音方式)的函数)
数据库结构:
一个表sentences 包含两行:id 和sentence。
其他表tags 包含id(带有一个句子的id)和tag(带有一个句子的单词)。
tag 不仅仅是简单的词,而是这个词的声音。
最后一个表weights 包含tag 和weight(带有数字,它告诉我们表tags 中有多少这样的标签)
我的问题是:我怎样才能让一个函数将相似的句子返回给给定的字符串。
它应该使用标签(单词的声音),并且每个标签都应该基于weights 表有自己的权力。
经常使用的标签比原始标签更重要。可以在一个mysql查询中完成吗?
下一个问题:我认为这种寻找相似句子的方式很好,但是这个功能的速度呢? 我需要在我的网站中经常使用它。
【问题讨论】:
标签: php mysql soundex similarity